Ë
    ¬;jS  ã                   óö   — d Z ddlmZ ddlmZ ddlmZ dedfdedfd	e	d
fde
dfde
dfde
dfde
dfde
dfde
dfde
dfde
dfde
dfde
dfdedfdedfdœZ G d„ d«      Z G d„ de«      Zdedfd„Zd„ Zd„ Zd!d „Zy)"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                   ób   — e Zd Zdd„Zed„ «       Zed„ «       Zed„ «       Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)ÚErrorNc                 ól   — || _         || _        || _        |€t        | j                     d   }|| _        y )Nr   )ÚpathÚ
_start_posÚnameÚCODESÚmessage)Úselfr   Úmodule_pathÚ	start_posr   s        úh/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/jedi/inference/analysis.pyÚ__init__zError.__init__   s6   € ØˆŒ	Ø#ˆŒØˆŒ	Øˆ?Ü˜DŸI™IÑ& qÑ)ˆGØˆ�ó    c                 ó    — | j                   d   S ©Nr   ©r   ©r   s    r!   Úlinez
Error.line&   ó   € à�‰˜qÑ!Ð!r#   c                 ó    — | j                   d   S )Nr   r&   r'   s    r!   ÚcolumnzError.column*   r)   r#   c                 óx   — | j                   j                  d   }|t        t        | j                     d   «      z   S r%   )Ú	__class__Ú__name__Ústrr   r   )r   Úfirsts     r!   Úcodez
Error.code.   s6   € ð —‘×'Ñ'¨Ñ*ˆØ”sœ5 §¡Ñ+¨AÑ.Ó/Ñ/Ð/r#   c           	      ó†   — | j                   ›d| j                  ›d| j                  ›d| j                  ›d| j                  ›�	S )NÚ:ú: Ú )r   r(   r+   r1   r   r'   s    r!   Ú__str__zError.__str__4   s,   € Ø$(§I£I¨t¯y«y¸$¿+»+Ø$(§I£I¨t¯|ª|ð=ð 	=r#   c                 ó    — | j                   |j                   k(  xr4 | j                  |j                  k(  xr | j                  |j                  k(  S ©N)r   r   r   ©r   Úothers     r!   Ú__eq__zError.__eq__8   sB   € Ø—	‘	˜UŸZ™ZÑ'ò 8¨D¯I©I¸¿¹Ñ,Cò 8Ø—O‘O u×'7Ñ'7Ñ7ð	9r#   c                 ó&   — | j                  |«       S r8   )r;   r9   s     r!   Ú__ne__zError.__ne__<   s   € Ø—;‘;˜uÓ%Ð%Ð%r#   c                 óZ   — t        | j                  | j                  | j                  f«      S r8   )Úhashr   r   r   r'   s    r!   Ú__hash__zError.__hash__?   s    € Ü�T—Y‘Y §¡°·±Ð;Ó<Ð<r#   c                 óª   — d| j                   j                  ›d| j                  ›d| j                  ›d| j                  d   ›d| j                  d   ›d�S )	NÚ<r5   r4   Ú@r   Ú,r   Ú>)r-   r.   r   r   r   r'   s    r!   Ú__repr__zError.__repr__B   s?   � Ø&*§n¡n×&=Ó&=Ø&*§i£i°·³Ø&*§o¡o°aÓ&8¸$¿/¹/È!Ó:LðNð 	Nr#   r8   )r.   Ú
__module__Ú__qualname__r"   Úpropertyr(   r+   r1   r6   r;   r=   r@   rF   © r#   r!   r   r      s]   „ óð ñ"ó ð"ð ñ"ó ð"ð ñ0ó ð0ò
=ò9ò&ò=óNr#   r   c                   ó   — e Zd Zy)ÚWarningN)r.   rG   rH   rJ   r#   r!   rL   rL   H   s   „ Ør#   rL   c                 ó0  — t         |   d   }t        | |||«      ry | j                  «       }|j                  «       } ||||j                  |«      }	t        j                  t        |	«      d¬«       | j                  j                  j                  |	«       |	S )Nr   F)Úformat)r   Ú_check_for_exception_catchÚget_root_contextÚ
py__file__r    r   Úwarningr/   Úinference_stateÚanalysisÚappend)
Únode_contextÚ
error_nameÚnoder   ÚtypÚpayloadÚ	exceptionÚmodule_contextr   Úissue_instances
             r!   Úaddr^   L   s‡   € Ü�jÑ! !Ñ$€IÜ! ,°°iÀÔIØð "×2Ñ2Ó4€NØ ×+Ñ+Ó-€KÙ˜ [°$·.±.À'ÓJ€NÜ	‡M�M”#�nÓ%¨eÕ4Ø× Ñ ×)Ñ)×0Ñ0°Ô@ØÐr#   c                 ó°   ‡— | j                  «       }|j                  Š‰€y	 ‰j                  «       d   }t	        ˆfd„|D «       «      S # t        $ r Y yw xY w)zU
    Check if there's any setattr method inside an instance. If so, return True.
    FÚsetattrc              3   óè   •K  — | ]i  }‰j                   |j                   cxk  xr ‰j                  k  nc xr5 |j                  j                  d k(  xr |j                  j                  |k(   –— Œk y­w)ÚfuncdefN)r    Úend_posÚparentÚtyper   )Ú.0ÚnrX   s     €r!   Ú	<genexpr>z%_check_for_setattr.<locals>.<genexpr>i   sd   øè ø€ ð $ñ #�1ð �~‰~ §¡Ö:¨d¯l©lÔ:ò KàŸ™Ÿ™¨Ñ2ÒI°q·x±x·}±}ÈÑ7IÐJóKñ #ùs   ƒA/A2)rP   Ú	tree_nodeÚget_used_namesÚKeyErrorÚany)ÚinstanceÚmoduleÚ
stmt_namesrX   s      @r!   Ú_check_for_setattrrp   Z   sp   ø€ ð ×&Ñ&Ó(€FØ×Ñ€DØ€|àðØ×(Ñ(Ó*¨9Ñ5ˆ
ô ó $ñ #ó$ó $ð $øô ò Ùðús   ¢A	 Á		AÁAc                 ó¬   — d|›d|›d�}t         }|j                  «       r!|j                  «       st        |«      rt        }||f}t        | d||||«       y )NzAttributeError: z has no attribute Ú.r   )r   Úis_instanceÚis_compiledrp   rL   r^   )Úname_contextÚlookup_valuer   r   rY   rZ   s         r!   Úadd_attribute_errorrw   o   sV   � Ú<HÊ$ÐO€Gô €CØ×ÑÔ!¨,×*BÑ*BÔ*Dô ˜lÔ+ÜˆCà˜DÐ €GÜˆÐ'¨¨w¸¸WÕEr#   c                 óØ  ‡ ‡‡‡— d„ Šˆˆˆ fd„}ˆˆ ˆfd„}‰}|�Ñt        |t        j                  t        j                  f«      s§t        |t        j                  «      rT|j
                  dk(  r
 |||«      ry|t        k(  r2|j
                  dv r$ ||j                  d   |j                  d   «      ry|j                  }|�+t        |t        j                  t        j                  f«      sŒ§y	)
a  
    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                 óÄ   — | j                  «       sy|j                  «       D ]<  }| j                  «       |j                  k(  sŒ!| j                  j                  «       sŒ< y y)NFT)Úis_classÚmroÚ
py__name__r.   Úparent_contextÚis_builtins_module)Úclsr[   Ú
python_clss      r!   Úcheck_matchz/_check_for_exception_catch.<locals>.check_match†   sM   € Ø�|‰|Œ~Øà#Ÿ-™-ž/ˆJØ�~‰~Ó :×#6Ñ#6Ó6Ø×*Ñ*×=Ñ=Õ?Ùð *ð r#   c                 ó  •— t        | j                  «      }|D ]L  }t        |«       t        |«      }|dk(  sŒ|j                  ‰j                  cxk  r|j                  k  rŒI y  y | j                  «       D ]Ž  }|€ y‰j                  |«      }|D ]r  }ddlm} t        ||j                  «      rH|j                  dk(  r9|j                  «       D ]%  }	|	j                  «       D ]  }
 ‰|
|«      sŒ    y Œ' Œg ‰||«      sŒq  y Œ� y )NÚtryFTr   )ÚiterableÚtuple)ÚiterÚchildrenÚnextr    rc   Úget_except_clause_testsÚ
infer_nodeÚjedi.inference.valuer„   Ú
isinstanceÚSequenceÚ
array_typeÚ
py__iter__Úinfer)Úobjr[   ÚiteratorÚbranch_typeÚsuiterX   Úexcept_classesr   r„   Ú
lazy_valuerY   r�   Ú	jedi_namerV   s              €€€r!   Úcheck_try_for_exceptz8_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Ý=Ü! # x×'8Ñ'8Ô9ØŸN™N¨gÒ5à*-¯.©.Ö*:˜JØ'1×'7Ñ'7Ö'9 Ù#.¨s°IÕ#>Ü+/ñ (:ñ +;ñ
 ' s¨IÕ6Ú#'ñ *ñ 2r#   c                 ó
  •— 	 |j                   ‰j                   cxk  r|j                  k  sJ ‚ J ‚| j                  dv sJ ‚| j                  d   }|j                  dk(  r|j                  dk(  sJ ‚| j                  d   }|j                  dk(  sJ ‚|j                  d   }|j                  dk(  sJ ‚ddlm}  |‰j                  ‰|«      }t        |j                  «       «      }t        |«      d	k(  sJ ‚|d   \  }}	t        |	j                  «       «      }
t        |
«      dk(  rt        |
d   «      sJ ‚|
d   j                  «       ‰d   j                  k(  sJ ‚|d   \  }}	|	j                  «       }‰d   |v S # t        $ r Y y
w xY w)N)ÚpowerÚ	atom_exprr   r   Úhasattrr   ÚtrailerÚarglist)ÚTreeArgumentsr   F)r    rc   re   r‡   ÚvalueÚjedi.inference.argumentsrŸ   rS   ÚlistÚunpackÚlenr�   r   Úget_safe_valueÚAssertionError)rX   r”   Úbaser�   rž   rŸ   ÚargsÚunpacked_argsÚkeyr–   ÚnamesÚobjectsr—   rV   rZ   s               €€€r!   Úcheck_hasattrz1_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   ƒE2E6 Å6	FÆFÚtry_stmtT)Úif_stmtÚ
while_stmtr   r   F)	rŒ   r   ÚFunctionÚClassÚFlowre   ÚAttributeErrorr‡   rd   )rV   r—   r[   rZ   r˜   r­   r‘   r�   s   `` `   @r!   rO   rO   ~   s·   û€ òö(ö8ð: €CØ
ˆ/¤*¨S´4·=±=Ä$Ç*Á*Ð2MÔ"NÜ�cœ4Ÿ9™9Ô%à�x‰x˜:Ò%Ñ*>¸sÀIÔ*NØàœNÒ*¨s¯x©xÐ;TÑ/TÙ  §¡¨a¡°#·,±,¸q±/ÔBØØ�j‰jˆð ˆ/¤*¨S´4·=±=Ä$Ç*Á*Ð2MÕ"Nð r#   r8   )Ú__doc__Úparso.pythonr   Újedir   Újedi.inference.helpersr   r´   Ú	NameErrorÚImportErrorÚ	TypeErrorÚ
ValueErrorr   r   rL   r^   rp   rw   rO   rJ   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#   