Ë
    ¬;jJ[  ã                   óN  — 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
 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mZ d d
lmZ d„ Z G d„ d«      Z G d„ de«      Z G d„ de«      Z G d„ d«      Z G d„ dee«      Z G d„ de«      Z G d„ d«      Z  G d„ de «      Z! G d„ de!e«      Z" G d„ de"«      Z# G d „ d!e#«      Z$ G d"„ d#e#«      Z% G d$„ d%e «      Z& G d&„ d'e«      Z' G d(„ d)e'«      Z( G d*„ d+«      Z) G d,„ d-«      Z* G d.„ d/e*e«      Z+ G d0„ d1ee«      Z, G d2„ d3e*e,«      Z-y4)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                 óL   — d}| D ]  }|r|dz  }||j                  «       z  }Œ |S )NÚ z 
------------------------------
)Ú	py__doc__)ÚnamesÚdocÚnames      úe/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/jedi/inference/names.pyÚ_merge_name_docsr      s9   € Ø
€CÛˆÙð Ð)Ñ)ˆCØˆt�~‰~ÓÑ‰ð ð €Jó    c                   óœ   — e Zd ZU dZeeeef      ed<   eed<   dZ	dZ
dZ	 ed„ «       Zd„ Zdd„Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zed„ «       Zd„ Zy)ÚAbstractNameDefinitionNÚ	start_posÚstring_nameTc                 ó   — t         ‚©N©ÚNotImplementedError©Úselfs    r   ÚinferzAbstractNameDefinition.infer#   s   € ä!Ð!r   c                 ó   — | hS r    © r#   s    r   ÚgotozAbstractNameDefinition.goto'   s   € ð ˆvˆr   c                 ór   — | j                  «       }|�|s|S | j                  «       j                  }|€y ||z   S r    )Ú_get_qualified_namesÚget_root_contextÚstring_names)r$   Úinclude_module_namesÚqualified_namesÚmodule_namess       r   Úget_qualified_namesz*AbstractNameDefinition.get_qualified_names,   sG   € Ø×3Ñ3Ó5ˆØÐ"Ñ*>Ø"Ð"à×,Ñ,Ó.×;Ñ;ˆØÐØØ˜oÑ-Ð-r   c                  ó   — y r    r'   r#   s    r   r*   z+AbstractNameDefinition._get_qualified_names6   s   € àr   c                 ó6   — | j                   j                  «       S r    )Úparent_contextr+   r#   s    r   r+   z'AbstractNameDefinition.get_root_context:   s   € Ø×"Ñ"×3Ñ3Ó5Ð5r   c                 ó   — | j                   S r    )r   r#   s    r   Úget_public_namez&AbstractNameDefinition.get_public_name=   s   € Ø×ÑÐr   c                 óÐ   — | j                   €'d| j                  j                  ›d| j                  ›d�S d| j                  j                  ›d| j                  ›d| j                   ›d�S )NÚ<z: string_name=Ú>z start_pos=)r   Ú	__class__Ú__name__r   r#   s    r   Ú__repr__zAbstractNameDefinition.__repr__@   sT   € Ø�>‰>Ñ!Ø-1¯^©^×-DÓ-DÀd×FVÓFVÐWÐWð "à6:·n±n×6MÓ6MØ6:×6FÓ6FÈÏËðXð 	Xr   c                  ó   — y)NFr'   r#   s    r   Ú	is_importz AbstractNameDefinition.is_importF   s   € Ør   c                  ó   — y)Nr   r'   r#   s    r   r   z AbstractNameDefinition.py__doc__I   s   € Ør   c                 ó.   — | j                   j                  S r    )r3   Úapi_typer#   s    r   r@   zAbstractNameDefinition.api_typeL   s   € à×"Ñ"×+Ñ+Ð+r   c                  ó   — y)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_valuez3AbstractNameDefinition.get_defining_qualified_valueP   s   € ð
 r   ©F)r:   Ú
__module__Ú__qualname__r   r   r   ÚintÚ__annotations__Ústrr3   Ú	tree_nameÚis_value_namer   r%   r(   r0   r*   r+   r5   r;   r=   r   Úpropertyr@   rB   r'   r   r   r   r      s‰   … Ø+/€Iˆx˜˜c 3˜h™Ñ(Ó/ØÓØ€NØ€IØ€Mðð ñ"ó ð"òó
.òò6ò òXòòð ñ,ó ð,ór   r   c                   ó    — e Zd ZdZdZd„ Zd„ Zy)ÚAbstractArbitraryNamezÉ
    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                 óB   — || _         || _        |j                  | _        y r    )Úinference_stater   Úbuiltins_moduler3   )r$   rO   Ústrings      r   Ú__init__zAbstractArbitraryName.__init__`   s    € Ø.ˆÔØ!ˆÔØ-×=Ñ=ˆÕr   c                 ó   — t         S r    ©r   r#   s    r   r%   zAbstractArbitraryName.infere   ó   € ÜÐr   N)r:   rD   rE   Ú__doc__rJ   rR   r%   r'   r   r   rM   rM   X   s   „ ñð
 €Mò>ó
r   rM   c                   ót   ‡ — e Zd ZU eed<   eed<   d„ Zdˆ fd„	Zd„ Zd„ Zd„ Z	d„ Z
ed	„ «       Zed
„ «       Zˆ xZS )ÚAbstractTreeNamerI   r3   c                 ó    — || _         || _        y r    )r3   rI   )r$   r3   rI   s      r   rR   zAbstractTreeName.__init__m   s   € Ø,ˆÔØ"ˆ�r   c                 óH  •— | j                   j                  dd«      }|�u|j                  dk(  r,| j                  «       j	                  «       j                  «       s:|r7|j                  s+t        d„ |j                  | j                   «      D «       «      S y t        ‰| �%  |«      S )NÚimport_nameÚimport_fromé   c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr    )Úvalue)Ú.0Úns     r   Ú	<genexpr>z7AbstractTreeName.get_qualified_names.<locals>.<genexpr>{   s   è ø€ Ð\Ñ.[¨˜QŸW�WÑ.[ùs   ‚)
rI   Úsearch_ancestorÚlevelr+   Ú	get_valueÚ
is_packageÚtupleÚget_path_for_nameÚsuperr0   )r$   r-   Úimport_noder9   s      €r   r0   z$AbstractTreeName.get_qualified_namesq   s‹   ø€ Ø—n‘n×4Ñ4°]ÀMÓRˆð
 Ð"¨K×,=Ñ,=ÀÒ,BØ04×0EÑ0EÓ0G×0QÑ0QÓ0S×0^Ñ0^Ô0`á#¨K×,=Ò,=ÜÑ\¨k×.KÑ.KÈDÏNÉNÔ.[Ó\Ó\Ð\àä‰wÑ*Ð+?Ó@Ð@r   c                 óp   — | j                   j                  «       }|€y || j                  j                  fz   S r    )r3   r0   rI   r_   )r$   Úparent_namess     r   r*   z%AbstractTreeName._get_qualified_names�   s7   € Ø×*Ñ*×>Ñ>Ó@ˆØÐØØ˜tŸ~™~×3Ñ3Ð5Ñ5Ð5r   c                 ó†   — | j                  «       rt        d«      ‚| j                  r| j                  j                  «       S y )Nz&Shouldn't really happen, please report)r=   r"   r3   re   r#   s    r   rB   z-AbstractTreeName.get_defining_qualified_value‡   s9   € Ø�>‰>ÔÜ%Ð&NÓOÐOØ× Ò Ø×&Ñ&×0Ñ0Ó2Ð2Ør   c                 ó`  — | j                   }| j                  }|j                  d¬«      }|�F|j                  }|dk(  r|j                  j                  dv}|rF| gS |dv rddlm}  |||«      }|S | gS ddlm}  |||«      }	|	�|	D �
cg c]  }
|
j                  ‘Œ c}
S |j                  }|j                  }|d	k(  �rp|j                  d
   dk(  �r]|j                  d   |k(  �rJ|j                  }|j                  dk(  r|j                  }|j                  dk7  �r�|j                  dk(  r|j                  |j                  d
   «      }n…|j                  j                  j                  |«      }|j                  j                  d | }|d   dk(  r|j                  d«       |j                  |d   «      }ddlm} |d
d  D ]  } ||||«      }Œ g }|D ]W  }
|
j                  «       D ]B  }|j!                  «       D ]-  }|j"                  |j$                  k(  sŒ|j'                  |«       Œ/ ŒD ŒY |S |dk(  rx|j                  j                  |«      }|dkD  rXt)        |«      }g |j                  |d
z
  d  |j                  |«      }	|	D �
�cg c]  }
|
j+                  ||¬«      D ]  }|‘Œ Œ c}}
S |dk(  r3|j                  d   dk(  r!t-        ||d¬«      }	|	j+                  ||¬«      S |j/                  dd«      xs |}|j                  dk(  r|}|j+                  ||j0                  ¬«      S c c}
w c c}}
w )NT©Úimport_name_alwaysÚ	expr_stmt)ÚpowerÚtrailer)r\   r[   r   )Úgoto_import)Ú%follow_error_node_imports_if_possibleÚargumentr]   Ú=ÚarglistÚclassdefÚ	decoratorÚawait)Úinfer_trailerÚdotted_name)Úname_contextrs   Ú.)Úcut_own_trailerÚlambdef)Úposition)r3   rI   Úget_definitionÚtypeÚparentÚjedi.inference.importsrt   ru   r   ÚchildrenÚ
infer_nodeÚindexÚpopÚjedi.inference.syntax_treer|   Úget_signaturesÚget_param_namesr   r_   Úappendr   r(   r   rc   r   )r$   Úcontextr   Ú
definitionÚtype_Úis_simple_namert   r/   ru   Úvaluesr_   ÚparÚ	node_typers   Ú	value_setÚiÚto_inferr|   Úparam_namesÚ	signatureÚ
param_namer‰   Ú
new_dottedra   Ústmts                            r   r(   zAbstractTreeName.gotoŽ   s,  € Ø×%Ñ%ˆØ�~‰~ˆØ×(Ñ(¸DÐ(ÓAˆ
ØÐ!Ø—O‘OˆEØ˜Ò#ð "&§¡×!1Ñ!1Ð9MÐ!M�Ù!Ø ˜6�MØÐ8Ñ8Ý>Ù*¨7°DÓ9�Ø#Ð#à�v�åTÙ:¸7ÀDÓ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°'¸9À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¨¸7˜ZÖC˜ò àCð Ø!'òð ð ˜	Ò! c§l¡l°1¡o¸Ò&<Ü'¨°ÀtÔLˆFØ—;‘;˜t°'�;Ó:Ð:à×'Ñ'¨°YÓ?ÒGÀ4ˆDØ�y‰y˜IÒ%Ø�Ø—<‘< ¨t¯~©~�<Ó>Ð>ùò_ 8ùóDs   ÂL%Ê!L*c                 óB   — | j                   j                  dd«      }|d uS )Nr\   r[   ©rI   rc   )r$   Úimps     r   r=   zAbstractTreeName.is_importÕ   s"   € Ø�n‰n×,Ñ,¨]¸MÓJˆØ˜$ˆÐr   c                 ó.   — | j                   j                  S r    )rI   r_   r#   s    r   r   zAbstractTreeName.string_nameÙ   s   € à�~‰~×#Ñ#Ð#r   c                 ó.   — | j                   j                  S r    )rI   r   r#   s    r   r   zAbstractTreeName.start_posÝ   s   € à�~‰~×'Ñ'Ð'r   rC   )r:   rD   rE   r   rG   rR   r0   r*   rB   r(   r=   rK   r   r   Ú__classcell__©r9   s   @r   rX   rX   i   sW   ø… ØƒNØÓò#õAò 6òòE?òNð ñ$ó ð$ð ñ(ó ô(r   rX   c                   ó\   ‡ — e Zd ZU eed<   eed<   d„ Zd„ Zd„ Zˆ fd„Zd„ Z	e
d„ «       Zˆ xZS )	ÚValueNameMixinÚ_valuer3   c                 ó.   — t        | j                  g«      S r    )r
   r§   r#   s    r   r%   zValueNameMixin.inferæ   s   € Ü˜Ÿ™˜Ó&Ð&r   c                 ó²   — | j                   j                  «       }|s:| j                   j                  «       r ddlm}  || gd¬«      }| |vrt        |«      S |S )Nr   ©Úconvert_namesF©Úprefer_stub_to_compiled)r§   r   Úis_stubÚ!jedi.inference.gradual.conversionr«   r   )r$   r   r«   r   s       r   r   zValueNameMixin.py__doc__é   sO   € Ø�k‰k×#Ñ#Ó%ˆÙ�t—{‘{×*Ñ*Ô,ÝGÙ! 4 &À%ÔHˆEØ˜5Ñ Ü'¨Ó.Ð.Øˆ
r   c                 ó6   — | j                   j                  «       S r    )r§   r0   r#   s    r   r*   z#ValueNameMixin._get_qualified_namesò   s   € Ø�{‰{×.Ñ.Ó0Ð0r   c                 ól   •— | j                   €| j                  j                  «       S t        ‰| �  «       S r    )r3   r§   Ú
as_contextri   r+   ©r$   r9   s    €r   r+   zValueNameMixin.get_root_contextõ   s0   ø€ Ø×ÑÐ&Ø—;‘;×)Ñ)Ó+Ð+Ü‰wÑ'Ó)Ð)r   c                 ó”   — | j                   }|�:|j                  «       s|j                  «       r| j                   j                  «       S y r    )r3   Ú	is_moduleÚis_classre   )r$   r�   s     r   rB   z+ValueNameMixin.get_defining_qualified_valueú   sA   € Ø×%Ñ%ˆØÐ G×$5Ñ$5Ô$7¸7×;KÑ;KÔ;MØ×&Ñ&×0Ñ0Ó2Ð2Ør   c                 ó.   — | j                   j                  S r    )r§   r@   r#   s    r   r@   zValueNameMixin.api_type   s   € à�{‰{×#Ñ#Ð#r   )r:   rD   rE   r   rG   r%   r   r*   r+   rB   rK   r@   r£   r¤   s   @r   r¦   r¦   â   s;   ø… ØƒKØÓò'òò1ô*ò
ð ñ$ó ô$r   r¦   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )Ú	ValueNamec                 óH   •— t         ‰| �  |j                  |«       || _        y r    )ri   rR   r3   r§   )r$   r_   rI   r9   s      €r   rR   zValueName.__init__  s   ø€ Ü‰Ñ˜×-Ñ-¨yÔ9Øˆ�r   c                 óB   — t        | j                  j                  g«      S r    )r
   r§   r   r#   s    r   r(   zValueName.goto
  s   € Ü˜Ÿ™×)Ñ)Ð*Ó+Ð+r   )r:   rD   rE   rR   r(   r£   r¤   s   @r   r¹   r¹     s   ø„ ôö,r   r¹   c                   óp   — e Zd Z eddddd¬«      Zd„ Zed„ «       Zd„ Zed	„ «       Z	 e
d
¬«      d„ «       Zy)ÚTreeNameDefinitionÚmoduleÚfunctionÚparamÚclass)r[   r\   ÚfuncdefrÀ   ry   c                 ór   — ddl m}  || j                  j                  | j                  | j                  «      S )Nr   )Útree_name_to_values)r‹   rÄ   r3   rO   rI   )r$   rÄ   s     r   r%   zTreeNameDefinition.infer  s1   € åBÙ"Ø×Ñ×/Ñ/Ø×ÑØ�N‰Nó
ð 	
r   c                 óŒ   — | j                   j                  d¬«      }|€y| j                  j                  |j                  d«      S )NTro   Ú	statement)rI   rƒ   Ú
_API_TYPESÚgetr„   )r$   r�   s     r   r@   zTreeNameDefinition.api_type   s=   € à—^‘^×2Ñ2ÀdÐ2ÓKˆ
ØÐØØ�‰×"Ñ" :§?¡?°KÓ@Ð@r   c                 óè  — g }d}| j                   j                  }| j                   }|�É|j                  dv r‡t        |j                  «      D ]a  \  }}||k(  sŒt        |dz  «      }|r1t        t        |j                  «      |z
  dz  «      }t        || «      }|j                  d||f«        n t        d«      ‚d}n#|j                  dk(  rd}n|j                  dv r	 |S |}|j                  }|�ŒÉ|S )	a†  
        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)rq   Úsync_comp_for)
rI   r…   r„   Ú	enumerater‡   rF   ÚlenÚsliceÚinsertÚLookupError)	r$   ÚindexesÚis_star_exprÚnodeÚcomparer—   Úchildr‰   Úfrom_ends	            r   Úassignment_indexesz%TreeNameDefinition.assignment_indexes'  s  € ð ˆØˆØ�~‰~×$Ñ$ˆØ—.‘.ˆØÐØ�y‰yÐ[Ñ[Ü )¨$¯-©-Ö 8‘H�A�uØ Ó'Ü # A¨¡E£
˜Ù'Ü'*¬C°·±Ó,>ÀÑ,BÀaÑ+GÓ'H˜HÜ$)¨%°(°Ó$;˜EØŸ™ q¨5°$¨-Ô8Ùð !9ô &Ð&EÓFÐFØ$‘Ø—‘˜kÒ)Ø#‘Ø—‘Ð<Ñ<Øð ˆð ˆGØ—;‘;ˆDð' Ñð( ˆr   c                 ó.   — | j                   j                  S r    )r3   rO   r#   s    r   rO   z"TreeNameDefinition.inference_stateP  s   € ð ×"Ñ"×2Ñ2Ð2r   r   )Údefaultc                 óÆ  — | j                   }|dv rk| j                  j                  «       j                  «       r ddlm}  || gd¬«      }| |vrt        |«      S t        | j                  j                  «       «      S |dk(  r| j                  «       }| |vrt        |«      S |dk(  r=| j                  j                  «       r#t        | j                  j                  «       «      S y)	N)r¿   rÁ   rK   r   rª   Fr¬   r¾   rÆ   r   )r@   r3   r+   r®   r¯   r«   r   r	   rI   rƒ   r(   Úis_definitionr   )r$   r@   r«   r   s       r   r   zTreeNameDefinition.py__doc__U  sÅ   € à—=‘=ˆØÐ8Ñ8Ø×"Ñ"×3Ñ3Ó5×=Ñ=Ô?ÝKÙ% t fÀeÔL�Ø˜uÑ$Ü+¨EÓ2Ð2ô )¨¯©×)FÑ)FÓ)HÓIÐIà�xÒØ—I‘I“KˆEØ˜5Ñ Ü'¨Ó.Ð.à�{Ò" t§~¡~×'CÑ'CÔ'EÜ/°·±×0MÑ0MÓ0OÓPÐPØr   N)r:   rD   rE   ÚdictrÇ   r%   rK   r@   rÜ   rO   r   r   r'   r   r   r½   r½     si   „ ÙØØØØØô€Jò
ð ñAó ðAò'ðR ñ3ó ð3ñ "¨"Ô-ñó .ñr   r½   c                   ó6   — e Zd ZU eed<   dd„Zdd„Zd„ Zdd„Zy)	Ú_ParamMixinÚget_kindc                 ó¨   — t         j                  t         j                  g}|r|j                  t         j                  «       | j                  «       |v S r    )r   ÚPOSITIONAL_ONLYÚPOSITIONAL_OR_KEYWORDrŽ   ÚVAR_POSITIONALrä   )r$   Úinclude_starÚoptionss      r   Úmaybe_positional_argumentz%_ParamMixin.maybe_positional_argumento  s>   € Ü'×7Ñ7¼×9XÑ9XÐYˆÙØ�N‰Nœ9×3Ñ3Ô4Ø�}‰}‹ 'Ð)Ð)r   c                 ó¨   — t         j                  t         j                  g}|r|j                  t         j                  «       | j                  «       |v S r    )r   ÚKEYWORD_ONLYrç   rŽ   ÚVAR_KEYWORDrä   )r$   Úinclude_starsrê   s      r   Úmaybe_keyword_argumentz"_ParamMixin.maybe_keyword_argumentu  s>   € Ü'×4Ñ4´i×6UÑ6UÐVˆÙØ�N‰Nœ9×0Ñ0Ô1Ø�}‰}‹ 'Ð)Ð)r   c                 ót   — | j                  «       }|t        j                  k(  ry|t        j                  k(  ryy)NÚ*z**r   ©rä   r   rè   rî   ©r$   Úkinds     r   Ú_kind_stringz_ParamMixin._kind_string{  s2   € Ø�}‰}‹ˆØ”9×+Ñ+Ò+ØØ”9×(Ñ(Ò(ØØr   c                  ó   — y r    r'   )r$   r-   s     r   r0   z_ParamMixin.get_qualified_namesƒ  s   € Ør   N)TrC   )	r:   rD   rE   r   rG   rë   rð   rö   r0   r'   r   r   rã   rã   l  s   … ØƒMó*ó*òôr   rã   c                   ó8   — e Zd ZdZd„ Zd„ Zd„ Zed„ «       Zd„ Z	y)ÚParamNameInterfacerÀ   c                 ó   — t         ‚r    r!   r#   s    r   rä   zParamNameInterface.get_kindŠ  ó   € Ü!Ð!r   c                 ó   — t         ‚r    r!   r#   s    r   Ú	to_stringzParamNameInterface.to_string�  rû   r   c                  ó   — y)as  
        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_namez*ParamNameInterface.get_executed_param_name�  s   € ð r   c                 ót   — | j                  «       }|t        j                  k(  ry|t        j                  k(  ryy)Nr]   rÎ   r   ró   rô   s     r   Ú
star_countzParamNameInterface.star_count›  s2   € à�}‰}‹ˆØ”9×+Ñ+Ò+ØØ”9×(Ñ(Ò(ØØr   c                 ó   — t         S r    rT   r#   s    r   Úinfer_defaultz ParamNameInterface.infer_default¤  rU   r   N)
r:   rD   rE   r@   rä   rý   rÿ   rK   r  r  r'   r   r   rù   rù   ‡  s/   „ Ø€Hò"ò"ò	ð ñó ðór   rù   c                   ó&   — e Zd ZdZdZd„ Zd„ Zd„ Zy)ÚBaseTreeParamNameNc                 óà   — | j                  «       | j                  «       z   }| j                  }| j                  }|�|d|j	                  d¬«      z   z  }|�|d|j	                  d¬«      z   z  }|S )Nú: F)Úinclude_prefixrw   )rö   r5   Úannotation_nodeÚdefault_nodeÚget_code)r$   ÚoutputÚ
annotationrÞ   s       r   rý   zBaseTreeParamName.to_string¬  s   € Ø×"Ñ"Ó$ t×';Ñ';Ó'=Ñ=ˆØ×)Ñ)ˆ
Ø×#Ñ#ˆØÐ!Ø�d˜Z×0Ñ0ÀÐ0ÓFÑFÑFˆFØÐØ�c˜G×,Ñ,¸EÐ,ÓBÑBÑBˆFØˆr   c                 óJ   — | j                   }|j                  d«      r|dd  }|S )NÚ__rÎ   )r   Ú
startswith©r$   r   s     r   r5   z!BaseTreeParamName.get_public_name¶  s+   € Ø×ÑˆØ�?‰?˜4Ô ð ˜˜�8ˆDØˆr   c                 ó   — | gS r    r'   )r$   Úkwargss     r   r(   zBaseTreeParamName.goto¾  s	   € Øˆvˆr   )r:   rD   rE   r	  r
  rý   r5   r(   r'   r   r   r  r  ¨  s   „ Ø€OØ€Lòòór   r  c                   ó^   ‡ — e Zd Zˆ fd„Zd„ Zed„ «       Zd	d„Zd„ Zed„ «       Z	d„ Z
d„ Zˆ xZS )
Ú_ActualTreeParamNamec                 óP   •— t         ‰| �  |j                  «       |«       || _        y r    )ri   rR   Úget_default_param_contextÚfunction_value)r$   r  rI   r9   s      €r   rR   z_ActualTreeParamName.__init__Ã  s'   ø€ Ü‰ÑØ×4Ñ4Ó6¸	ô	Cà,ˆÕr   c                 ó8   — | j                   j                  d«      S )NrÀ   rŸ   r#   s    r   Ú_get_param_nodez$_ActualTreeParamName._get_param_nodeÈ  s   € Ø�~‰~×-Ñ-¨gÓ6Ð6r   c                 ó6   — | j                  «       j                  S r    )r  r  r#   s    r   r	  z$_ActualTreeParamName.annotation_nodeË  s   € à×#Ñ#Ó%×0Ñ0Ð0r   c                 ó®   — ddl m}  || j                  | j                  «       |¬«      }|r)|j	                  | j                  j                  «       «      }|S )Nr   )Úinfer_param)Úignore_stars)Ú!jedi.inference.gradual.annotationr  r  r  Úexecute_annotationr  )r$   r   r  r  r“   s        r   Úinfer_annotationz%_ActualTreeParamName.infer_annotationÏ  sO   € ÝAÙØ×Ñ ×!5Ñ!5Ó!7Ø%ô'ˆñ Ø×.Ñ.¨t×/BÑ/B×/\Ñ/\Ó/^Ó_ˆFØˆr   c                 ó`   — | j                   }|€t        S | j                  j                  |«      S r    )r
  r   r3   rˆ   )r$   rØ   s     r   r  z"_ActualTreeParamName.infer_defaultØ  s/   € Ø× Ñ ˆØˆ<ÜÐØ×"Ñ"×-Ñ-¨dÓ3Ð3r   c                 ó6   — | j                  «       j                  S r    )r  rÞ   r#   s    r   r
  z!_ActualTreeParamName.default_nodeÞ  s   € à×#Ñ#Ó%×-Ñ-Ð-r   c                 ó4  — | j                  «       }|j                  dk(  rt        j                  S |j                  dk(  rt        j                  S |j
                  j                  j                  d«      rt        j                  S |j                  }d}|j                  D ]i  }|r|dk(  sŒt        j                  c S |dk(  rt        j                  c S |j                  dk(  sŒD|j                  rt        j                  c S ||k(  sŒhd}Œk t        j                  S )	Nr]   rÎ   r  FÚ/rò   rÀ   T)r  r  r   rè   rî   r   r_   r  ræ   r…   r‡   rí   r„   rç   )r$   Ú
tree_paramr…   Úparam_appearedÚps        r   rä   z_ActualTreeParamName.get_kindâ  sê   € Ø×)Ñ)Ó+ˆ
Ø× Ñ  AÒ%Ü×+Ñ+Ð+Ø× Ñ  AÒ%Ü×(Ñ(Ð(ð �?‰?× Ñ ×+Ñ+¨DÔ1Ü×,Ñ,Ð,à×"Ñ"ˆØˆØ—”ˆAÙØ˜“8Ü$×4Ñ4Ò4à˜’8Ü$×1Ñ1Ò1Ø—6‘6˜WÓ$Ø—|’|Ü(×5Ñ5Ò5Ø˜J“Ø)-™ð !ô ×.Ñ.Ð.r   c                 óŠ   — | j                  «       }|r|S t        j                  | j                  | j	                  «       «      }|S r    )r!  r   r  r  r  )r$   r“   Ú
doc_paramss      r   r%   z_ActualTreeParamName.inferþ  s?   € Ø×&Ñ&Ó(ˆÙØˆMä×+Ñ+¨D×,?Ñ,?À×AUÑAUÓAWÓXˆ
ØÐr   )TF)r:   rD   rE   rR   r  rK   r	  r!  r  r
  rä   r%   r£   r¤   s   @r   r  r  Â  sI   ø„ ô-ò
7ð ñ1ó ð1óò4ð ñ.ó ð.ò/ö8r   r  c                   ó€   ‡ — e Zd Z ej                  d¬«      ˆ fd„«       Z ej                  d¬«      ˆ fd„«       Zˆ xZS )ÚAnonymousParamNameÚgoto_anonymous_param)r   c                 ó    •— t         ‰| �  «       S r    )ri   r(   r³   s    €r   r(   zAnonymousParamName.goto  s   ø€ ä‰w‰|‹~Ðr   Úinfer_anonymous_paramc                 óü  •— t         ‰| �  «       }|r|S ddlm} | j	                  «       } || j
                  |j                  «      }|r|S |j                  dk(  r$ddlm	}  || j
                  j                  g «      }nt|j                  dk(  r$ddlm}  || j
                  j                  i «      }nA|j                  €t        S | j
                  j                  j                  |j                  «      S t!        |h«      S )Nr   )Údynamic_param_lookupr]   )Ú	FakeTuplerÎ   )ÚFakeDict)ri   r%   Újedi.inference.dynamic_paramsr1  r  r  Úposition_indexr  Újedi.inference.value.iterabler2  rO   r3  rÞ   r   r3   rˆ   r
   )r$   r“   r1  rÀ   r2  r_   r3  r9   s          €r   r%   z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:   rD   rE   r   Údecorater(   r%   r£   r¤   s   @r   r,  r,    sE   ø„ Ø€^×ÑÐ"8Ô9óó :ðð €^×ÑÐ"9Ô:ó!ó ;ô!r   r,  c                   ó.   ‡ — e Zd Zˆ fd„Zˆ fd„Zd„ Zˆ xZS )Ú	ParamNamec                 ó4   •— t         ‰| �  ||«       || _        y r    )ri   rR   Ú	arguments)r$   r  rI   r;  r9   s       €r   rR   zParamName.__init__%  s   ø€ Ü‰Ñ˜¨Ô3Ø"ˆ�r   c                 ód   •— t         ‰| �  «       }|r|S | j                  «       j                  «       S r    )ri   r%   rÿ   )r$   r“   r9   s     €r   r%   zParamName.infer)  s.   ø€ Ü‘‘“ˆÙØˆMà×+Ñ+Ó-×3Ñ3Ó5Ð5r   c                 ó‚   — ddl m}  || j                  | j                  «      }|| j	                  «       j
                     S )Nr   )Úget_executed_param_names)Újedi.inference.paramr>  r  r;  r  r5  )r$   r>  Úparams_namess      r   rÿ   z!ParamName.get_executed_param_name0  s5   € ÝAÙ/°×0CÑ0CÀTÇ^Á^ÓTˆØ˜D×0Ñ0Ó2×AÑAÑBÐBr   )r:   rD   rE   rR   r%   rÿ   r£   r¤   s   @r   r9  r9  $  s   ø„ ô#ô6öCr   r9  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚParamNameWrapperc                 ó   — || _         y r    )Ú_wrapped_param_name)r$   r›   s     r   rR   zParamNameWrapper.__init__7  s
   € Ø#-ˆÕ r   c                 ó.   — t        | j                  |«      S r    )ÚgetattrrD  r  s     r   Ú__getattr__zParamNameWrapper.__getattr__:  s   € Ü�t×/Ñ/°Ó6Ð6r   c                 óP   — d| j                   j                  ›d| j                  ›d�S )Nr7   r  r8   )r9   r:   rD  r#   s    r   r;   zParamNameWrapper.__repr__=  s   � Ø!Ÿ^™^×4Ó4°d×6NÓ6NÐOÐOr   N©r:   rD   rE   rR   rG  r;   r'   r   r   rB  rB  6  s   „ ò.ò7óPr   rB  c                   ó^   — e Zd ZdZdZd„ Zdd„Zed„ «       Ze	d„ «       Z
d„ Zed„ «       Zd	„ Zy
)Ú
ImportName©r]   r   r   c                 ó    — || _         || _        y r    )Ú_from_module_contextr   )r$   r3   r   s      r   rR   zImportName.__init__E  s   € Ø$2ˆÔ!Ø&ˆÕr   c                 óº   — |rY| j                   r@| j                   dk(  sJ d«       ‚| j                  j                  }|€|S || j                  fz   S | j                  fS y)Nr]   z(Everything else is not supported for nowr'   )Ú_levelrN  r,   r   )r$   r-   r/   s      r   r0   zImportName.get_qualified_namesI  sg   € ÙØ�{Š{Ø—{‘{ aÒ'ÐSÐ)SÓSÐ'Ø#×8Ñ8×EÑE�ØÐ'Ø'Ð'Ø# t×'7Ñ'7Ð&9Ñ9Ð9Ø×$Ñ$Ð&Ð&Ør   c                 ó†   — | j                   }| j                  «       }|s|S t        t        |«      «      j	                  «       S r    )rN  r%   ÚnextÚiterr²   )r$   ÚmÚimport_valuess      r   r3   zImportName.parent_contextT  s;   € à×%Ñ%ˆØŸ
™
›ˆÙØˆHô ”D˜Ó'Ó(×3Ñ3Ó5Ð5r   c                 ó˜   — ddl m} | j                  } ||j                  | j                  g|| j
                  ¬«      j                  «       S )Nr   )ÚImporter)rd   )r†   rW  rN  rO   r   rP  Úfollow)r$   rW  rT  s      r   r%   zImportName.infer^  s=   € å3Ø×%Ñ%ˆÙ˜×)Ñ)¨D×,<Ñ,<Ð+=¸qÈÏÉÔT×[Ñ[Ó]Ð]r   c                 ó\   — | j                  «       D �cg c]  }|j                  ‘Œ c}S c c}w r    )r%   r   )r$   rT  s     r   r(   zImportName.gotod  s$   € Ø $§
¡
¤Ó-¡˜1�—“ Ñ-Ð-ùÒ-s   “)c                  ó   — y)Nr¾   r'   r#   s    r   r@   zImportName.api_typeg  s   € àr   c                 ó4   — t        | j                  «       «      S r    )r   r(   r#   s    r   r   zImportName.py__doc__k  s   € Ü §	¡	£Ó,Ð,r   NrC   )r:   rD   rE   r   rP  rR   r0   rK   r3   r   r%   r(   r@   r   r'   r   r   rK  rK  A  s^   „ Ø€IØ€Fò'ó	ð ñ6ó ð6ð ñ^ó ð^ò
.ð ñó ðó-r   rK  c                   ó   — e Zd ZdZy)ÚSubModuleNamer]   N)r:   rD   rE   rP  r'   r   r   r]  r]  o  s   „ Ø�Fr   r]  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚNameWrapperc                 ó   — || _         y r    )Ú_wrapped_name)r$   Úwrapped_names     r   rR   zNameWrapper.__init__t  s
   € Ø)ˆÕr   c                 ó.   — t        | j                  |«      S r    )rF  ra  r  s     r   rG  zNameWrapper.__getattr__w  s   € Ü�t×)Ñ)¨4Ó0Ð0r   c                 óN   — | j                   j                  ›d| j                  ›d�S )NÚ(Ú))r9   r:   ra  r#   s    r   r;   zNameWrapper.__repr__z  s   € ØŸ>™>×2Ó2°D×4FÓ4FÐGÐGr   NrI  r'   r   r   r_  r_  s  s   „ ò*ò1óHr   r_  c                   ó>   ‡ — e Zd ZU eed<   eed<   eed<   ˆ fd„Zˆ xZS )ÚStubNameMixinr@   rI   r%   c                 ó&  •— ddl m} | g}| j                  dk(  rMd| j                  j	                  «       j
                  v r'| j                  «       D �cg c]  }|j                  ‘Œ }} ||d¬«      }| |v rt        ‰| �%  «       S t        |«      S c c}w )Nr   rª   rÆ   rw   Fr¬   )r¯   r«   r@   rI   rƒ   r‡   r%   r   ri   r   r   )r$   r«   r   Úvr9   s       €r   r   zStubNameMixin.py__doc__ƒ  s†   ø€ ÝCð �ˆØ�=‰=˜KÒ'¨C°4·>±>×3PÑ3PÓ3R×3[Ñ3[Ñ,[Ø%)§Z¡Z¤\Ó2¡\ �Q—V“V \ˆEÐ2á˜e¸UÔCˆØ�5‰=Ü‘7Ñ$Ó&Ð&ô $ EÓ*Ð*ùò 3s   ÁB)r:   rD   rE   rH   rG   r   r   r£   r¤   s   @r   rh  rh  ~  s   ø… ØƒMØƒNØƒJ÷+ð +r   rh  c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚStubNamec                 óº   •‡— t         ‰| �  «       }| j                  dk(  r;| j                  «       j	                  «       dk(  rddlmŠ t        ˆfd„|D «       «      S |S )NÚversion_infoÚsysr   )ÚVersionInfoc              3   ó.   •K  — | ]  } ‰|«      –— Œ y ­wr    r'   )r`   Úcrp  s     €r   rb   z!StubName.infer.<locals>.<genexpr>›  s   øè ø€ Ð=±H¨q™K¨ŸN±Hùs   ƒ)ri   r%   r   r+   Ú
py__name__Ú!jedi.inference.gradual.stub_valuerp  r
   )r$   Úinferredrp  r9   s     @€r   r%   zStubName.infer—  sO   ù€ Ü‘7‘=“?ˆØ×Ñ˜~Ò-°$×2GÑ2GÓ2I×2TÑ2TÓ2VÐZ_Ò2_ÝEÜÓ=±HÓ=Ó=Ð=Øˆr   )r:   rD   rE   r%   r£   r¤   s   @r   rl  rl  –  s   ø„ ÷ð r   rl  c                   ó&   — e Zd ZdZd„ Zed„ «       Zy)Ú
ModuleNamerL  c                 ó    — || _         || _        y r    )r§   Ú_name)r$   r_   r   s      r   rR   zModuleName.__init__¢  s   € ØˆŒØˆ�
r   c                 ó   — | j                   S r    )ry  r#   s    r   r   zModuleName.string_name¦  s   € à�z‰zÐr   N)r:   rD   rE   r   rR   rK   r   r'   r   r   rw  rw  Ÿ  s    „ Ø€Iòð ñó ñr   rw  c                   ó   — e Zd Zy)ÚStubModuleNameN)r:   rD   rE   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   rM   rX   r¦   r¹   r½   rã   rù   r  r  r,  r9  rB  rK  r]  r_  rh  rl  rw  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   