ó
    Ð]jS  ã                   óú   • S r SSKJr  SSKJr  SSKJr  S\S4S\S4S	\	S
4S\
S4S\
S4S\
S4S\
S4S\
S4S\
S4S\
S4S\
S4S\
S4S\
S4S\S4S\S4S.r " S S5      r " S S\5      rS\S4S jrS rS rS!S  jrg)"z
Module for statical analysis.
é    )Útree)Údebug)Ú	is_stringé   zPotential AttributeError.é   zPotential NameError.é   zPotential ImportError.é   Né   é   é   é   é	   é
   é   é   é   é   é   )úattribute-errorz
name-errorzimport-errorztype-error-too-many-argumentsztype-error-too-few-argumentsztype-error-keyword-argumentztype-error-multiple-valuesztype-error-star-starztype-error-starztype-error-operationztype-error-not-iterableztype-error-isinstanceztype-error-not-subscriptablezvalue-error-too-many-valueszvalue-error-too-few-valuesc                   ól   • \ rS rSrSS jr\S 5       r\S 5       r\S 5       rS r	S r
S	 rS
 rS rSrg)ÚErroré   Nc                 óf   • X l         X0l        Xl        Uc  [        U R                     S   nX@l        g )Nr   )ÚpathÚ
_start_posÚnameÚCODESÚmessage)Úselfr   Úmodule_pathÚ	start_posr   s        ÚT/home/mande/repo/quber/.venv/lib/python3.13/site-packages/jedi/inference/analysis.pyÚ__init__ÚError.__init__   s.   € ØŒ	Ø#ŒØŒ	Ø‰?Ü˜DŸI™IÑ& qÑ)ˆGØ�ó    c                 ó    • U R                   S   $ ©Nr   ©r   ©r   s    r"   ÚlineÚ
Error.line&   ó   € à�‰˜qÑ!Ð!r%   c                 ó    • U R                   S   $ )Nr   r(   r)   s    r"   ÚcolumnÚError.column*   r,   r%   c                 óx   • U R                   R                  S   nU[        [        U R                     S   5      -   $ r'   )Ú	__class__Ú__name__Ústrr   r   )r   Úfirsts     r"   ÚcodeÚ
Error.code.   s6   € ð —‘×'Ñ'¨Ñ*ˆØ”sœ5 §¡Ñ+¨AÑ.Ó/Ñ/Ð/r%   c           	      ó�   • U R                   < SU R                  < SU R                  < SU R                  < SU R                  < 3	$ )NÚ:ú: Ú )r   r*   r.   r5   r   r)   s    r"   Ú__str__ÚError.__str__4   s,   € Ø$(§I¤I¨t¯y¬y¸$¿+¼+Ø$(§I¤I¨t¯|«|ð=ð 	=r%   c                 ó´   • U R                   UR                   :H  =(       a9    U R                  UR                  :H  =(       a    U R                  UR                  :H  $ ©N)r   r   r   ©r   Úothers     r"   Ú__eq__ÚError.__eq__8   sB   € Ø—	‘	˜UŸZ™ZÑ'÷ 8¨D¯I©I¸¿¹Ñ,C÷ 8Ø—O‘O u×'7Ñ'7Ñ7ð	9r%   c                 ó.   • U R                  U5      (       + $ r>   )rA   r?   s     r"   Ú__ne__ÚError.__ne__<   s   € Ø—;‘;˜uÓ%Ô%Ð%r%   c                 óZ   • [        U R                  U R                  U R                  45      $ r>   )Úhashr   r   r   r)   s    r"   Ú__hash__ÚError.__hash__?   s    € Ü�T—Y‘Y §¡°·±Ð;Ó<Ð<r%   c                 ó´   • SU R                   R                  < SU R                  < SU R                  < SU R                  S   < SU R                  S   < S3$ )	NÚ<r:   r9   Ú@r   Ú,r   Ú>)r1   r2   r   r   r   r)   s    r"   Ú__repr__ÚError.__repr__B   s?   � Ø&*§n¡n×&=Ô&=Ø&*§i¤i°·´Ø&*§o¡o°aÔ&8¸$¿/¹/È!Ô:LðNð 	Nr%   )r   r   r   r   r>   )r2   Ú
__module__Ú__qualname__Ú__firstlineno__r#   Úpropertyr*   r.   r5   r;   rA   rD   rH   rO   Ú__static_attributes__© r%   r"   r   r      s]   † ôð ñ"ó ð"ð ñ"ó ð"ð ñ0ó ð0ò
=ò9ò&ò=õNr%   r   c                   ó   • \ rS rSrSrg)ÚWarningéH   rV   N)r2   rQ   rR   rS   rU   rV   r%   r"   rX   rX   H   s   † Úr%   rX   c                 ó0  • [         U   S   n[        XXe5      (       a  g U R                  5       nUR                  5       nU" XUR                  U5      n	[
        R                  " [        U	5      SS9  U R                  R                  R                  U	5        U	$ )Nr   F)Úformat)r   Ú_check_for_exception_catchÚget_root_contextÚ
py__file__r!   r   Úwarningr3   Úinference_stateÚanalysisÚappend)
Únode_contextÚ
error_nameÚnoder   ÚtypÚpayloadÚ	exceptionÚmodule_contextr    Úissue_instances
             r"   Úaddrk   L   s„   € Ü�jÑ! !Ñ$€IÜ! ,°i×IÑIØð "×2Ñ2Ó4€NØ ×+Ñ+Ó-€KÙ˜°$·.±.À'ÓJ€NÜ	‡M‚M”#�nÓ%¨eÒ4Ø× Ñ ×)Ñ)×0Ñ0°Ô@ØÐr%   c                 ó¶   ^• U R                  5       nUR                  mTc  g TR                  5       S   n[	        U4S jU 5       5      $ ! [         a     gf = f)zM
Check if there's any setattr method inside an instance. If so, return True.
FÚsetattrc              3   ó  >#   • U  H}  nTR                   UR                   s=:  =(       a    TR                  :  Os  =(       a>    UR                  R                  S :H  =(       a    UR                  R                  U:H  (       + v •  M     g7f)ÚfuncdefN)r!   Úend_posÚparentÚtyper   )Ú.0Únre   s     €r"   Ú	<genexpr>Ú%_check_for_setattr.<locals>.<genexpr>i   sf   øé € ð $ò #�1ð �~‰~ §¡×:Ó:¨d¯l©lÔ:÷ KàŸ™Ÿ™¨Ñ2×I°q·x±x·}±}ÈÑ7IÔJôKò #ùs   ƒBB)r]   Ú	tree_nodeÚget_used_namesÚKeyErrorÚany)ÚinstanceÚmoduleÚ
stmt_namesre   s      @r"   Ú_check_for_setattrr~   Z   sp   ø€ ð ×&Ñ&Ó(€FØ×Ñ€DØ�|àðØ×(Ñ(Ó*¨9Ñ5ˆ
ô ô $ñ #ó$ó $ð $øô ó Ùðús   £A Á
AÁAc                 óÈ   • SU< SU< S3n[         nUR                  5       (       a+  UR                  5       (       d  [        U5      (       a  [        nX4n[        U SX#XE5        g )NzAttributeError: z has no attribute Ú.r   )r   Úis_instanceÚis_compiledr~   rX   rk   )Úname_contextÚlookup_valuer   r   rf   rg   s         r"   Úadd_attribute_errorr…   o   sY   � Û<HË$ÐO€Gô €CØ×Ñ×!Ñ!¨,×*BÑ*B×*DÑ*Dô ˜l×+Ñ+ÜˆCàÐ €GÜˆÐ'¨¸ÕEr%   c                 ó  ^ ^^^• S mUUU 4S jnUU U4S jnTnUbï  [        U[        R                  [        R                  45      (       dÀ  [        U[        R                  5      (       aa  UR
                  S:X  a  U" Xb5      (       a  gU[        :X  a9  UR
                  S;   a)  U" UR                  S   UR                  S   5      (       a  gUR                  nUb1  [        U[        R                  [        R                  45      (       d  MÀ  g	)
zø
Checks if a jedi object (e.g. `Statement`) sits inside a try/catch and
doesn't count as an error (if equal to `exception`).
Also checks `hasattr` for AttributeErrors and uses the `payload` to compare
it.
Returns True if the exception was catched.
c                 óà   • U R                  5       (       d  gUR                  5        HD  nU R                  5       UR                  :X  d  M#  U R                  R                  5       (       d  MD    g   g)NFT)Úis_classÚmroÚ
py__name__r2   Úparent_contextÚis_builtins_module)Úclsrh   Ú
python_clss      r"   Úcheck_matchÚ/_check_for_exception_catch.<locals>.check_match†   sR   € Ø�|‰|�~‰~Øà#Ÿ-™-ž/ˆJØ�~‰~Ó :×#6Ñ#6Õ6Ø×*Ñ*×=Ñ=×?Ó?Ùñ *ð r%   c                 óP  >• [        U R                  5      nU HR  n[        U5        [        U5      nUS:X  d  M!  UR                  TR                  s=:  a  UR                  ::  a  MN     g    g   U R                  5        H¤  nUc    gTR                  U5      nU H…  nSSKJn  [        XxR                  5      (       aR  UR                  S:X  aB  UR                  5        H,  n	U	R                  5        H  n
T" X¡5      (       d  M          g   M.     Mu  T" Xq5      (       d  M„      g   M¦     g )NÚtryFTr   )ÚiterableÚtuple)ÚiterÚchildrenÚnextr!   rp   Úget_except_clause_testsÚ
infer_nodeÚjedi.inference.valuer“   Ú
isinstanceÚSequenceÚ
array_typeÚ
py__iter__Úinfer)Úobjrh   ÚiteratorÚbranch_typeÚsuitere   Úexcept_classesr�   r“   Ú
lazy_valuerf   r�   Ú	jedi_namerc   s              €€€r"   Úcheck_try_for_exceptÚ8_check_for_exception_catch.<locals>.check_try_for_except�   sõ   ø€ ä˜Ÿ™Ó%ˆÛ#ˆKÜ�ŒNÜ˜“NˆEØ˜eÕ#Ø(×2Ñ2°Y×5HÑ5HÕYÈEÏMÉMÖYÙð ZÙñ $ð ×/Ñ/Ö1ˆDØ‰|Ùà!-×!8Ñ!8¸Ó!>�Û)�CÝ=Ü! #×'8Ñ'8×9Ñ9ØŸN™N¨gÓ5à*-¯.©.Ö*:˜JØ'1×'7Ñ'7Ö'9 Ù#.¨s×#>Ó#>Ü+/ó (:ó +;ñ
 ' s×6Ó6Ú#'ó *ò 2r%   c                 ó*  >•  UR                   TR                   s=::  a  UR                  :  d   e   eU R                  S;   d   eU R                  S   nUR                  S:X  a  UR                  S:X  d   eU R                  S   nUR                  S:X  d   eUR                  S   nUR                  S:X  d   eSSKJn  U" TR                  TU5      n[        UR                  5       5      n[        U5      S	:X  d   eUS   u  p‰[        U	R                  5       5      n
[        U
5      S:X  a  [        U
S   5      (       d   eU
S   R                  5       TS   R                  :X  d   eUS   u  p‰U	R                  5       nTS   U;   $ ! [         a     g
f = f)N)ÚpowerÚ	atom_exprr   r   Úhasattrr   ÚtrailerÚarglist)ÚTreeArgumentsr   F)r!   rp   rr   r–   ÚvalueÚjedi.inference.argumentsr¯   r`   ÚlistÚunpackÚlenrŸ   r   Úget_safe_valueÚAssertionError)re   r£   Úbaser­   r®   r¯   ÚargsÚunpacked_argsÚkeyr¥   ÚnamesÚobjectsr¦   rc   rg   s               €€€r"   Úcheck_hasattrÚ1_check_for_exception_catch.<locals>.check_hasattr¬   s‹  ø€ ð	Ø—?‘? i×&9Ñ&9ÕI¸E¿M¹MÓIÐIÑIÐIÐIØ—9‘9Ð 6Ó6Ð6Ð6Ø—=‘= Ñ#ˆDØ—9‘9 Ó&¨4¯:©:¸Ó+BÐBÐBØ—m‘m AÑ&ˆGØ—<‘< 9Ó,Ð,Ð,Ø×&Ñ& qÑ)ˆGØ—<‘< 9Ó,Ð,Ð,Ý>Ù  ×!=Ñ!=¸|ÈWÓUˆDÜ  §¡£Ó/ˆMä�}Ó%¨Ó*Ð*Ð*ð ,¨AÑ.‰OˆCÜ˜×)Ñ)Ó+Ó,ˆEÜ�u“: “?¤y°°q±×':Ñ':Ð:Ð:Ø˜‘8×*Ñ*Ó,°¸±
×0@Ñ0@Ó@Ð@Ð@ð ,¨AÑ.‰OˆCØ ×&Ñ&Ó(ˆGØ˜1‘: Ñ(Ð(øÜó 	Ùð	ús   ƒFF Æ
FÆFÚtry_stmtT)Úif_stmtÚ
while_stmtr   r   F)	r›   r   ÚFunctionÚClassÚFlowrr   ÚAttributeErrorr–   rq   )rc   r¦   rh   rg   r§   r½   r    r�   s   `` `   @r"   r\   r\   ~   sÄ   û€ ò÷(÷8ð: €CØ
‰/¤*¨S´4·=±=Ä$Ç*Á*Ð2M×"NÑ"NÜ�cœ4Ÿ9™9×%Ñ%à�x‰x˜:Ó%Ñ*>¸s×*NÑ*NØàœNÓ*¨s¯x©xÐ;TÓ/TÙ  §¡¨a¡°#·,±,¸q±/×BÑBØØ�j‰jˆð ‰/¤*¨S´4·=±=Ä$Ç*Á*Ð2M×"NÓ"Nð r%   r>   )Ú__doc__Úparso.pythonr   Újedir   Újedi.inference.helpersr   rÅ   Ú	NameErrorÚImportErrorÚ	TypeErrorÚ
ValueErrorr   r   rX   rk   r~   r…   r\   rV   r%   r"   Ú<module>rÎ      sï   ðñõ å Ý ,ð ˜>Ð+FÐGØ�iÐ!7Ð8Ø˜Ð%=Ð>Ø&'¨°DÐ%9Ø%&¨	°4Ð$8Ø$% y°$Ð#7Ø#$ i°Ð"6Ø 	¨4Ð0Ø˜9 dÐ+Ø ¨DÐ1Ø " I¨tÐ4Ø  )¨TÐ2Ø%'¨°DÐ$9Ø$&¨
°DÐ#9Ø#% z°4Ð"8ñ	€÷&(Nñ (NôV	ˆeô 	ð 15¸%Èô ò$ò*FõWr%   