Ë
    ¬;jè/  ã                   ó\  — d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZmZmZ d d	lmZmZmZ d d
lmZmZmZ d dlmZ d dlmZ d d„Z G d„ de«      Z d„ Z!d„ Z"d„ Z# G d„ d«      Z$ G d„ de$«      Z%d„ Z& G d„ de%«      Z' G d„ de%«      Z( G d„ de$«      Z)d!d„Z*d„ Z+y)"é    N)Úzip_longest)ÚAny)Útree)Údebug)ÚPushBackIterator)Úanalysis)ÚLazyKnownValueÚLazyKnownValuesÚLazyTreeValueÚget_merged_lazy_value)Ú	ParamNameÚTreeNameDefinitionÚAnonymousParamName)Ú	NO_VALUESÚValueSetÚContextualizedNode)Úiterable)Ú%inference_state_as_method_param_cachec                 ó¨   — |dkD  ry| D ]8  }	 |j                   } |«       D ]  }t        |j                  «       |dz   «       Œ! Œ: y# t        $ r Y ŒGw xY w)z"Helper method for static analysis.é
   Né   )Ú
py__iter__Útry_iter_contentÚinferÚAttributeError)ÚtypesÚdepthÚtypÚfÚ
lazy_values        úi/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/jedi/inference/arguments.pyr   r      s`   € àˆr‚zð 	ãˆð	@Ø—‘ˆAñ  žc�
Ü  ×!1Ñ!1Ó!3°U¸Q±YÕ?ñ "ñ øô ò 	Ùð	ús   �AÁ	AÁAc                   ó   — e Zd Zy)Ú
ParamIssueN)Ú__name__Ú
__module__Ú__qualname__© ó    r!   r#   r#   #   s   „ Ør(   r#   c                 ó   ‡ — ˆ fd„}|S )aN  
    Transforms a function or method with arguments to the signature that is
    given as an argument clinic notation.

    Argument clinic is part of CPython and used for all the functions that are
    implemented in C (Python 3.7):

        str.split.__text_signature__
        # Results in: '($self, /, sep=None, maxsplit=-1)'
    c                 ó   •‡ — ˆˆ fd„}|S )Nc                 ó‚   •— 	 t        t        | j                  |‰«      «      } ‰| g|¢­Ž S # t        $ r	 t        cY S w xY w©N)ÚtupleÚiterate_argument_clinicÚinference_stater#   r   )ÚvalueÚ	argumentsÚargsÚclinic_stringÚfuncs      €€r!   Úwrapperz?repack_with_argument_clinic.<locals>.decorator.<locals>.wrapper3   sR   ø€ ð	*ÜÔ4Ø×)Ñ)ØØ!óó �ñ ˜EÐ) DÒ)Ð)øô ò !Ü Ò ð!ús   ƒ , ¬>½>r'   )r4   r5   r3   s   ` €r!   Ú	decoratorz.repack_with_argument_clinic.<locals>.decorator2   s   ù€ õ
	*ð ˆr(   r'   )r3   r6   s   ` r!   Úrepack_with_argument_clinicr7   '   s   ø€ ôð Ðr(   c              #   óš  K  — t        t        |«      «      }t        |j                  «       «      }t	        |«      D �]  \  }\  }}}}	|	dk(  rYg }
|D ]-  \  }}|�|j                  ||f«        n|
j                  |«       Œ/ t        t        j                  | |
«      g«      –— |
 Œj|	dk(  r
t        «       ‚t        |d«      \  }}|�t        j                  d«       t        ‚|€)|s't        j                  d|t        |«      |«       t        ‚|€t         n|j#                  «       }|s|st        j                  d|«       t        ‚|–— �Œ y­w)z;Uses a list with argument clinic information (see PEP 436).r   Né   )NNzAKeyword arguments in argument clinic are currently not supported.z4TypeError: %s expected at least %s arguments, got %sz$argument_clinic "%s" not resolvable.)ÚlistÚ_parse_argument_clinicr   ÚunpackÚ	enumerateÚ	push_backÚappendr   r   Ú	FakeTupleÚNotImplementedErrorÚnextr   Úwarningr#   Úlenr   r   )r/   r1   r3   Úclinic_argsÚiteratorÚiÚnameÚoptionalÚallow_kwargsÚstarsÚlazy_valuesÚkeyÚargumentÚ	value_sets                 r!   r.   r.   C   sA  è ø€ äÔ-¨mÓ<Ó=€Kä 	× 0Ñ 0Ó 2Ó3€HÜ4=¸k×4JÑ0ˆÑ0ˆD�(˜L¨%Ø�AŠ:ØˆKÛ!)‘��XØ�?Ø×&Ñ&¨¨X Ô7Ùà×"Ñ" 8Õ,ð "*ô œH×.Ñ.¨ÀÓLÐMÓNÒNÙØØ�aŠZÜ%Ó'Ð'Ü˜X |Ó4‰ˆˆXØˆ?Ü�M‰MÐ]Ô^ÜÐØÐ¡HÜ�M‰MÐPØ¤ KÓ 0°!ô5äÐà!)Ð!1•I°x·~±~Ó7Gˆ	á¡ô �M‰MÐ@À$ÔGÜÐØŒñ? 5Kùs   ‚E	Ec              #   óP  K  — d}d}| rœt        j                  d| «      }| t        |j                  d«      «      d  } |j                  d«      sd}ŒI|xs t	        |j                  d«      «      }|j                  d«      }|j                  d«      }||d  }||||f–— |rd}| rŒ›y y ­w)NFz%(?:(?:(\[),? ?|, ?|)(\**\w+)|, ?/)\]*r   r9   Tr   Ú*)ÚreÚmatchrD   ÚgroupÚboolÚcount)ÚstringrJ   rI   rS   ÚwordrK   s         r!   r;   r;   j   s«   è ø€ Ø€LØ€HÙ
ô
 —‘ÐAÀ6ÓJˆØœ˜EŸK™K¨›NÓ+Ð,Ð-ˆØ�{‰{˜1Œ~ØˆLØØÒ3œt E§K¡K°£NÓ3ˆØ�{‰{˜1‹~ˆØ—
‘
˜3“ˆØ�E�Fˆ|ˆØ�X˜|¨UÐ3Ò3ÙØˆLô! ùs   ‚B!B&Â$B&c                   ó   — e Zd Zdd„Zd„ Zy)Ú_AbstractArgumentsMixinNc                 ó   — t         ‚r,   ©rA   )ÚselfÚfuncdefs     r!   r<   z_AbstractArgumentsMixin.unpack�   ó   € Ü!Ð!r(   c                 ó   — g S r,   r'   ©r]   s    r!   Úget_calling_nodesz)_AbstractArgumentsMixin.get_calling_nodes„   s   € Øˆ	r(   r,   )r$   r%   r&   r<   rb   r'   r(   r!   rZ   rZ   €   s   „ ó"ór(   rZ   c                   ó$   — e Zd ZU dZdZeed<   dZy)ÚAbstractArgumentsNÚargument_node)r$   r%   r&   Úcontextre   r   Ú__annotations__Útrailerr'   r(   r!   rd   rd   ˆ   s   … Ø€GØ€M�3ÓØ�Gr(   rd   c              #   ó  K  — | €y | j                   dk7  r'| j                   dk(  r| j                  d   dv sd| f–— y t        | j                  «      }|D ]ª  }|dk(  rŒ	|dv r*t        |d «      }|€J ‚t	        |j
                  «      |f–— Œ7|j                   dk(  r_|j                  d   dv rNt	        |j                  «      dk(  sJ ‚t	        |j                  d   j
                  «      |j                  d   f–— Œ¥d|f–— Œ¬ y ­w)NÚarglistrN   r   )rQ   z**Ú,r9   r   )ÚtypeÚchildrenÚiterrB   rD   r0   )rj   rF   ÚchildÚcs       r!   Úunpack_arglistrq   Ž   s   è ø€ Ø€Øà‡|�|�yÒ Ø�L‰L˜JÒ&¨7×+;Ñ+;¸AÑ+>À+Ñ+MØ�ˆjÒØä�G×$Ñ$Ó%€HÛˆØ�CŠ<ØØ�kÑ!Ü�X˜tÓ$ˆAØ�=Ð �=Ü�e—k‘kÓ" AÐ%Ó%Ø�Z‰Z˜:Ò%Ø—‘˜qÑ! [Ñ0Ü�u—~‘~Ó&¨!Ò+Ð+Ð+Ü�e—n‘n QÑ'×-Ñ-Ó.°·±¸qÑ0AÐAÓAà�U�(‹Nñ ùs   ‚C?Dc                   ód   — e Zd ZU eed<   d
d„Ze e«       d„ «       «       Zd
d„Z	d„ Z
d„ Zd„ Zd	„ Zy)ÚTreeArgumentsrf   Nc                 ó<   — || _         || _        || _        || _        y)zS
        :param argument_node: May be an argument_node or a list of nodes.
        N)re   rf   Ú_inference_staterh   )r]   r/   rf   re   rh   s        r!   Ú__init__zTreeArguments.__init__ª   s"   € ð +ˆÔØˆŒØ /ˆÔØˆ�r(   c                 ó   —  | |i |¤ŽS r,   r'   )Úclsr2   Úkwargss      r!   Úcreate_cachedzTreeArguments.create_cached³   s   € ñ �DÐ#˜FÑ#Ð#r(   c           
   #   óð  K  — g }t        | j                  «      D �]¾  \  }}|dk(  rw| j                  j                  |«      }|D �cg c]  }t	        | j                  |||«      ‘Œ }}t        t        |Ž «      D ]"  }d t        |D �	cg c]  }	|	€Œ|	‘Œ	 c}	«      f–— Œ$ Œƒ|dk(  rC| j                  j                  |«      }|D ]"  }
t        | j                  |
||«      E d {  –—†  Œ$ ŒË|j                  dk(  rË|j                  }t        |«      dk(  r9|j                  |d   j                  t        | j                  |d   «      f«       �Œ-|j                  d   }|j                  dk(  r|j                  d   }t        j                   | j"                  | j                  ||j                  d   ¬«      }d t%        |«      f–— �Œ¥d t        | j                  |«      f–— �ŒÁ |E d {  –—†  y c c}w c c}	w 7 �Œ7 Œ­w)Nr   r9   rN   é   r   Úcomp_for)Údefining_contextÚsync_comp_for_nodeÚ
entry_node)rq   re   rf   Ú
infer_nodeÚ_iterate_star_argsr:   r   r   Ú_star_star_dictrl   rm   rD   r?   r0   r   r   ÚGeneratorComprehensionru   r	   )r]   r^   Ú
named_argsÚ
star_countÚelÚarraysÚaÚ	iteratorsÚvaluesÚvÚdctrp   Úsync_comp_forÚcomps                 r!   r<   zTreeArguments.unpack¸   sâ  è ø€ Øˆ
Ü,¨T×-?Ñ-?×@‰NˆJ˜Ø˜QŠØŸ™×0Ñ0°Ó4�á&,ó.Ù&, ô 0°·±¸aÀÀWÕMØ&,ð ð .ä"¤;°	Ð#:Ö;�FØÔ 5Ù$*Ó<¡F˜q¨a©mš FÑ<ó!ð ó ñ <ð ˜q’ØŸ™×0Ñ0°Ó4�Û!�CÜ.¨t¯|©|¸SÀ"ÀgÓN×NÑNñ "ð —7‘7˜jÒ(ØŸ™�AÜ˜1“v ’{Ø"×)Ñ)¨1¨Q©4¯:©:´}ÀTÇ\Á\ÐSTÐUVÑSWÓ7XÐ*ZÖ[ð )+¯©°A©˜Ø(×-Ñ-°Ò;Ø,9×,BÑ,BÀ1Ñ,E˜MÜ'×>Ñ>Ø ×1Ñ1Ø-1¯\©\Ø/<Ø')§{¡{°1¡~ô	 ˜ð #¤N°4Ó$8Ð8Ô8à¤¨d¯l©l¸BÓ ?Ð?Ô?ð? AðF ×ÑùòA.ùò =ð
 Oùð. 	úsD   ‚AG6ÁG'Á$ G6ÂG,ÂG,ÂAG6ÃG1ÃDG6Ç!G4Ç"G6Ç4G6c              #   óÐ   K  — t        | j                  «      D ]J  \  }}d }|j                  dk(  r-t        |j                  «      dk(  r|j                  d d d…   \  }}|||f–— ŒL y ­w)NrN   r|   r9   )rq   re   rl   rD   rm   )r]   r†   rN   Údefaults       r!   Ú_as_tree_tuple_objectsz$TreeArguments._as_tree_tuple_objectsß   sk   è ø€ Ü$2°4×3EÑ3EÖ$FÑ ˆJ˜ØˆGØ�}‰} 
Ò*Ü�x×(Ñ(Ó)¨QÒ.Ø(0×(9Ñ(9¹#¸A¸#Ñ(>Ñ%�H˜gØ˜G ZÐ/Ó/ñ %Gùs   ‚A$A&c              #   ó¨   K  — | j                  «       D ];  \  }}}|rt        |t        j                  «      sŒ$t	        | j
                  |«      –— Œ= y ­wr,   )r’   Ú
isinstancer   ÚNamer   rf   )r]   rH   r‘   r†   s       r!   Úiter_calling_names_with_starz*TreeArguments.iter_calling_names_with_starç   sE   è ø€ Ø)-×)DÑ)DÖ)FÑ%ˆD�'˜:á¤Z°´d·i±iÔ%@Øä$ T§\¡\°4Ó8Ó8ñ *Gùs   ‚AAc                 óP   — d| j                   j                  ›d| j                  ›d�S ©NÚ<z: Ú>)Ú	__class__r$   re   ra   s    r!   Ú__repr__zTreeArguments.__repr__ï   s   � Ø!Ÿ^™^×4Ó4°d×6HÓ6HÐIÐIr(   c                 ó>  — g }| }||vrºt        |t        «      sn©|j                  |«       t        t	        |j                  «       «      «      D ]n  }|j                  «       }t        |«      dk7  r nNt        |d   t        «      rg c S t        |d   t        «      s n"|d   j                  «       }|j                  } n ||vrŒº|j                  �!t        |j                  |j                  «      gS |j                  �!t        |j                  |j                  «      gS g S )Nr   r   )r”   rs   r?   Úreversedr:   r–   ÚgotorD   r   r   Úget_executed_param_namer1   re   r   rf   rh   )r]   Úold_arguments_listr1   Úcalling_nameÚnamesÚexecuted_param_names         r!   rb   zTreeArguments.get_calling_nodesò   s  € ØÐØˆ	àÐ1Ñ1Ü˜i¬Ô7Øà×%Ñ% iÔ0Ü (¬¨i×.TÑ.TÓ.VÓ)WÖ X�Ø$×)Ñ)Ó+�Ü�u“: ’?ÙÜ˜e A™hÔ(:Ô;ð ’IÜ! %¨¡(¬IÔ6ÙØ&+¨A¡h×&FÑ&FÓ&HÐ#Ø/×9Ñ9�	Ùð !Yð Ð1Ò1ð& ×"Ñ"Ð.Ü& y×'8Ñ'8¸)×:QÑ:QÓRÐSÐSØ×ÑÐ(Ü& y×'8Ñ'8¸)×:KÑ:KÓLÐMÐMØˆ	r(   r,   )r$   r%   r&   r   rg   rv   Úclassmethodr   rz   r<   r’   r–   rœ   rb   r'   r(   r!   rs   rs   §   sF   … ØƒLóð Ù*Ó,ñ$ó -ó ð$ó%òN0ò9òJór(   rs   c                   ó    — e Zd Zd„ Zdd„Zd„ Zy)ÚValuesArgumentsc                 ó   — || _         y r,   )Ú_values_list)r]   Úvalues_lists     r!   rv   zValuesArguments.__init__  s
   € Ø'ˆÕr(   Nc              #   óL   K  — | j                   D ]  }d t        |«      f–— Œ y ­wr,   )r©   r
   )r]   r^   r‹   s      r!   r<   zValuesArguments.unpack  s&   è ø€ Ø×'Ô'ˆFØœ¨Ó/Ð/Ó/ñ (ùs   ‚"$c                 óP   — d| j                   j                  ›d| j                  ›d�S r˜   )r›   r$   r©   ra   s    r!   rœ   zValuesArguments.__repr__  s   � Ø!Ÿ^™^×4Ó4°d×6GÓ6GÐHÐHr(   r,   )r$   r%   r&   rv   r<   rœ   r'   r(   r!   r§   r§     s   „ ò(ó0óIr(   r§   c                   óV   — e Zd Zd„ Zed„ «       Zed„ «       Zed„ «       Zd	d„Zd„ Z	d„ Z
y)
ÚTreeArgumentsWrapperc                 ó   — || _         y r,   )Ú_wrapped_arguments)r]   r1   s     r!   rv   zTreeArgumentsWrapper.__init__  s
   € Ø"+ˆÕr(   c                 ó.   — | j                   j                  S r,   )r°   rf   ra   s    r!   rf   zTreeArgumentsWrapper.context   ó   € à×&Ñ&×.Ñ.Ð.r(   c                 ó.   — | j                   j                  S r,   )r°   re   ra   s    r!   re   z"TreeArgumentsWrapper.argument_node$  s   € à×&Ñ&×4Ñ4Ð4r(   c                 ó.   — | j                   j                  S r,   )r°   rh   ra   s    r!   rh   zTreeArgumentsWrapper.trailer(  r²   r(   Nc                 ó   — t         ‚r,   r\   )r]   r4   s     r!   r<   zTreeArgumentsWrapper.unpack,  r_   r(   c                 ó6   — | j                   j                  «       S r,   )r°   rb   ra   s    r!   rb   z&TreeArgumentsWrapper.get_calling_nodes/  s   € Ø×&Ñ&×8Ñ8Ó:Ð:r(   c                 óP   — d| j                   j                  ›d| j                  ›d�S r˜   )r›   r$   r°   ra   s    r!   rœ   zTreeArgumentsWrapper.__repr__2  s   � Ø!Ÿ^™^×4Ó4°d×6MÓ6MÐNÐNr(   r,   )r$   r%   r&   rv   Úpropertyrf   re   rh   r<   rb   rœ   r'   r(   r!   r®   r®     sS   „ ò,ð ñ/ó ð/ð ñ5ó ð5ð ñ/ó ð/ó"ò;óOr(   r®   c              #   óö   K  — |j                  d«      s7|�5d|j                  j                  ›d|›�}t        j                  | d||¬«       	 |j
                  } |«       E d {  –—†  y 7 Œ# t        $ r Y y w xY w­w)NÚ__iter__úTypeError: z,() argument after * must be a sequence, not ztype-error-star©Úmessage)Úpy__getattribute__rH   r0   r   Úaddr   r   )rf   ÚarrayÚ
input_noder^   ÚmÚiter_s         r!   r‚   r‚   6  su   è ø€ Ø×#Ñ# JÔ/ØÑð —<‘<×%Ó%¡uð.ˆAä�L‰L˜Ð"3°ZÈÕKðØ× Ñ ˆñ “7×Òùô ò Ùðüs6   ‚A	A9ÁA* Á
A9Á"A(Á#A9Á*	A6Á3A9Á5A6Á6A9c                 ó@  — ddl m} t        ||«      r|j                  j                  dk(  ri S t        |t
        j                  «      r|j                  dk(  r|j                  «       S |�5d|j                  j                  ›d|›�}t        j                  | d||¬«       i S )Nr   )ÚCompiledInstanceÚdictr»   z* argument after ** must be a mapping, not ztype-error-star-starr¼   )Újedi.inference.value.instancerÅ   r”   rH   Ústring_namer   ÚSequenceÚ
array_typeÚexact_key_itemsr0   r   r¿   )rf   rÀ   rÁ   r^   rÅ   rÂ   s         r!   rƒ   rƒ   E  sˆ   € Ý>Ü�%Ð)Ô*¨u¯z©z×/EÑ/EÈÒ/Oð ˆ	Ü	�Eœ8×,Ñ,Ô	-°%×2BÑ2BÀfÒ2LØ×$Ñ$Ó&Ð&àÑà—<‘<×%Ó%¡uð.ˆAä�L‰L˜Ð"8¸*ÈaÕPØˆ	r(   )r   r,   ),rR   Ú	itertoolsr   Útypingr   Úparso.pythonr   Újedir   Újedi.inference.utilsr   Újedi.inferencer   Újedi.inference.lazy_valuer	   r
   r   r   Újedi.inference.namesr   r   r   Újedi.inference.base_valuer   r   r   Újedi.inference.valuer   Újedi.inference.cacher   r   Ú	Exceptionr#   r7   r.   r;   rZ   rd   rq   rs   r§   r®   r‚   rƒ   r'   r(   r!   Ú<module>rØ      s¬   ðÛ 	Ý !Ý å å Ý 1Ý #÷)ó )ç RÑ Rß MÑ MÝ )Ý Fó@ô"	�ô 	òò8$òN ÷,ñ ôÐ/ô òô2fÐ%ô fôR	IÐ'ô 	IôOÐ2ô Oó4ór(   