ó
    Ð]jJ[  ã                   óN  • S SK Jr  S SKJr  S SKJrJrJr  S SKJ	r	J
r
  S SKJrJr  S SKJr  S SKJr  S SKJr  S S	KJrJr  S S
KJr  S r " S S5      r " S S\5      r " S S\5      r " S S5      r " S S\\5      r " S S\5      r " S S5      r  " S S\ 5      r! " S S\!\5      r" " S S\"5      r# " S  S!\#5      r$ " S" S#\#5      r% " S$ S%\ 5      r& " S& S'\5      r' " S( S)\'5      r( " S* S+5      r) " S, S-5      r* " S. S/\*\5      r+ " S0 S1\\5      r, " S2 S3\*\,5      r-g4)5é    )Úabstractmethod)Ú	Parameter)ÚOptionalÚTupleÚAny)Úfind_statement_documentationÚclean_scope_docstring)ÚValueSetÚ	NO_VALUES)Úinference_state_method_cache)Ú
docstrings)Úmemoize_method)Údeep_ast_copyÚinfer_call_of_leaf)Úplugin_managerc                 óX   • SnU  H!  nU(       a  US-  nXR                  5       -  nM#     U$ )NÚ z 
------------------------------
)Ú	py__doc__)ÚnamesÚdocÚnames      ÚQ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/jedi/inference/names.pyÚ_merge_name_docsr      s7   € Ø
€CÛˆÞð Ð)Ñ)ˆCØ�~‰~ÓÑŠñ ð €Jó    c                   ó¦   • \ rS rSr% Sr\\\\4      \S'   \	\S'   Sr
SrSr \S 5       rS rSS jrS	 rS
 rS rS rS rS r\S 5       rS rSrg)ÚAbstractNameDefinitioné   NÚ	start_posÚstring_nameTc                 ó   • [         e©N©ÚNotImplementedError©Úselfs    r   ÚinferÚAbstractNameDefinition.infer#   s   € ä!Ð!r   c                 ó   • U 1$ r!   © r$   s    r   ÚgotoÚAbstractNameDefinition.goto'   s   € ð ˆvˆr   c                 ó~   • U R                  5       nUb  U(       d  U$ U R                  5       R                  nUc  g X2-   $ r!   )Ú_get_qualified_namesÚget_root_contextÚstring_names)r%   Úinclude_module_namesÚqualified_namesÚmodule_namess       r   Úget_qualified_namesÚ*AbstractNameDefinition.get_qualified_names,   sE   € Ø×3Ñ3Ó5ˆØÑ"Ö*>Ø"Ð"à×,Ñ,Ó.×;Ñ;ˆØÑØØÑ-Ð-r   c                 ó   • g r!   r)   r$   s    r   r-   Ú+AbstractNameDefinition._get_qualified_names6   s   € àr   c                 ó6   • U R                   R                  5       $ r!   )Úparent_contextr.   r$   s    r   r.   Ú'AbstractNameDefinition.get_root_context:   s   € Ø×"Ñ"×3Ñ3Ó5Ð5r   c                 ó   • U R                   $ r!   )r   r$   s    r   Úget_public_nameÚ&AbstractNameDefinition.get_public_name=   s   € Ø×ÑÐr   c                 óÜ   • U R                   c)  SU R                  R                  < SU R                  < S3$ SU R                  R                  < SU R                  < SU R                   < S3$ )NÚ<z: string_name=Ú>z start_pos=)r   Ú	__class__Ú__name__r   r$   s    r   Ú__repr__ÚAbstractNameDefinition.__repr__@   sT   € Ø�>‰>Ò!Ø-1¯^©^×-DÔ-DÀd×FVÔFVÐWÐWð "à6:·n±n×6MÔ6MØ6:×6FÔ6FÈÏÌðXð 	Xr   c                 ó   • g)NFr)   r$   s    r   Ú	is_importÚ AbstractNameDefinition.is_importF   s   € Ør   c                 ó   • g)Nr   r)   r$   s    r   r   Ú AbstractNameDefinition.py__doc__I   s   € Ør   c                 ó.   • U R                   R                  $ r!   )r8   Úapi_typer$   s    r   rJ   ÚAbstractNameDefinition.api_typeL   s   € à×"Ñ"×+Ñ+Ð+r   c                 ó   • g)z‡
Returns either None or the value that is public and qualified. Won't
return a function, because a name in a function is never public.
Nr)   r$   s    r   Úget_defining_qualified_valueÚ3AbstractNameDefinition.get_defining_qualified_valueP   s   € ð
 r   r)   ©F)rA   Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   ÚintÚ__annotations__Ústrr8   Ú	tree_nameÚis_value_namer   r&   r*   r3   r-   r.   r;   rB   rE   r   ÚpropertyrJ   rM   Ú__static_attributes__r)   r   r   r   r      s‰   ‡ Ø+/€Iˆx˜˜c 3˜h™Ñ(Ó/ØÓØ€NØ€IØ€Mðð ñ"ó ð"òô
.òò6ò òXòòð ñ,ó ð,õr   r   c                   ó(   • \ rS rSrSrSrS rS rSrg)ÚAbstractArbitraryNameéX   z¹
When you e.g. want to complete dicts keys, you probably want to complete
string literals, which is not really a name, but for Jedi we use this
concept of Name for completions as well.
Fc                 ó>   • Xl         X l        UR                  U l        g r!   )Úinference_stater   Úbuiltins_moduler8   )r%   r^   Ústrings      r   Ú__init__ÚAbstractArbitraryName.__init__`   s   € Ø.ÔØ!ÔØ-×=Ñ=ˆÕr   c                 ó   • [         $ r!   ©r   r$   s    r   r&   ÚAbstractArbitraryName.infere   ó   € ÜÐr   )r^   r8   r   N)	rA   rP   rQ   rR   Ú__doc__rW   ra   r&   rY   r)   r   r   r[   r[   X   s   † ñð
 €Mò>õ
r   r[   c                   ó€   ^ • \ rS rSr% \\S'   \\S'   S rSU 4S jjrS rS r	S r
S	 r\S
 5       r\S 5       rSrU =r$ )ÚAbstractTreeNameéi   rV   r8   c                 ó   • Xl         X l        g r!   ©r8   rV   )r%   r8   rV   s      r   ra   ÚAbstractTreeName.__init__m   s   € Ø,ÔØ"�r   c                 ój  >• U R                   R                  SS5      nUb…  UR                  S:X  a1  U R                  5       R	                  5       R                  5       (       dD  U(       a<  UR                  (       d+  [        S UR                  U R                   5       5       5      $ g [        TU ]%  U5      $ )NÚimport_nameÚimport_fromé   c              3   ó8   #   • U  H  oR                   v •  M     g 7fr!   )Úvalue)Ú.0Úns     r   Ú	<genexpr>Ú7AbstractTreeName.get_qualified_names.<locals>.<genexpr>{   s   é € Ð\Ò.[¨ŸWžWÒ.[ùs   ‚)
rV   Úsearch_ancestorÚlevelr.   Ú	get_valueÚ
is_packageÚtupleÚget_path_for_nameÚsuperr3   )r%   r0   Úimport_noder@   s      €r   r3   Ú$AbstractTreeName.get_qualified_namesq   sŽ   ø€ Ø—n‘n×4Ñ4°]ÀMÓRˆð
 Ñ"¨K×,=Ñ,=ÀÓ,BØ04×0EÑ0EÓ0G×0QÑ0QÓ0S×0^Ñ0^×0`Ñ0`æ#¨K×,=×,=ÜÑ\¨k×.KÑ.KÈDÏNÉNÔ.[Ó\Ó\Ð\àä‰wÑ*Ð+?Ó@Ð@r   c                 óp   • U R                   R                  5       nUc  g XR                  R                  4-   $ r!   )r8   r3   rV   rs   )r%   Úparent_namess     r   r-   Ú%AbstractTreeName._get_qualified_names�   s5   € Ø×*Ñ*×>Ñ>Ó@ˆØÑØØŸ~™~×3Ñ3Ð5Ñ5Ð5r   c                 óš   • U R                  5       (       a  [        S5      eU R                  (       a  U R                  R                  5       $ g )Nz&Shouldn't really happen, please report)rE   r#   r8   rz   r$   s    r   rM   Ú-AbstractTreeName.get_defining_qualified_value‡   s<   € Ø�>‰>×ÑÜ%Ð&NÓOÐOØ× × Ø×&Ñ&×0Ñ0Ó2Ð2Ør   c           	      ó–  • U R                   nU R                  nUR                  SS9nUbO  UR                  nUS:X  a$  UR                  R                  S;  nU(       a  U /$ OFUS;   a  SSKJn  U" X5      nU$ U /$ SSKJn  U" X5      n	U	b  U	 V
s/ s H  oªR                  PM     sn
$ UR                  nUR                  nUS	:X  Ga€  UR                  S
   S:X  Gal  UR                  S   U:X  GaX  UR                  nUR                  S:X  a  UR                  nUR                  S:w  Ga  UR                  S:X  a  UR                  UR                  S
   5      nO‡UR                  R                  R                  U5      nUR                  R                  S U nUS   S:X  a  UR                  S5        UR                  US   5      nSSKJn  US
S   H  nU" XU5      nM     / nU H^  n
U
R                  5        HG  nUR!                  5        H0  nUR"                  UR$                  :X  d  M  UR'                  U5        M2     MI     M`     U$ O�US:X  a{  UR                  R                  U5      nUS:”  aZ  [)        U5      n/ UR                  US
-
  S & UR                  U5      n	U	 V
Vs/ s H  n
U
R+                  X!S9  H  nUPM     M     snn
$ US:X  a,  UR                  S   S:X  a  [-        XSS9n	U	R+                  X!S9$ UR/                  SS5      =(       d    UnUR                  S:X  a  UnUR+                  UUR0                  S9$ s  sn
f s  snn
f )NT©Úimport_name_alwaysÚ	expr_stmt)ÚpowerÚtrailer)rp   ro   r   )Úgoto_import)Ú%follow_error_node_imports_if_possibleÚargumentrq   Ú=ÚarglistÚclassdefÚ	decoratorÚawait)Úinfer_trailerÚdotted_name)Úname_contextr‹   Ú.)Úcut_own_trailerÚlambdef)Úposition)r8   rV   Úget_definitionÚtypeÚparentÚjedi.inference.importsrŒ   r�   r   ÚchildrenÚ
infer_nodeÚindexÚpopÚjedi.inference.syntax_treer”   Úget_signaturesÚget_param_namesr   rs   Úappendr   r*   r   rx   r   )r%   Úcontextr   Ú
definitionÚtype_Úis_simple_namerŒ   r2   r�   Úvaluesrs   ÚparÚ	node_typer‹   Ú	value_setÚiÚto_inferr”   Úparam_namesÚ	signatureÚ
param_namer¡   Ú
new_dottedru   Ústmts                            r   r*   ÚAbstractTreeName.gotoŽ   s*  € Ø×%Ñ%ˆØ�~‰~ˆØ×(Ñ(¸DÐ(ÐAˆ
ØÑ!Ø—O‘OˆEØ˜Ó#ð "&§¡×!1Ñ!1Ð9MÑ!M�Þ!Ø ˜6�Mð "àÐ8Ó8Ý>Ù*¨7Ó9�Ø#Ð#à�v�åTÙ:¸7ÓIˆFØÑ!Ù06Ó7² uŸ
œ
±Ñ7Ð7à�k‰kˆØ—H‘Hˆ	Ø˜
Ô" s§|¡|°A¡¸#Ô'=À#Ç,Á,ÈqÁ/ÐUYÔBYà—j‘jˆGØ�|‰|˜yÓ(Ø!Ÿ.™.�Ø�|‰|˜zÔ)Ø—<‘< ;Ó.Ø '× 2Ñ 2°7×3CÑ3CÀAÑ3FÓ G‘IàŸ™×/Ñ/×5Ñ5°gÓ>�AØ&Ÿ~™~×6Ñ6°r¸Ð:�HØ ‘{ gÓ-Ø Ÿ™ QœØ '× 2Ñ 2°8¸A±;Ó ?�IÝHØ#+¨A¨B£<˜Ù$1°'ÀgÓ$Nš	ñ $0à �Û&�EØ%*×%9Ñ%9Ö%;˜	Ø*3×*CÑ*CÖ*E˜JØ)×5Ñ5¸¿¹ÕCØ +× 2Ñ 2°:Ö >ó +Fó &<ñ 'ð
 #Ð"ð% *ð& ˜-Ó'Ø—L‘L×&Ñ& tÓ,ˆEØ�q‹yÜ*¨3Ó/�
Ø24�
×#Ñ# E¨A¡I JÐ/Ø ×+Ñ+¨JÓ7�ñ "(ôâ!'˜Ø"ŸZ™Z¨˜ZÔC˜ó áCñ Ù!'òð ð ˜	Ó! c§l¡l°1¡o¸Ó&<Ü'¨ÀtÑLˆFØ—;‘;˜t�;Ð:Ð:à×'Ñ'¨°YÓ?×GÀ4ˆDØ�y‰y˜IÓ%Ø�Ø—<‘< ¨t¯~©~�<Ð>Ð>ùò_ 8ùóDs   ÂM Ê #Mc                 óB   • U R                   R                  SS5      nUS L$ )Nrp   ro   ©rV   rx   )r%   Úimps     r   rE   ÚAbstractTreeName.is_importÕ   s"   € Ø�n‰n×,Ñ,¨]¸MÓJˆØ˜$ˆÐr   c                 ó.   • U R                   R                  $ r!   )rV   rs   r$   s    r   r   ÚAbstractTreeName.string_nameÙ   s   € à�~‰~×#Ñ#Ð#r   c                 ó.   • U R                   R                  $ r!   )rV   r   r$   s    r   r   ÚAbstractTreeName.start_posÝ   s   € à�~‰~×'Ñ'Ð'r   rl   rO   )rA   rP   rQ   rR   r   rT   ra   r3   r-   rM   r*   rE   rX   r   r   rY   Ú__classcell__©r@   s   @r   ri   ri   i   sW   ø‡ ØƒNØÓò#÷Aò 6òòE?òNð ñ$ó ð$ð ñ(ó ö(r   ri   c                   óf   ^ • \ rS rSr% \\S'   \\S'   S rS rS rU 4S jr	S r
\S	 5       rS
rU =r$ )ÚValueNameMixinéâ   Ú_valuer8   c                 ó.   • [        U R                  /5      $ r!   )r
   rÄ   r$   s    r   r&   ÚValueNameMixin.inferæ   s   € Ü˜Ÿ™˜Ó&Ð&r   c                 óÂ   • U R                   R                  5       nU(       d=  U R                   R                  5       (       a  SSKJn  U" U /SS9nX;  a  [        U5      $ U$ )Nr   ©Úconvert_namesF©Úprefer_stub_to_compiled)rÄ   r   Úis_stubÚ!jedi.inference.gradual.conversionrÉ   r   )r%   r   rÉ   r   s       r   r   ÚValueNameMixin.py__doc__é   sP   € Ø�k‰k×#Ñ#Ó%ˆÞ�t—{‘{×*Ñ*×,Ñ,ÝGÙ! 4 &À%ÑHˆEØÓ Ü'¨Ó.Ð.Øˆ
r   c                 ó6   • U R                   R                  5       $ r!   )rÄ   r3   r$   s    r   r-   Ú#ValueNameMixin._get_qualified_namesò   s   € Ø�{‰{×.Ñ.Ó0Ð0r   c                 ón   >• U R                   c  U R                  R                  5       $ [        TU ]  5       $ r!   )r8   rÄ   Ú
as_contextr~   r.   ©r%   r@   s    €r   r.   ÚValueNameMixin.get_root_contextõ   s0   ø€ Ø×ÑÑ&Ø—;‘;×)Ñ)Ó+Ð+Ü‰wÑ'Ó)Ð)r   c                 óª   • U R                   nUbD  UR                  5       (       d  UR                  5       (       a  U R                   R                  5       $ g r!   )r8   Ú	is_moduleÚis_classrz   )r%   r§   s     r   rM   Ú+ValueNameMixin.get_defining_qualified_valueú   sG   € Ø×%Ñ%ˆØÑ G×$5Ñ$5×$7Ñ$7¸7×;KÑ;K×;MÑ;MØ×&Ñ&×0Ñ0Ó2Ð2Ør   c                 ó.   • U R                   R                  $ r!   )rÄ   rJ   r$   s    r   rJ   ÚValueNameMixin.api_type   s   € à�{‰{×#Ñ#Ð#r   r)   )rA   rP   rQ   rR   r   rT   r&   r   r-   r.   rM   rX   rJ   rY   r¿   rÀ   s   @r   rÂ   rÂ   â   s;   ø‡ ØƒKØÓò'òò1õ*ò
ð ñ$ó ö$r   rÂ   c                   ó.   ^ • \ rS rSrU 4S jrS rSrU =r$ )Ú	ValueNamei  c                 óF   >• [         TU ]  UR                  U5        Xl        g r!   )r~   ra   r8   rÄ   )r%   rs   rV   r@   s      €r   ra   ÚValueName.__init__  s   ø€ Ü‰Ñ˜×-Ñ-¨yÔ9Ø�r   c                 óB   • [        U R                  R                  /5      $ r!   )r
   rÄ   r   r$   s    r   r*   ÚValueName.goto
  s   € Ü˜Ÿ™×)Ñ)Ð*Ó+Ð+r   )rÄ   )rA   rP   rQ   rR   ra   r*   rY   r¿   rÀ   s   @r   rÜ   rÜ     s   ø† õ÷,ð ,r   rÜ   c                   ól   • \ rS rSr\" SSSSSS9rS r\S 5       rS	 r	\S
 5       r
\" SS9S 5       rSrg)ÚTreeNameDefinitioni  ÚmoduleÚfunctionÚparamÚclass)ro   rp   Úfuncdefrå   r‘   c                 ór   • SSK Jn  U" U R                  R                  U R                  U R                  5      $ )Nr   )Útree_name_to_values)r£   ré   r8   r^   rV   )r%   ré   s     r   r&   ÚTreeNameDefinition.infer  s1   € åBÙ"Ø×Ñ×/Ñ/Ø×ÑØ�N‰Nó
ð 	
r   c                 óˆ   • U R                   R                  SS9nUc  gU R                  R                  UR                  S5      $ )NTr‡   Ú	statement)rV   r›   Ú
_API_TYPESÚgetrœ   )r%   r¨   s     r   rJ   ÚTreeNameDefinition.api_type   s=   € à—^‘^×2Ñ2ÀdÐ2ÐKˆ
ØÑØØ�‰×"Ñ" :§?¡?°KÓ@Ð@r   c                 ó   • / nSnU R                   R                  nU R                   nUbÔ  UR                  S;   a‹  [        UR                  5       Hd  u  pVXd:X  d  M  [        US-  5      nU(       a0  [        [        UR                  5      U-
  S-  5      n[        Xx* 5      nUR                  SXs45          O   [        S5      eSnO&UR                  S:X  a  SnOUR                  S;   a   U$ UnUR                  nUb  MÔ  U$ )	aF  
Returns an array of tuple(int, node) of the indexes that are used in
tuple assignments.

For example if the name is ``y`` in the following code::

    x, (y, z) = 2, ''

would result in ``[(1, xyz_node), (0, yz_node)]``.

When searching for b in the case ``a, *b, c = [...]`` it will return::

    [(slice(1, -1), abc_node)]
F)ÚtestlistÚtestlist_compÚtestlist_star_exprÚexprlisté   r   zCouldn't find the assignment.Ú	star_exprT)r‰   Úsync_comp_for)
rV   r�   rœ   Ú	enumeraterŸ   rS   ÚlenÚsliceÚinsertÚLookupError)	r%   ÚindexesÚis_star_exprÚnodeÚcomparer¯   Úchildr¡   Úfrom_ends	            r   Úassignment_indexesÚ%TreeNameDefinition.assignment_indexes'  sú   € ð ˆØˆØ�~‰~×$Ñ$ˆØ—.‘.ˆØÑØ�y‰yÐ[Ó[Ü )¨$¯-©-Ö 8‘H�AØÕ'Ü # A¨¡E£
˜Þ'Ü'*¬C°·±Ó,>ÀÑ,BÀaÑ+GÓ'H˜HÜ$)¨%°Ó$;˜EØŸ™ q¨5¨-Ô8Ùñ !9ô &Ð&EÓFÐFØ$‘Ø—‘˜kÓ)Ø#‘Ø—‘Ð<Ó<Øð ˆð ˆGØ—;‘;ˆDð' Óð( ˆr   c                 ó.   • U R                   R                  $ r!   )r8   r^   r$   s    r   r^   Ú"TreeNameDefinition.inference_stateP  s   € ð ×"Ñ"×2Ñ2Ð2r   r   )Údefaultc                 óà  • U R                   nUS;   an  U R                  R                  5       R                  5       (       a  SSKJn  U" U /SS9nX;  a  [        U5      $ [        U R                  R                  5       5      $ US:X  a   U R                  5       nX;  a  [        U5      $ US:X  aB  U R                  R                  5       (       a#  [        U R                  R                  5       5      $ g)	N)rä   ræ   rX   r   rÈ   FrÊ   rã   rì   r   )rJ   r8   r.   rÌ   rÍ   rÉ   r   r	   rV   r›   r*   Úis_definitionr   )r%   rJ   rÉ   r   s       r   r   ÚTreeNameDefinition.py__doc__U  sÇ   € à—=‘=ˆØÐ8Ó8Ø×"Ñ"×3Ñ3Ó5×=Ñ=×?Ñ?ÝKÙ% t fÀeÑL�ØÓ$Ü+¨EÓ2Ð2ô )¨¯©×)FÑ)FÓ)HÓIÐIà�xÓØ—I‘I“KˆEØÓ Ü'¨Ó.Ð.à�{Ó" t§~¡~×'CÑ'C×'EÑ'EÜ/°·±×0MÑ0MÓ0OÓPÐPØr   r)   N)rA   rP   rQ   rR   Údictrí   r&   rX   rJ   r  r^   r   r   rY   r)   r   r   râ   râ     si   † ÙØØØØØñ€Jò
ð ñAó ðAò'ðR ñ3ó ð3ñ "¨"Ñ-ñó .ór   râ   c                   óD   • \ rS rSr% \\S'   S	S jrS	S jrS rS
S jr	Sr
g)Ú_ParamMixinil  Úget_kindc                 ó´   • [         R                  [         R                  /nU(       a  UR                  [         R                  5        U R                  5       U;   $ r!   )r   ÚPOSITIONAL_ONLYÚPOSITIONAL_OR_KEYWORDr¦   ÚVAR_POSITIONALr  )r%   Úinclude_starÚoptionss      r   Úmaybe_positional_argumentÚ%_ParamMixin.maybe_positional_argumento  s>   € Ü'×7Ñ7¼×9XÑ9XÐYˆÞØ�N‰Nœ9×3Ñ3Ô4Ø�}‰}‹ 'Ñ)Ð)r   c                 ó´   • [         R                  [         R                  /nU(       a  UR                  [         R                  5        U R                  5       U;   $ r!   )r   ÚKEYWORD_ONLYr  r¦   ÚVAR_KEYWORDr  )r%   Úinclude_starsr  s      r   Úmaybe_keyword_argumentÚ"_ParamMixin.maybe_keyword_argumentu  s>   € Ü'×4Ñ4´i×6UÑ6UÐVˆÞØ�N‰Nœ9×0Ñ0Ô1Ø�}‰}‹ 'Ñ)Ð)r   c                 óx   • U R                  5       nU[        R                  :X  a  gU[        R                  :X  a  gg)NÚ*z**r   ©r  r   r  r  ©r%   Úkinds     r   Ú_kind_stringÚ_ParamMixin._kind_string{  s2   € Ø�}‰}‹ˆØ”9×+Ñ+Ó+ØØ”9×(Ñ(Ó(ØØr   c                 ó   • g r!   r)   )r%   r0   s     r   r3   Ú_ParamMixin.get_qualified_namesƒ  s   € Ør   r)   N)TrO   )rA   rP   rQ   rR   r   rT   r  r  r"  r3   rY   r)   r   r   r  r  l  s   ‡ ØƒMô*ô*ò÷r   r  c                   ó@   • \ rS rSrSrS rS rS r\S 5       r	S r
Srg	)
ÚParamNameInterfacei‡  rå   c                 ó   • [         er!   r"   r$   s    r   r  ÚParamNameInterface.get_kindŠ  ó   € Ü!Ð!r   c                 ó   • [         er!   r"   r$   s    r   Ú	to_stringÚParamNameInterface.to_string�  r*  r   c                 ó   • g)aC  
For dealing with type inference and working around the graph, we
sometimes want to have the param name of the execution. This feels a
bit strange and we might have to refactor at some point.

For now however it exists to avoid infering params when we don't really
need them (e.g. when we can just instead use annotations.
Nr)   r$   s    r   Úget_executed_param_nameÚ*ParamNameInterface.get_executed_param_name�  s   € ð r   c                 óx   • U R                  5       nU[        R                  :X  a  gU[        R                  :X  a  gg)Nrq   rõ   r   r  r   s     r   Ú
star_countÚParamNameInterface.star_count›  s2   € à�}‰}‹ˆØ”9×+Ñ+Ó+ØØ”9×(Ñ(Ó(ØØr   c                 ó   • [         $ r!   rd   r$   s    r   Úinfer_defaultÚ ParamNameInterface.infer_default¤  rf   r   r)   N)rA   rP   rQ   rR   rJ   r  r,  r/  rX   r2  r5  rY   r)   r   r   r'  r'  ‡  s/   † Ø€Hò"ò"ò	ð ñó ðõr   r'  c                   ó.   • \ rS rSrSrSrS rS rS rSr	g)ÚBaseTreeParamNamei¨  Nc                 óØ   • U R                  5       U R                  5       -   nU R                  nU R                  nUb  USUR	                  SS9-   -  nUb  USUR	                  SS9-   -  nU$ )Nú: F)Úinclude_prefixr�   )r"  r;   Úannotation_nodeÚdefault_nodeÚget_code)r%   ÚoutputÚ
annotationr  s       r   r,  ÚBaseTreeParamName.to_string¬  s   € Ø×"Ñ"Ó$ t×';Ñ';Ó'=Ñ=ˆØ×)Ñ)ˆ
Ø×#Ñ#ˆØÑ!Ø�d˜Z×0Ñ0ÀÐ0ÐFÑFÑFˆFØÑØ�c˜G×,Ñ,¸EÐ,ÐBÑBÑBˆFØˆr   c                 óT   • U R                   nUR                  S5      (       a  USS  nU$ )NÚ__rõ   )r   Ú
startswith©r%   r   s     r   r;   Ú!BaseTreeParamName.get_public_name¶  s.   € Ø×ÑˆØ�?‰?˜4× Ñ ð ˜˜�8ˆDØˆr   c                 ó   • U /$ r!   r)   )r%   Úkwargss     r   r*   ÚBaseTreeParamName.goto¾  s	   € Øˆvˆr   r)   )
rA   rP   rQ   rR   r<  r=  r,  r;   r*   rY   r)   r   r   r8  r8  ¨  s   † Ø€OØ€Lòòõr   r8  c                   ój   ^ • \ rS rSrU 4S jrS r\S 5       rSS jrS r	\S 5       r
S rS	 rS
rU =r$ )Ú_ActualTreeParamNameiÂ  c                 óN   >• [         TU ]  UR                  5       U5        Xl        g r!   )r~   ra   Úget_default_param_contextÚfunction_value)r%   rN  rV   r@   s      €r   ra   Ú_ActualTreeParamName.__init__Ã  s%   ø€ Ü‰ÑØ×4Ñ4Ó6¸	ô	Cà,Õr   c                 ó8   • U R                   R                  S5      $ )Nrå   r¸   r$   s    r   Ú_get_param_nodeÚ$_ActualTreeParamName._get_param_nodeÈ  s   € Ø�~‰~×-Ñ-¨gÓ6Ð6r   c                 ó6   • U R                  5       R                  $ r!   )rQ  r@  r$   s    r   r<  Ú$_ActualTreeParamName.annotation_nodeË  s   € à×#Ñ#Ó%×0Ñ0Ð0r   c                 ó²   • SSK Jn  U" U R                  U R                  5       US9nU(       a)  UR	                  U R                  R                  5       5      nU$ )Nr   )Úinfer_param)Úignore_stars)Ú!jedi.inference.gradual.annotationrV  rN  rQ  Úexecute_annotationrM  )r%   rY  rW  rV  r«   s        r   Úinfer_annotationÚ%_ActualTreeParamName.infer_annotationÏ  sO   € ÝAÙØ×Ñ ×!5Ñ!5Ó!7Ø%ñ'ˆö Ø×.Ñ.¨t×/BÑ/B×/\Ñ/\Ó/^Ó_ˆFØˆr   c                 ób   • U R                   nUc  [        $ U R                  R                  U5      $ r!   )r=  r   r8   r    )r%   rÿ   s     r   r5  Ú"_ActualTreeParamName.infer_defaultØ  s/   € Ø× Ñ ˆØ‰<ÜÐØ×"Ñ"×-Ñ-¨dÓ3Ð3r   c                 ó6   • U R                  5       R                  $ r!   )rQ  r  r$   s    r   r=  Ú!_ActualTreeParamName.default_nodeÞ  s   € à×#Ñ#Ó%×-Ñ-Ð-r   c                 óf  • U R                  5       nUR                  S:X  a  [        R                  $ UR                  S:X  a  [        R                  $ UR
                  R                  R                  S5      (       a  [        R                  $ UR                  nSnUR                   Hz  nU(       a  US:X  a  [        R                  s  $ M$  US:X  a  [        R                  s  $ UR                  S:X  d  MN  UR                  (       a  [        R                  s  $ XA:X  d  Mx  SnM|     [        R                  $ )	Nrq   rõ   rC  FÚ/r  rå   T)rQ  r2  r   r  r  r   rs   rD  r  r�   rŸ   r  rœ   r  )r%   Ú
tree_paramr�   Úparam_appearedÚps        r   r  Ú_ActualTreeParamName.get_kindâ  sò   € Ø×)Ñ)Ó+ˆ
Ø× Ñ  AÓ%Ü×+Ñ+Ð+Ø× Ñ  AÓ%Ü×(Ñ(Ð(ð �?‰?× Ñ ×+Ñ+¨D×1Ñ1Ü×,Ñ,Ð,à×"Ñ"ˆØˆØ—”ˆAÞØ˜“8Ü$×4Ñ4Ò4ñ ð ˜“8Ü$×1Ñ1Ò1Ø—6‘6˜WÕ$Ø—|—|Ü(×5Ñ5Ò5Ø•Ø)-šñ !ô ×.Ñ.Ð.r   c                 ó–   • U R                  5       nU(       a  U$ [        R                  " U R                  U R	                  5       5      nU$ r!   )rZ  r   rV  rN  rQ  )r%   r«   Ú
doc_paramss      r   r&   Ú_ActualTreeParamName.inferþ  s?   € Ø×&Ñ&Ó(ˆÞØˆMä×+Ò+¨D×,?Ñ,?À×AUÑAUÓAWÓXˆ
ØÐr   )rN  )TF)rA   rP   rQ   rR   ra   rQ  rX   r<  rZ  r5  r=  r  r&   rY   r¿   rÀ   s   @r   rK  rK  Â  sN   ø† õ-ò
7ð ñ1ó ð1ôò4ð ñ.ó ð.ò/÷8ð r   rK  c                   ó€   ^ • \ rS rSr\R
                  " SS9U 4S j5       r\R
                  " SS9U 4S j5       rSrU =r	$ )ÚAnonymousParamNamei  Úgoto_anonymous_param)r   c                 ó    >• [         TU ]  5       $ r!   )r~   r*   rÓ   s    €r   r*   ÚAnonymousParamName.goto  s   ø€ ä‰w‰|‹~Ðr   Úinfer_anonymous_paramc                 ó  >• [         TU ]  5       nU(       a  U$ SSKJn  U R	                  5       nU" U R
                  UR                  5      nU(       a  U$ UR                  S:X  a$  SSKJ	n  U" U R
                  R                  / 5      nOvUR                  S:X  a$  SSKJn  U" U R
                  R                  0 5      nOBUR                  c  [        $ U R
                  R                  R                  UR                  5      $ [!        U15      $ )Nr   )Údynamic_param_lookuprq   )Ú	FakeTuplerõ   )ÚFakeDict)r~   r&   Újedi.inference.dynamic_paramsrp  rQ  rN  Úposition_indexr2  Újedi.inference.value.iterablerq  r^   rr  r  r   r8   r    r
   )r%   r«   rp  rå   rq  rs   rr  r@   s          €r   r&   ÚAnonymousParamName.infer  s×   ø€ ä‘‘“ˆÞØˆMÝFØ×$Ñ$Ó&ˆÙ% d×&9Ñ&9¸5×;OÑ;OÓPˆÞØˆMà×Ñ˜qÓ Ý?Ù˜d×1Ñ1×AÑAÀ2ÓF‰EØ×Ñ Ó"Ý>Ù˜T×0Ñ0×@Ñ@À"ÓE‰EØ�]‰]Ñ"ÜÐà×&Ñ&×5Ñ5×@Ñ@ÀÇÁÓOÐOÜ˜˜Ó Ð r   r)   )
rA   rP   rQ   rR   r   Údecorater*   r&   rY   r¿   rÀ   s   @r   rj  rj    sA   ø† Ø×ÒÐ"8Ñ9ôó :ðð ×ÒÐ"9Ñ:ô!ó ;ö!r   rj  c                   ó:   ^ • \ rS rSrU 4S jrU 4S jrS rSrU =r$ )Ú	ParamNamei$  c                 ó0   >• [         TU ]  X5        X0l        g r!   )r~   ra   Ú	arguments)r%   rN  rV   r{  r@   s       €r   ra   ÚParamName.__init__%  s   ø€ Ü‰Ñ˜Ô3Ø"�r   c                 ón   >• [         TU ]  5       nU(       a  U$ U R                  5       R                  5       $ r!   )r~   r&   r/  )r%   r«   r@   s     €r   r&   ÚParamName.infer)  s.   ø€ Ü‘‘“ˆÞØˆMà×+Ñ+Ó-×3Ñ3Ó5Ð5r   c                 ó€   • SSK Jn  U" U R                  U R                  5      nX R	                  5       R
                     $ )Nr   )Úget_executed_param_names)Újedi.inference.paramr€  rN  r{  rQ  rt  )r%   r€  Úparams_namess      r   r/  Ú!ParamName.get_executed_param_name0  s3   € ÝAÙ/°×0CÑ0CÀTÇ^Á^ÓTˆØ×0Ñ0Ó2×AÑAÑBÐBr   )r{  )	rA   rP   rQ   rR   ra   r&   r/  rY   r¿   rÀ   s   @r   ry  ry  $  s   ø† õ#õ6÷Cð Cr   ry  c                   ó&   • \ rS rSrS rS rS rSrg)ÚParamNameWrapperi6  c                 ó   • Xl         g r!   ©Ú_wrapped_param_name)r%   r³   s     r   ra   ÚParamNameWrapper.__init__7  s   € Ø#-Õ r   c                 ó.   • [        U R                  U5      $ r!   )Úgetattrrˆ  rE  s     r   Ú__getattr__ÚParamNameWrapper.__getattr__:  s   € Ü�t×/Ñ/°Ó6Ð6r   c                 óT   • SU R                   R                  < SU R                  < S3$ )Nr>   r:  r?   )r@   rA   rˆ  r$   s    r   rB   ÚParamNameWrapper.__repr__=  s   � Ø!Ÿ^™^×4Ô4°d×6NÔ6NÐOÐOr   r‡  N©rA   rP   rQ   rR   ra   rŒ  rB   rY   r)   r   r   r…  r…  6  s   † ò.ò7õPr   r…  c                   óh   • \ rS rSrSrSrS rSS jr\S 5       r	\
S 5       rS r\S	 5       rS
 rSrg)Ú
ImportNameiA  ©rq   r   r   c                 ó   • Xl         X l        g r!   ©Ú_from_module_contextr   )r%   r8   r   s      r   ra   ÚImportName.__init__E  s   € Ø$2Ô!Ø&Õr   c                 óÐ   • U(       a_  U R                   (       aA  U R                   S:X  d   S5       eU R                  R                  nUc  U$ X R                  4-   $ U R                  4$ g)Nrq   z(Everything else is not supported for nowr)   )Ú_levelr–  r/   r   )r%   r0   r2   s      r   r3   ÚImportName.get_qualified_namesI  se   € ÞØ�{�{Ø—{‘{ aÓ'ÐSÐ)SÓSÐ'Ø#×8Ñ8×EÑE�ØÑ'Ø'Ð'Ø#×'7Ñ'7Ð&9Ñ9Ð9Ø×$Ñ$Ð&Ð&Ør   c                 ó�   • U R                   nU R                  5       nU(       d  U$ [        [        U5      5      R	                  5       $ r!   )r–  r&   ÚnextÚiterrÒ   )r%   ÚmÚimport_valuess      r   r8   ÚImportName.parent_contextT  s;   € à×%Ñ%ˆØŸ
™
›ˆÞØˆHô ”D˜Ó'Ó(×3Ñ3Ó5Ð5r   c                 ó�   • SSK Jn  U R                  nU" UR                  U R                  /X R
                  S9R                  5       $ )Nr   )ÚImporter)ry   )rž   r¢  r–  r^   r   r™  Úfollow)r%   r¢  rž  s      r   r&   ÚImportName.infer^  s;   € å3Ø×%Ñ%ˆÙ˜×)Ñ)¨D×,<Ñ,<Ð+=¸qÏÉÑT×[Ñ[Ó]Ð]r   c                 ó`   • U R                  5        Vs/ s H  oR                  PM     sn$ s  snf r!   )r&   r   )r%   rž  s     r   r*   ÚImportName.gotod  s"   € Ø $§
¡
¤Ó-¢˜1—”¡Ñ-Ð-ùÒ-s   “+c                 ó   • g)Nrã   r)   r$   s    r   rJ   ÚImportName.api_typeg  s   € àr   c                 ó4   • [        U R                  5       5      $ r!   )r   r*   r$   s    r   r   ÚImportName.py__doc__k  s   € Ü §	¡	£Ó,Ð,r   r•  NrO   )rA   rP   rQ   rR   r   r™  ra   r3   rX   r8   r   r&   r*   rJ   r   rY   r)   r   r   r’  r’  A  s^   † Ø€IØ€Fò'ô	ð ñ6ó ð6ð ñ^ó ð^ò
.ð ñó ðõ-r   r’  c                   ó   • \ rS rSrSrSrg)ÚSubModuleNameio  rq   r)   N)rA   rP   rQ   rR   r™  rY   r)   r   r   r¬  r¬  o  s   † ØƒFr   r¬  c                   ó&   • \ rS rSrS rS rS rSrg)ÚNameWrapperis  c                 ó   • Xl         g r!   ©Ú_wrapped_name)r%   Úwrapped_names     r   ra   ÚNameWrapper.__init__t  s   € Ø)Õr   c                 ó.   • [        U R                  U5      $ r!   )r‹  r±  rE  s     r   rŒ  ÚNameWrapper.__getattr__w  s   € Ü�t×)Ñ)¨4Ó0Ð0r   c                 óR   • U R                   R                  < SU R                  < S3$ )NÚ(Ú))r@   rA   r±  r$   s    r   rB   ÚNameWrapper.__repr__z  s   € ØŸ>™>×2Ô2°D×4FÔ4FÐGÐGr   r°  Nr�  r)   r   r   r®  r®  s  s   † ò*ò1õHr   r®  c                   óH   ^ • \ rS rSr% \\S'   \\S'   \\S'   U 4S jrSrU =r	$ )ÚStubNameMixini~  rJ   rV   r&   c                 ó,  >• SSK Jn  U /nU R                  S:X  aQ  SU R                  R	                  5       R
                  ;   a)  U R                  5        Vs/ s H  o3R                  PM     nnU" USS9nX;   a  [        TU ]%  5       $ [        U5      $ s  snf )Nr   rÈ   rì   r�   FrÊ   )rÍ   rÉ   rJ   rV   r›   rŸ   r&   r   r~   r   r   )r%   rÉ   r   Úvr@   s       €r   r   ÚStubNameMixin.py__doc__ƒ  s‚   ø€ ÝCð �ˆØ�=‰=˜KÓ'¨C°4·>±>×3PÑ3PÓ3R×3[Ñ3[Ó,[Ø%)§Z¡Z¤\Ó2¢\ —V”V¡\ˆEÐ2á˜e¸UÑCˆØ‹=Ü‘7Ñ$Ó&Ð&ô $ EÓ*Ð*ùò 3s   ÁBr)   )
rA   rP   rQ   rR   rU   rT   r   r   rY   r¿   rÀ   s   @r   r»  r»  ~  s   ø‡ ØƒMØƒNØƒJ÷+ó +r   r»  c                   ó(   ^ • \ rS rSrU 4S jrSrU =r$ )ÚStubNamei–  c                 óÀ   >^• [         TU ]  5       nU R                  S:X  a=  U R                  5       R	                  5       S:X  a  SSKJm  [        U4S jU 5       5      $ U$ )NÚversion_infoÚsysr   )ÚVersionInfoc              3   ó4   >#   • U  H  nT" U5      v •  M     g 7fr!   r)   )rt   ÚcrÄ  s     €r   rv   Ú!StubName.infer.<locals>.<genexpr>›  s   øé € Ð=²H¨q™K¨ŸN˜N²Hùs   ƒ)r~   r&   r   r.   Ú
py__name__Ú!jedi.inference.gradual.stub_valuerÄ  r
   )r%   ÚinferredrÄ  r@   s     @€r   r&   ÚStubName.infer—  sO   ù€ Ü‘7‘=“?ˆØ×Ñ˜~Ó-°$×2GÑ2GÓ2I×2TÑ2TÓ2VÐZ_Ó2_ÝEÜÔ=±HÓ=Ó=Ð=Øˆr   r)   )rA   rP   rQ   rR   r&   rY   r¿   rÀ   s   @r   rÀ  rÀ  –  s   ø† ÷ó r   rÀ  c                   ó.   • \ rS rSrSrS r\S 5       rSrg)Ú
ModuleNameiŸ  r“  c                 ó   • Xl         X l        g r!   )rÄ   Ú_name)r%   rs   r   s      r   ra   ÚModuleName.__init__¢  s   € ØŒØ�
r   c                 ó   • U R                   $ r!   )rÏ  r$   s    r   r   ÚModuleName.string_name¦  s   € à�z‰zÐr   )rÏ  rÄ   N)	rA   rP   rQ   rR   r   ra   rX   r   rY   r)   r   r   rÍ  rÍ  Ÿ  s    † Ø€Iòð ñó ór   rÍ  c                   ó   • \ rS rSrSrg)ÚStubModuleNamei«  r)   N)rA   rP   rQ   rR   rY   r)   r   r   rÔ  rÔ  «  s   † Úr   rÔ  N).Úabcr   Úinspectr   Útypingr   r   r   Újedi.parser_utilsr   r	   Újedi.inference.base_valuer
   r   Újedi.inference.cacher   Újedi.inferencer   Ú
jedi.cacher   Újedi.inference.helpersr   r   Újedi.pluginsr   r   r   r[   ri   rÂ   rÜ   râ   r  r'  r8  rK  rj  ry  r…  r’  r¬  r®  r»  rÀ  rÍ  rÔ  r)   r   r   Ú<module>rß     s:  ðÝ Ý ß 'Ñ 'ç Qß 9Ý =Ý %Ý %ß DÝ 'ò÷<ñ <ô~Ð2ô ô"v(Ð-ô v(÷r $ñ  $ôF,�Ð 0ô ,ô[Ð)ô [÷|ñ ô6˜ô ôBÐ*Ð,<ô ô4BÐ,ô BôJ!Ð-ô !ô:CÐ$ô Cô$P�{ô Pô+-Ð'ô +-ô\�Jô ÷Hñ H÷+ñ +ô0ˆ}Ð0ô ô	�Ð!7ô 	ô	�] Jõ 	r   