Ë
    ¬;jhD  ã                   óþ  — d dl mZ d dlmZ d dlmZ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 d d
lmZmZmZmZmZ d dlmZmZmZmZmZ d dlmZm Z m!Z! d dl"m#Z#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-  G d„ de«      Z. G d„ de«      Z/ G d„ d«      Z0 G d„ de0e/e¬«      Z1 G d„ de«      Z2 G d„ de1«      Z3 G d „ d!e#e$«      Z4 G d"„ d#e4«      Z5 G d$„ d%e4«      Z6 G d&„ d'e0e«      Z7d(„ Z8y))*é    )ÚAny)Údebug)Úinference_state_method_cacheÚCachedMetaClass)Úcompiled)Ú	recursion)Ú
docstrings)Úflow_analysis)ÚTreeSignature)ÚParserTreeFilterÚFunctionExecutionFilterÚ AnonymousFunctionExecutionFilter)Ú	ValueNameÚAbstractNameDefinitionÚAnonymousParamNameÚ	ParamNameÚNameWrapper)ÚContextualizedNodeÚ	NO_VALUESÚValueSetÚ	TreeValueÚValueWrapper)ÚLazyKnownValuesÚLazyKnownValueÚLazyTreeValue)ÚValueContextÚTreeContextMixin)Úiterable)Úparser_utils)Úget_yield_exprs)Úvalues_from_qualified_names©ÚTupleGenericManagerc                   ó0   — e Zd ZdZdZd„ Zed„ «       Zd„ Zy)Ú
LambdaNamez<lambda>Úfunctionc                 ó4   — || _         |j                  | _        y ©N)Ú_lambda_valueÚparent_context)ÚselfÚlambda_values     ún/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/jedi/inference/value/function.pyÚ__init__zLambdaName.__init__   s   € Ø)ˆÔØ*×9Ñ9ˆÕó    c                 óB   — | j                   j                  j                  S r(   )r)   Ú	tree_nodeÚ	start_pos©r+   s    r-   r2   zLambdaName.start_pos"   s   € à×!Ñ!×+Ñ+×5Ñ5Ð5r/   c                 ó.   — t        | j                  g«      S r(   )r   r)   r3   s    r-   ÚinferzLambdaName.infer&   s   € Ü˜×+Ñ+Ð,Ó-Ð-r/   N)	Ú__name__Ú
__module__Ú__qualname__Ústring_nameÚapi_typer.   Úpropertyr2   r5   © r/   r-   r%   r%      s*   „ Ø€KØ€Hò:ð ñ6ó ð6ó.r/   r%   c                   ó   — e Zd Zd„ Zy)ÚFunctionAndClassBasec                 óð   — | j                   j                  «       r1| j                   j                  «       }|€y || j                  «       fz   S | j                   j	                  «       r| j                  «       fS y r(   )r*   Úis_classÚget_qualified_namesÚ
py__name__Ú	is_module)r+   Úns     r-   rA   z(FunctionAndClassBase.get_qualified_names+   sj   € Ø×Ñ×'Ñ'Ô)Ø×#Ñ#×7Ñ7Ó9ˆAØˆyàØ˜Ÿ™Ó)Ð+Ñ+Ð+Ø× Ñ ×*Ñ*Ô,Ø—O‘OÓ%Ð'Ð'àr/   N)r6   r7   r8   rA   r<   r/   r-   r>   r>   *   s   „ ó
r/   r>   c                   ó†   — e Zd ZU dZeed<   eed<   eed<   eed<   dd„Zd„ Zd	„ Ze	d
„ «       Z
d„ Zd„ Zdd„Zd„ Zdd„Zd„ Zy)ÚFunctionMixinr&   r1   Úpy__class__Ú
as_contextÚget_signature_functionsNc              #   óŽ   K  — | j                  «       }|j                  «       D ]  }|j                  |¬«      E d {  –—†  Œ y 7 Œ­w)N)Úorigin_scope)rG   Úexecute_with_valuesÚget_filters)r+   rK   ÚclsÚinstances       r-   rM   zFunctionMixin.get_filters?   sA   è ø€ Ø×ÑÓ ˆØ×/Ñ/Ö1ˆHØ×+Ñ+¸Ð+ÓF×FÑFñ 2ØFús   ‚9A»A¼Ac                 ón   — ddl m} |€t        | g«      S t         |||j                  «       | «      g«      S )Nr   )ÚBoundMethod)Újedi.inference.value.instancerQ   r   rH   )r+   rO   Úclass_valuerQ   s       r-   Ú	py__get__zFunctionMixin.py__get__D   s8   € Ý=ØÐä˜T˜FÓ#Ð#Ü™ X¨{×/EÑ/EÓ/GÈÓNÐOÓPÐPr/   c                 ó„   — | j                   j                  «       D �cg c]  }t        | |j                  «      ‘Œ c}S c c}w r(   )r1   Ú
get_paramsr   Úname©r+   Úparams     r-   Úget_param_nameszFunctionMixin.get_param_namesK   s?   € à!Ÿ^™^×6Ñ6Ô8ó:Ù8�Eô # 4¨¯©Õ4Ø8ñ:ð 	:ùò :s   �=c                 óŠ   — | j                   j                  dk(  rt        | «      S t        | | j                   j                  «      S )NÚlambdef)r1   Útyper%   r   rW   r3   s    r-   rW   zFunctionMixin.nameO   s6   € à�>‰>×Ñ )Ò+Ü˜dÓ#Ð#Ü˜˜tŸ~™~×2Ñ2Ó3Ð3r/   c                  ó   — y)NTr<   r3   s    r-   Úis_functionzFunctionMixin.is_functionU   s   € Ør/   c                 ó.   — | j                   j                  S r(   )rW   r9   r3   s    r-   rB   zFunctionMixin.py__name__X   s   € Ø�y‰y×$Ñ$Ð$r/   c           
      óà  — | j                   j                  }|€~d„ }| j                  «       }|j                  «       }|j	                  «       }| j                  «       ddj                  |j                  «       D �cg c]
  } ||«      ‘Œ c}«      z  z   }|€N|S |j                  d¬«      }| j                  «       | j                   j                  d   j                  d¬«      z   }|dz   |z   S c c}w )Nc                 óÊ   — | j                   }| j                  «       j                  «       }|�|d|z   z  }| j                  �"|d| j                  j	                  d¬«      z   z  }|S )Nz: Ú=F©Úinclude_prefix)r9   r5   Úget_type_hintÚdefault_nodeÚget_code)rD   ÚsÚ
annotations      r-   Úparam_name_to_strz6FunctionMixin.get_type_hint.<locals>.param_name_to_str^   sd   € Ø—M‘M�ØŸW™W›Y×4Ñ4Ó6�
ØÐ)Ø˜ 
Ñ*Ñ*�AØ—>‘>Ð-Ø˜˜qŸ~™~×6Ñ6ÀeÐ6ÓLÑLÑL�AØ�r/   z(%s)ú, Frd   é   z -> )
r1   rj   rH   r5   rf   rB   ÚjoinrZ   rh   Úchildren)	r+   Úadd_class_infoÚreturn_annotationrk   Úfunction_executionÚresultÚreturn_hintrD   Úbodys	            r-   rf   zFunctionMixin.get_type_hint[   s÷   € Ø ŸN™N×5Ñ5ÐØÐ$òð "&§¡Ó!2ÐØ'×-Ñ-Ó/ˆFØ ×.Ñ.Ó0ˆKØ—?‘?Ó$ v°·	±	à+×;Ñ;Ô=ó;á=�Añ " !Õ$Ø=ñ;ó 1ñ (ñ ˆDð Ð"Ø�à+×4Ñ4ÀEÐ4ÓJˆKØ—?‘?Ó$ t§~¡~×'>Ñ'>¸qÑ'A×'JÑ'JÐZ_Ð'JÓ'`Ñ`ˆDà�f‰}˜{Ñ*Ð*ùò;s   Á9C+c                 óD   — | j                  |«      }|j                  «       S r(   )rH   r5   )r+   Ú	argumentsrr   s      r-   Ú
py__call__zFunctionMixin.py__call__v   s    € Ø!Ÿ_™_¨YÓ7ÐØ!×'Ñ'Ó)Ð)r/   c                 ó4   — |€t        | «      S t        | |«      S r(   )ÚAnonymousFunctionExecutionÚFunctionExecutionContext)r+   rw   s     r-   Ú_as_contextzFunctionMixin._as_contextz   s    € ØÐÜ-¨dÓ3Ð3Ü'¨¨iÓ8Ð8r/   c                 óZ   — | j                  «       D �cg c]  }t        |«      ‘Œ c}S c c}w r(   )rI   r   )r+   Úfs     r-   Úget_signatureszFunctionMixin.get_signatures   s*   € Ø*.×*FÑ*FÔ*HÓIÑ*H Q”˜aÕ Ð*HÑIÐIùÒIs   “(r(   ©T)r6   r7   r8   r:   r   Ú__annotations__rM   rT   rZ   r;   rW   r_   rB   rf   rx   r|   r   r<   r/   r-   rF   rF   8   sa   … Ø€HØƒNØÓØƒOØ Ó óGò
Qò:ð ñ4ó ð4ò
ò%ó+ò6*ó9ó
Jr/   rF   c                   ó.   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zy)ÚFunctionValuec                 óf  ‡ ‡‡— ˆ ˆˆfd„}t        t        ‰|«      «      }‰Š‰j                  «       s‰j                  «       r.‰j                  Š‰j                  «       rŒ‰j                  «       rŒ. ||«      }|r2t        |t        t        |D �cg c]
  } ||«      ‘Œ c}«      «      «      S |S c c}w )Nc                 ó€   •— ‰j                  «       rt        ‰j                  ‰‰| ¬«      S  ‰‰j                  ‰| ¬«      S )N)r*   r1   )r@   ÚMethodValueÚinference_state)r1   rN   Úcontextr*   s    €€€r-   Úcreatez*FunctionValue.from_context.<locals>.create†   sL   ø€ Ø×ÑÔ!Ü"Ø×+Ñ+ØØ#1Ø'ô	ð ñ Ø×+Ñ+Ø#1Ø'ôð r/   )ÚlistÚ_find_overload_functionsr@   Úis_instancer*   ÚOverloadedFunctionValueÚreversed)rN   rˆ   r1   r‰   Úoverloaded_funcsr&   r~   r*   s   ``     @r-   Úfrom_contextzFunctionValue.from_context„   s¬   ú€ ö	ô  Ô 8¸À)Ó LÓMÐà ˆØ×%Ñ%Ô'¨>×+EÑ+EÔ+GØ+×:Ñ:ˆNð ×%Ñ%Õ'¨>×+EÑ+EÕ+Gñ ˜)Ó$ˆáÜ*Øä”XÑ2BÓCÑ2B¨Q™v a�yÐ2BÑCÓDÓEóð ð
 ˆùò Ds   ÂB.c                 ó8   — t        | j                  dd«      \  }|S )NÚtypesÚFunctionType)r!   r‡   )r+   Úcs     r-   rG   zFunctionValue.py__class__¥   s   € Ü(¨×)=Ñ)=¸wÈÓW‰ˆØˆr/   c                 ó   — | j                   S r(   )r*   r3   s    r-   Úget_default_param_contextz'FunctionValue.get_default_param_context©   s   € Ø×"Ñ"Ð"r/   c                 ó   — | gS r(   r<   r3   s    r-   rI   z%FunctionValue.get_signature_functions¬   s	   € Øˆvˆr/   N)r6   r7   r8   Úclassmethodr�   rG   r–   rI   r<   r/   r-   rƒ   rƒ   ƒ   s$   „ Øñó ðò@ò#ór/   rƒ   )Ú	metaclassc                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ÚFunctionNameInClassc                 ó2   •— t         ‰| �  |«       || _        y r(   )Úsuperr.   Ú_class_context)r+   Úclass_contextrW   Ú	__class__s      €r-   r.   zFunctionNameInClass.__init__±   s   ø€ Ü‰Ñ˜ÔØ+ˆÕr/   c                 ó6   — | j                   j                  «       S r(   )rž   Ú	get_valuer3   s    r-   Úget_defining_qualified_valuez0FunctionNameInClass.get_defining_qualified_valueµ   s   € Ø×"Ñ"×,Ñ,Ó.Ð.r/   )r6   r7   r8   r.   r£   Ú__classcell__©r    s   @r-   r›   r›   °   s   ø„ ô,ö/r/   r›   c                   ó>   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zeˆ fd„«       Zˆ xZS )r†   c                 ó:   •— t        ‰| �  |g|¢­i |¤Ž || _        y r(   )r�   r.   rŸ   )r+   r‡   rŸ   ÚargsÚkwargsr    s        €r-   r.   zMethodValue.__init__º   s"   ø€ Ü‰Ñ˜Ð:¨4Ò:°6Ò:Ø*ˆÕr/   c                 ó   — | j                   S r(   )rŸ   r3   s    r-   r–   z%MethodValue.get_default_param_context¾   s   € Ø×!Ñ!Ð!r/   c                 ód   — | j                   j                  «       }|€y || j                  «       fz   S r(   )rŸ   rA   rB   )r+   Únamess     r-   rA   zMethodValue.get_qualified_namesÁ   s5   € ð ×"Ñ"×6Ñ6Ó8ˆØˆ=ØØ˜Ÿ™Ó)Ð+Ñ+Ð+r/   c                 ó@   •— t        | j                  t        ‰| �  «      S r(   )r›   rŸ   r�   rW   )r+   r    s    €r-   rW   zMethodValue.nameÉ   s   ø€ ä" 4×#5Ñ#5´u±w±|ÓDÐDr/   )	r6   r7   r8   r.   r–   rA   r;   rW   r¤   r¥   s   @r-   r†   r†   ¹   s(   ø„ ô+ò"ò,ð óEó ôEr/   r†   c                   ó´   — e Zd Zd„ Z ee¬«       ej                  «       d
d„«       «       Zd„ Z	 ej                   e
g «      ¬«      d
d„«       Zd
d„Zd„ Zd„ Zy	)ÚBaseFunctionExecutionContextc                 ó   — t         ‚r(   )ÚNotImplementedErrorr3   s    r-   Úinfer_annotationsz.BaseFunctionExecutionContext.infer_annotationsÏ   s   € Ü!Ð!r/   )Údefaultc                 óL  — | j                   }|j                  dk(  r| j                  |j                  d   «      S |rt        }t        | j                  |«      }nF| j                  «       }|r|S |t        j                  | j                  «      z  }|j                  «       }|D ]Â  }|r/|t        j                  d„ | j                  |«      D «       «      z  }Œ4t        j                   | ||«      }|t        j"                  u rt%        j&                  d|«       n$	 |j                  }|| j                  |d   «      z  }|t        j.                  u sŒ«t%        j&                  d|«        |S  |S # t(        $ r2 t+        j,                  | j                  d«      }|t        |g«      z  }Y Œiw xY w)Nr\   éÿÿÿÿc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr(   ©r5   ©Ú.0Ú
lazy_values     r-   Ú	<genexpr>zABaseFunctionExecutionContext.get_return_values.<locals>.<genexpr>ç   s!   è ø€ ð 0á&C˜
ð ×$Ñ$×&Ù&Cùó   ‚zReturn unreachable: %sé   ÚNonezReturn reachable: %s)r1   r]   Ú
infer_nodero   r   r    r‡   r²   r	   Úinfer_return_typesÚ_valueÚiter_return_stmtsr   Ú	from_setsÚ_get_yield_lazy_valuer
   Úreachability_checkÚUNREACHABLEr   ÚdbgÚAttributeErrorr   Úbuiltin_from_nameÚ	REACHABLE)	r+   Úcheck_yieldsÚfuncdefÚ	value_setÚreturnsÚrÚcheckro   Úctxs	            r-   Úget_return_valuesz.BaseFunctionExecutionContext.get_return_valuesÒ   s‹  € ð —.‘.ˆØ�<‰<˜9Ò$Ø—?‘? 7×#3Ñ#3°BÑ#7Ó8Ð8áÜ!ˆIÜ% d×&:Ñ&:¸GÓD‰Gà×.Ñ.Ó0ˆIÙð !Ð Øœ×6Ñ6°t·{±{ÓCÑCˆIØ×/Ñ/Ó1ˆGãˆAÙØœX×/Ñ/ñ 0à&*×&@Ñ&@ÀÔ&Có0ó ñ ‘	ô
 &×8Ñ8¸¸wÈÓJ�ØœM×5Ñ5Ñ5Ü—I‘IÐ6¸Õ:ðBØ#$§:¡:˜ð
 " T§_¡_°X¸a±[Ó%AÑA˜	ØœM×3Ñ3Ò3Ü—I‘IÐ4°aÔ8ØØÐð+ ð* Ðøô *ò 5Ü&×8Ñ8¸×9MÑ9MÈvÓV˜Ø!¤X¨s¨e£_Ñ4š	ð5ús   ÄE(Å(8F#Æ"F#c              #   ód  K  — |j                   dk(  r.t        j                  | j                  d«      }t	        |«      –— y |j
                  d   }|j                   dk(  rAt        | |j
                  d   «      }|j                  «       j                  |«      E d {  –—†  y t        | |«      –— y 7 Œ­w)NÚkeywordr¾   r½   Ú	yield_arg)
r]   r   rÉ   r‡   r   ro   r   r5   Úiterater   )r+   Ú
yield_exprrÑ   ÚnodeÚcns        r-   rÄ   z2BaseFunctionExecutionContext._get_yield_lazy_valueü   s•   è ø€ Ø�?‰?˜iÒ'ä×,Ñ,¨T×-AÑ-AÀ6ÓJˆCÜ  Ó%Ò%Øà×"Ñ" 1Ñ%ˆØ�9‰9˜Ò#Ü# D¨$¯-©-¸Ñ*:Ó;ˆBØ—x‘x“z×)Ñ)¨"Ó-×-Ñ-ä  dÓ+Ó+ð .ús   ‚BB0ÂB.ÂB0c           
   #   óf  K  — t        | j                  | j                  «      D �cg c]  }||j                  dddd«      f‘Œ }}g }d }|D ]æ  \  }}|j                  }|j
                  dk(  r|j                  }|j
                  dk(  rV|| j                  k(  rGt        j                  |«      r2||k(  r|d   d   j                  |«       nh|j                  ||gf«       nS|| j                  k(  r|j                  d |gf«       n/| j                  d¬	«      }	|	rt        |	d
t        d«      ¬«      –—  y |}Œè |D ]ã  \  }}
|€!|
D ]  }| j                  |«      E d {  –—†  Œ Œ)|j                  «       }t        | |«      }|j                  «       j!                  |«      }t#        |«      }|D ]p  }t%        |j&                  d   j(                  «      |j                  «       i}| j+                  ||«      5  |
D ]  }| j                  |«      E d {  –—†  Œ 	 d d d «       Œr Œå y c c}w 7 ŒÊ7 Œ# 1 sw Y   ŒˆxY w­w)NÚfor_stmtrÌ   Ú
while_stmtÚif_stmtÚsuiterµ   r½   T)rË   r   Úinf)ÚminÚmax)r    r‡   r1   Úsearch_ancestorÚparentr]   r   Úfor_stmt_defines_one_nameÚappendrÒ   r   ÚfloatrÄ   Úget_testlistr   r5   rÖ   rŠ   Ústrro   ÚvalueÚpredefine_names)r+   Úis_asyncÚyÚfor_parentsÚyields_orderÚlast_for_stmtÚyield_rÛ   rã   r’   ÚyieldsÚ
input_noderÙ   Úorderedrº   ÚdctÚyield_in_same_for_stmts                    r-   Úget_yield_lazy_valuesz2BaseFunctionExecutionContext.get_yield_lazy_values
  s7  è ø€ ô
 !0°×0DÑ0DÀdÇnÁnÔ UóWá U˜1ð ˜1×,Ñ,¨Z¸Ø-9¸9óFò Gà Uð 	ð Wð
 ˆØˆÛ +ÑˆF�Hð —_‘_ˆFØ�{‰{˜gÒ%ØŸ™�Ø�}‰} 
Ò*¨v¸¿¹Ò/GÜ$×>Ñ>¸xÔHØ˜}Ò,Ø  Ñ$ QÑ'×.Ñ.¨vÕ6à ×'Ñ'¨°F°8Ð(<Õ=Ø˜TŸ^™^Ò+Ø×#Ñ# T¨F¨8Ð$4Õ5à×.Ñ.¸DÐ.ÓA�ÙÜ)¨%°Q¼EÀ%»LÔIÒIÙØ$‰Mð' !,ó* !-ÑˆH�fØÐã$�FØ#×9Ñ9¸&ÓA×AÑAñ %ð &×2Ñ2Ó4�
Ü'¨¨jÓ9�ØŸ(™(›*×,Ñ,¨RÓ0�Ü˜w›-�Û")�JÜ˜x×0Ñ0°Ñ3×9Ñ9Ó:¸J×<LÑ<LÓ<NÐO�CØ×-Ñ-¨h¸Õ<Û6<Ð2Ø'+×'AÑ'AÐBXÓ'Y×YÑYñ 7=÷ =Ð<ñ #*ñ !-ùò9Wð@ Bøð Zø÷ =Ð<üsH   ‚#H1¥HÁDH1ÅH!ÅBH1Ç-H%ÈH#ÈH%ÈH1È#H%È%H.È*H1c                 óV   — t        j                  d„ | j                  «       D «       «      S )Nc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr(   r·   r¸   s     r-   r»   zBBaseFunctionExecutionContext.merge_yield_values.<locals>.<genexpr>:  s!   è ø€ ð "
á:�
ð ×Ñ×Ù:ùr¼   )r   rÃ   rö   )r+   rë   s     r-   Úmerge_yield_valuesz/BaseFunctionExecutionContext.merge_yield_values9  s+   € Ü×!Ñ!ñ "
à"×8Ñ8Ô:ó"
ó 
ð 	
r/   c                 óT   — t        t        | j                  | j                  «      «      S r(   )Úboolr    r‡   r1   r3   s    r-   Úis_generatorz)BaseFunctionExecutionContext.is_generator?  s   € Ü”O D×$8Ñ$8¸$¿.¹.ÓIÓJÐJr/   c                 óÔ  ‡‡— | j                   }| j                  j                  j                  dv }ddlmŠ |rá| j                  «       rg|j                  j                  d«      }| j                  d¬«      }|j                  «       t        fŠt        ˆˆfd„|D «       «      j                  d«      S |j                  j                  d	«      }| j                  «       }t        t        |j                  «       fŠt        ˆˆfd
„|D «       «      j                  d«      S | j                  «       r0| j!                  «       s t        t#        j$                  || «      g«      S | j                  «       S )z4
        Created to be used by inheritance.
        )Ú
async_stmtÚasync_funcdefr   )ÚGenericClassÚAsyncGeneratorT)rë   c              3   óB   •K  — | ]  } ‰|t        ‰«      «      –— Œ y ­wr(   r"   ©r¹   r”   r   Úgenericss     €€r-   r»   z5BaseFunctionExecutionContext.infer.<locals>.<genexpr>R  s&   øè ø€ ð  á4˜ñ ! Ô$7¸Ó$A×BÙ4ùó   ƒNÚCoroutineTypec              3   óB   •K  — | ]  } ‰|t        ‰«      «      –— Œ y ­wr(   r"   r  s     €€r-   r»   z5BaseFunctionExecutionContext.infer.<locals>.<genexpr>[  s"   øè ø€ ð  ÙLYÀq‘L Ô$7¸Ó$A×BÉMùr  )r‡   r1   rã   r]   Újedi.inference.gradual.baser   rü   Útyping_moduleÚpy__getattribute__rù   rG   r   r   Úexecute_annotationÚtypes_modulerÒ   r²   r   Ú	Generator)	r+   r‡   Úis_coroutineÚasync_generator_classesÚyield_valuesÚasync_classesÚreturn_valuesr   r  s	          @@r-   r5   z"BaseFunctionExecutionContext.inferB  sJ  ù€ ð ×.Ñ.ˆØ—~‘~×,Ñ,×1Ñ1Ð5TÐTˆÝ<áØ× Ñ Ô"Ø*9×*GÑ*Gß'Ñ'Ð(8Ó9ð (ð  $×6Ñ6ÀÐ6ÓE�à(×4Ñ4Ó6¼	ÐB�Üô  á4ó ó ÷ %Ñ$ TÓ*ð+ð
 !0× <Ñ <× OÑ OÐP_Ó `�Ø $× 6Ñ 6Ó 8�ä%¤y°-×2KÑ2KÓ2MÐN�Üô  ÙLYó ó ç$Ñ$ TÓ*ð+ð
 × Ñ Ô"¨4×+AÑ+AÔ+CÜ¤×!3Ñ!3°OÀTÓ!JÐ KÓLÐLà×-Ñ-Ó/Ð/r/   N)F)r6   r7   r8   r²   r   r   r   Úexecution_recursion_decoratorrÒ   rÄ   Úiterrö   rù   rü   r5   r<   r/   r-   r¯   r¯   Î   sq   „ ò"ñ "¨)Ô4Ø,€Y×,Ñ,Ó.ò&ó /ó 5ð&òP,ð -€Y×,Ñ,±T¸"³XÔ>ò,Zó ?ð,Zó\
òKó!0r/   r¯   c                   ó2   ‡ — e Zd Zˆ fd„Zdd„Zd„ Zd„ Zˆ xZS )r{   c                 ó2   •— t         ‰| �  |«       || _        y r(   )r�   r.   Ú
_arguments)r+   Úfunction_valuerw   r    s      €r-   r.   z!FunctionExecutionContext.__init__g  s   ø€ Ü‰Ñ˜Ô(Ø#ˆ�r/   c              #   óX   K  — t        | | j                  ||| j                  ¬«      –— y ­w)N)Úuntil_positionrK   rw   )r   rÁ   r  ©r+   r  rK   s      r-   rM   z$FunctionExecutionContext.get_filtersk  s)   è ø€ Ü%Ø�$—+‘+Ø)Ø%Ø—o‘oô	
ó 	
ùs   ‚(*c                 óH   — ddl m}  || j                  | j                  «      S )Nr   )rÀ   )Ú!jedi.inference.gradual.annotationrÀ   rÁ   r  )r+   rÀ   s     r-   r²   z*FunctionExecutionContext.infer_annotationss  s   € ÝHÙ! $§+¡+¨t¯©Ó?Ð?r/   c                 óÂ   — | j                   j                  j                  «       D �cg c]-  }t        | j                   |j                  | j
                  «      ‘Œ/ c}S c c}w r(   )rÁ   r1   rV   r   rW   r  rX   s     r-   rZ   z(FunctionExecutionContext.get_param_namesw  sQ   € ð Ÿ™×.Ñ.×9Ñ9Ô;ó
á;�ô �d—k‘k 5§:¡:¨t¯©Õ?Ø;ñ
ð 	
ùò 
s   §2A©NN)r6   r7   r8   r.   rM   r²   rZ   r¤   r¥   s   @r-   r{   r{   f  s   ø„ ô$ó
ò@ö
r/   r{   c                   ó    — e Zd Zd„ Zdd„Zd„ Zy)rz   c                 ó   — t         S r(   )r   r3   s    r-   r²   z,AnonymousFunctionExecution.infer_annotations  s
   € ô Ðr/   Nc              #   óB   K  — t        | | j                  ||¬«      –— y ­w)N)r  rK   )r   rÁ   r  s      r-   rM   z&AnonymousFunctionExecution.get_filters„  s"   è ø€ Ü.Ø�$—+‘+Ø)Ø%ô
ó 	
ùs   ‚c                 ó6   — | j                   j                  «       S r(   )rÁ   rZ   r3   s    r-   rZ   z*AnonymousFunctionExecution.get_param_names‹  s   € Ø�{‰{×*Ñ*Ó,Ð,r/   r  )r6   r7   r8   r²   rM   rZ   r<   r/   r-   rz   rz   ~  s   „ òó

ó-r/   rz   c                   ó2   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zdd„Zˆ xZS )r�   c                 ó2   •— t         ‰| �  |«       || _        y r(   )r�   r.   Ú_overloaded_functions)r+   r&   Úoverloaded_functionsr    s      €r-   r.   z OverloadedFunctionValue.__init__�  s   ø€ Ü‰Ñ˜Ô"Ø%9ˆÕ"r/   c                 ó‚  — t        j                  d| j                  d¬«       g }| j                  «       D ]Q  }|j                  j                  |«      }|j                  |«       |j                  |«      sŒA|j                  «       c S  | j                  j                  rt        S t        j                  d„ |D «       «      S )NzExecute overloaded function %sÚBLUE)Úcolorc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr(   r·   )r¹   Úfes     r-   r»   z5OverloadedFunctionValue.py__call__.<locals>.<genexpr>   s   è ø€ Ð!KÑ7J° "§(¡(§*Ñ7Jùr¼   )r   rÇ   Ú_wrapped_valuer   ré   rH   rå   Úmatches_signaturer5   r‡   Úis_analysisr   r   rÃ   )r+   rw   Úfunction_executionsÚ	signaturerr   s        r-   rx   z"OverloadedFunctionValue.py__call__”  s¢   € Ü�	‰	Ð2°D×4GÑ4GÈvÕVØ ÐØ×,Ñ,Ö.ˆIØ!*§¡×!;Ñ!;¸IÓ!FÐØ×&Ñ&Ð'9Ô:Ø×*Ñ*¨9Õ5Ø)×/Ñ/Ó1Ò1ð	 /ð ×Ñ×+Ò+äÐÜ×!Ñ!Ñ!KÑ7JÓ!KÓKÐKr/   c                 ó   — | j                   S r(   )r&  r3   s    r-   rI   z/OverloadedFunctionValue.get_signature_functions¢  s   € Ø×)Ñ)Ð)r/   c                 óL   — ddj                  d„ | j                  D «       «      z  S )Nz	Union[%s]rl   c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr(   )rf   )r¹   r~   s     r-   r»   z8OverloadedFunctionValue.get_type_hint.<locals>.<genexpr>¦  s   è ø€ Ð&]ÑB\¸Q q§¡×'8ÑB\ùr¼   )rn   r&  )r+   rp   s     r-   rf   z%OverloadedFunctionValue.get_type_hint¥  s"   € Ø˜TŸY™YÑ&]À$×B\ÒB\Ó&]Ó]Ñ]Ð]r/   r€   )r6   r7   r8   r.   rx   rI   rf   r¤   r¥   s   @r-   r�   r�   �  s   ø„ ô:òLò*÷^r/   r�   c              #   ót  K  — d„ }|j                   dk(  ry  ||«      r|–— 	 t        | |j                  ¬«      }|j                  |j                  j
                  «      }t        |t        «      sJ ‚|sy d}|D ]9  }|j                  j                  }|j                   dk(  sŒ) ||«      sŒ2|}d}|–— Œ; |sy Œ•­w)Nc                 ó  — | j                   j                  dk(  ro| j                   j                  d   }|j                  dk(  r|g}n|j                  }|D ]2  }|j                  d   }|j                  dk(  sŒ"|j                  dk(  sŒ2 y y)	NÚ	decoratedr   Ú	decoratorr½   rW   ÚoverloadTF)rã   r]   ro   ré   )rÌ   Ú
decoratorsr8  Údotted_names       r-   Ú_is_overload_decoratedz8_find_overload_functions.<locals>._is_overload_decoratedª  sƒ   € Ø�>‰>×Ñ +Ò-Ø Ÿ™×0Ñ0°Ñ3ˆJØ�‰ +Ò-Ø(˜\‘
à'×0Ñ0�
Û'�	Ø'×0Ñ0°Ñ3�Ø×#Ñ# vÓ-°+×2CÑ2CÀzÓ2Qáð	 (ð
 r/   r\   T)r  FrÌ   )
r]   r   r2   ÚgetrW   ré   Ú
isinstancerŠ   Ú	tree_namerã   )rˆ   r1   r<  Úfilterr¬   ÚfoundrW   rÌ   s           r-   r‹   r‹   ©  sÀ   è ø€ òð ‡~�~˜Ò"Øá˜iÔ(ØŠà
Ü!ØØ$×.Ñ.ô
ˆð —
‘
˜9Ÿ>™>×/Ñ/Ó0ˆÜ˜%¤Ô&Ð&Ð&ÙØàˆÛˆDØ—n‘n×+Ñ+ˆGØ�|‰|˜yÓ(Ñ-CÀGÕ-LØ#�	Ø�Ø“ð ñ Øð' ùs   ‚BB8Â!B8Â*B8N)9Útypingr   Újedir   Újedi.inference.cacher   r   Újedi.inferencer   r   r	   r
   Újedi.inference.signaturer   Újedi.inference.filtersr   r   r   Újedi.inference.namesr   r   r   r   r   Újedi.inference.base_valuer   r   r   r   r   Újedi.inference.lazy_valuer   r   r   Újedi.inference.contextr   r   Újedi.inference.valuer   r   Újedi.inference.parser_cacher    Újedi.inference.helpersr!   Újedi.inference.gradual.genericsr#   r%   r>   rF   rƒ   r›   r†   r¯   r{   rz   r�   r‹   r<   r/   r-   Ú<module>rP     sì   ðÝ å ß NÝ #Ý $Ý %Ý (Ý 2÷%ñ %÷/õ /÷&õ &÷ñ ç AÝ )Ý Ý 7Ý >Ý ?ô.Ð'ô .ô ˜9ô ÷HJñ HJôV*�MÐ#7À?õ *ôZ/˜+ô /ôE�-ô Eô*U0 <Ð1Aô U0ôp
Ð;ô 
ô0-Ð!=ô -ô"^˜m¨\ô ^ó4(r/   