§
    ŒŸj&J  ã                   ó˜  — d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ dd	lmZ 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 ddlmZ  edg d¢¦  «        Zd„ Zd„ Zd+d„Z d„ Z!d„ Z"d„ Z# G d„ de$¦  «        Z%d„ Z&d„ Z'd„ Z(d+d„Z) G d„ d ¦  «        Z*d!„ Z+d"„ Z,d#„ Z-d$„ Z. ed%¦  «        d&„ ¦   «         Z/d'„ Z0d,d)„Z1d*„ Z2dS )-z
Helpers for the API
é    N)Ú
namedtuple)Údedent)Úchain©Úwraps)Ú	Parameter)ÚParser)Útree)Ú	NO_VALUES)Ú
infer_atom)Úinfer_call_of_leaf)Úget_string_value_set)Úsignature_time_cacheÚmemoize_method)Úget_parent_scopeÚCompletionParts)ÚpathÚhas_dotÚnamec                 ó,   — |                       |¦  «        S ©N)Ú
startswith)ÚstringÚ	like_names     ú]/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/jedi/api/helpers.pyÚ_start_matchr      s   € Ø×Ò˜YÑ'Ô'Ð'ó    c                 ó¼   — t          |¦  «        dk    r|| v S |                      |d         ¦  «        }|dk    r#t          | |dz   d …         |dd …         ¦  «        S dS )Né   r   F)ÚlenÚfindÚ_fuzzy_match)r   r   Úposs      r   r"   r"      sf   € Ý
ˆ9�~„~˜ÒÐØ˜FÐ"Ð"Ø
�+Š+�i ”lÑ
#Ô
#€CØ
ˆa‚x€xÝ˜F 3¨¡7 8 8Ô,¨i¸¸¸¬mÑ<Ô<Ð<Øˆ5r   Fc                 óF   — |rt          | |¦  «        S t          | |¦  «        S r   )r"   r   )r   r   Úfuzzys      r   Úmatchr&   &   s*   € Øð /Ý˜F IÑ.Ô.Ð.å˜F IÑ.Ô.Ð.r   c                 ó&   — t          | d„ ¬¦  «        S )Nc                 ó\   — t          | j        pd¦  «        | j        pd| j        pd| j        fS )NÚ r   )ÚstrÚmodule_pathÚlineÚcolumnr   )Úxs    r   ú<lambda>z$sorted_definitions.<locals>.<lambda>/   s1   € ¥s¨1¬=Ð+>¸BÑ'?Ô'?Ø'(¤v {°Ø'(¤x }°1Ø'(¤vð'/€ r   )Úkey)Úsorted)Údefss    r   Úsorted_definitionsr3   -   s%   € å�$ð /ð /ð 0ñ 0ô 0ð 0r   c                 ó,  — |                       |¦  «        }|�	|j        dv rG||d         dz
           }t          j        d|d |d         …         ¦  «                             d¦  «        S |j        dvrdS |j        d |d         |j        d         z
  …         S )N)r   Ú
error_leafr   r   z(?!\d)\w+$|$)r   Úkeywordr)   )Úget_leaf_for_positionÚtypeÚreÚsearchÚgroupÚvalueÚ	start_pos)Úmodule_nodeÚlinesÚpositionÚleafr,   s        r   Úget_on_completion_namerB   5   sž   € Ø×,Ò,¨XÑ6Ô6€DØ€|�t”yÐ$<Ð<Ð<ð �X˜a”[ 1‘_Ô%ˆåŒy˜¨$¨|°¸´¨|Ô*<Ñ=Ô=×CÒCÀAÑFÔFÐFØ	ŒÐ-Ð	-Ð	-ØˆràŒ:Ð6�x ”{ T¤^°AÔ%6Ñ6Ð6Ô7Ð7r   c                 óÂ   — | |d         dz
  |d         …         }|d         d |d         …         |d<   |d         |d         d …         |d<   d                      |¦  «        S )Nr   r   éÿÿÿÿr)   )Újoin)Ú
code_linesr=   Úend_posr?   s       r   Ú	_get_coderH   C   sb   € à�y ”| aÑ'¨°¬
Ð2Ô3€Eà�b”	˜+˜7 1œ:˜+Ô&€Eˆ"�Ià�QŒx˜	 !œ˜˜Ô&€Eˆ!�HØ�7Š7�5‰>Œ>Ðr   c                   ó$   — e Zd Zed„ ¦   «         ZdS )ÚOnErrorLeafc                 ó   — | j         d         S ©Nr   )Úargs©Úselfs    r   r5   zOnErrorLeaf.error_leafN   s   € àŒy˜Œ|Ðr   N)Ú__name__Ú
__module__Ú__qualname__Úpropertyr5   © r   r   rJ   rJ   M   s-   € € € € € Øðð ñ „Xðð ð r   rJ   c                 óæ  — |j         |k    r|                     ¦   «         }|€dS |j        dk    }|j        dk    r#|                     ¦   «         }|€dS |j        dk    °#|j        dk    s|j        dk    r(|j         d         |d         k     rdS t          |¦  «        ‚|}	 |j        j        dv rn|j        }Œ|r|j         d         |d         k    rdS t          | |                     ¦   «         |¦  «        S )	Nr)   Únewliner5   r   r   T)Ú
file_inputÚsuiteÚsimple_stmtr   )r=   Úget_previous_leafr8   rJ   ÚparentrH   Úget_start_pos_of_prefix)rF   rA   r@   Úis_after_newlineÚ	user_stmts        r   Ú_get_code_for_stackr_   S   s*  € ð „~˜Ò!Ð!à×%Ò%Ñ'Ô'ˆØˆ<Ø�2à”y IÒ-ÐØ
Œ)�yÒ
 Ð
 Ø×%Ò%Ñ'Ô'ˆØˆ<Ø�2ð Œ)�yÒ
 Ð
 ð
 „y�LÒ Ð  D¤I°Ò$9Ð$9ØŒ>˜!Ô˜x¨œ{Ò*Ð*à�2õ ˜$ÑÔÐàˆ	ð	)ØÔÔ$Ð(NÐNÐNØØ!Ô(ˆIð	)ð
 ð 	ØÔ" 1Ô%¨°¬Ò3Ð3ð �rõ ˜ Y×%FÒ%FÑ%HÔ%HÈ(ÑSÔSÐSr   c                 ón  ‡ ‡‡—  G d„ dt           ¦  «        Šˆˆ ˆfd„}t          t          |||¦  «        ¦  «        }dŠ|dz   ‰z   }t          ‰ j        d¬¦  «        }	 |                      ||¦  «        ¬¦  «         n# ‰$ r
 |j        cY S w xY wt          d	t           ||¦  «        ¦  «        z  ¦  «        ‚)
zU
    Returns the possible node names (e.g. import_from, xor_test or yield_stmt).
    c                   ó   — e Zd ZdS )ú/get_stack_at_position.<locals>.EndMarkerReachedN)rP   rQ   rR   rT   r   r   ÚEndMarkerReachedrb      s   € € € € € Øˆr   rc   c              3   ó
  •K  — ‰                      | ¦  «        }|D ]g}|j        ‰k    r
 ‰¦   «         ‚|j                             ‰¦  «        r
 ‰¦   «         ‚|j                             ‰¦  «        r|V —  ‰¦   «         ‚|V — Œhd S r   )Ú	_tokenizer   ÚprefixÚendswith)ÚcodeÚtokensÚtokenrc   ÚgrammarÚsafewords      €€€r   Útokenize_without_endmarkerz9get_stack_at_position.<locals>.tokenize_without_endmarker‚   s³   øè è € ð ×"Ò" 4Ñ(Ô(ˆØð 
	ð 
	ˆEØŒ|˜xÒ'Ð'Ø&Ð&Ñ(Ô(Ð(Ø”×&Ò& xÑ0Ô0ð à&Ð&Ñ(Ô(Ð(Ø”×&Ò& xÑ0Ô0ð Ø���Ø&Ð&Ñ(Ô(Ð(à����ð
	ð 
	r   Ú)ZZZ_USER_WANTS_TO_COMPLETE_HERE_WITH_JEDIú T)Úerror_recovery)ri   z7This really shouldn't happen. There's a bug in Jedi:
%s)	Ú	Exceptionr   r_   r	   Ú_pgen_grammarÚparseÚstackÚSystemErrorÚlist)	rk   rF   rA   r#   rm   rh   Úprc   rl   s	   `      @@r   Úget_stack_at_positionrx   {   s  øøø€ ðð ð ð ð �9ñ ô ð ðð ð ð ð ð ð õ" Õ% j°$¸Ñ<Ô<Ñ=Ô=€Dð ;€HØ�#‰:˜Ñ €DåˆwÔ$°TÐ:Ñ:Ô:€AðØ	�ŠÐ1Ð1°$Ñ7Ô7ˆÑ8Ô8Ð8Ð8øØð ð ð ØŒwˆˆˆðøøøå
ØBÝ
Ð)Ð)¨$Ñ/Ô/Ñ
0Ô
0ñ	1ñô ð s   ÁA= Á=BÂBc                 ól  — |j         dk    r|                      ||¦  «        S |j        }t          }|j         dk    r|                     |j        ¦  «        }n^|j         dk    rt          ||¦  «        }nBt          |t          j        ¦  «        rt          ||¦  «        S |j         dv rt          | ¦  «        S |S )Nr   ÚatomÚtrailer)Úfstring_stringÚfstring_startÚfstring_end)r8   Úinferr[   r   Ú
infer_noder   Ú
isinstancer
   ÚLiteralr   r   )Úinference_stateÚcontextrA   r[   Údefinitionss        r   r   r   ¥   s¹   € Ø„y�FÒÐØ×$Ò$ W¨dÑ3Ô3Ð3àŒ[€FÝ€KØ„{�fÒÐà×(Ò(¨¬Ñ5Ô5ˆˆØ	Œ˜	Ò	!Ð	!å(¨°$Ñ7Ô7ˆˆÝ	�D�$œ,Ñ	'Ô	'ð 5å˜' 4Ñ(Ô(Ð(Ø	ŒÐHÐ	HÐ	HÝ# OÑ4Ô4Ð4ØÐr   c              #   óè   K  — | D ]l}|                      ¦   «         rRt          t          |                     ¦   «         |¬¦  «        ¦  «        }d}|r|D ]}|j        €d}Œ|r|V — Œ_|E d {V —† Œh|V — Œmd S )N)Úfollow_builtin_importsFT)Ú	is_importrv   Úfilter_follow_importsÚgotor=   )Únamesr‡   r   Ú	new_namesÚfound_builtinÚnew_names         r   r‰   r‰   ¹   sÆ   è è € Øð ð ˆØ�>Š>ÑÔð 	ÝÕ2Ø—	’	‘”Ø'=ðñ ô ñ ô ˆIð "ˆMØ%ð -Ø )ð -ð -�HØÔ)Ð1Ø(,˜øàð %Ø�
�
�
�
à$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$àˆJˆJˆJˆJð#ð r   c                   óh   — e Zd Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Z	d„ Z
d„ ZdS )	ÚCallDetailsc                 ó0   — || _         || _        || _        d S r   )Úbracket_leafÚ	_childrenÚ	_position)rO   r’   Úchildrenr@   s       r   Ú__init__zCallDetails.__init__Ï   s   € Ø(ˆÔØ!ˆŒØ!ˆŒˆˆr   c                 óB   — t          | j        | j        ¦  «        d         S rL   ©Ú_get_index_and_keyr“   r”   rN   s    r   ÚindexzCallDetails.indexÔ   ó   € å! $¤.°$´.ÑAÔAÀ!ÔDÐDr   c                 óB   — t          | j        | j        ¦  «        d         S )Nr   r˜   rN   s    r   Úkeyword_name_strzCallDetails.keyword_name_strØ   r›   r   c                 óP   — t          t          | j        | j        ¦  «        ¦  «        S r   )rv   Ú_iter_argumentsr“   r”   rN   s    r   Ú_list_argumentszCallDetails._list_argumentsÜ   s   € å•O D¤N°D´NÑCÔCÑDÔDÐDr   c                 óð  — d}t          ¦   «         }d}|                      ¦   «         }|s|rdS d S d}t          |¦  «        D ]K\  }\  }}}	||	|dk    z  z  }|rŒ|dz   t          |¦  «        k    r|	r|                     |¦  «         ŒF|dz  }ŒLt          |¦  «        D ]Ú\  }}
|
                     ¦   «         }|s8|t          j        k    r|c S |t          j        t          j	        fv r
||k    r|c S |�|dk    r|dk    ry|
j
        |vr\|t          j        k    s|t          j        k    r<||k    r6|r|c S |	r|
j
        |k    r|c S n|
j
                             |¦  «        r|c S |t          j        k    r|c S ŒÛd S )Nr   rD   Fé   r   )Úsetr    Ú	enumerater    ÚaddÚget_kindr   ÚVAR_POSITIONALÚPOSITIONAL_OR_KEYWORDÚPOSITIONAL_ONLYÚstring_nameÚKEYWORD_ONLYr   ÚVAR_KEYWORD)rO   Úparam_namesÚpositional_countÚ
used_namesÚ
star_countrM   Úis_kwargÚiÚ	key_startÚ	had_equalÚ
param_nameÚkinds               r   Úcalculate_indexzCallDetails.calculate_indexà   sú  € ØÐÝ‘U”Uˆ
Øˆ
Ø×#Ò#Ñ%Ô%ˆØð 	Øð Ø�qà�tàˆÝ5>¸t±_´_ð 		.ð 		.Ñ1ˆAÑ1�
˜I yØ˜	 Z°1¢_Ñ5Ñ5ˆHØð .Øà�q‘5�C ™IœIÒ%Ð%Ø ð .Ø"Ÿš yÑ1Ô1Ð1Ð1à(¨AÑ-Ð(øå& {Ñ3Ô3ð 	ð 	‰MˆAˆzØ×&Ò&Ñ(Ô(ˆDàð !Ø�9Ô3Ò3Ð3Ø�H�H�HØ�IÔ;½YÔ=VÐWÐWÐWØÐ,Ò,Ð,Ø ˜˜˜àÐ$¨Z¸1ª_¨_À
ÈaÂÀØÔ)°Ð;Ð;Ø!¥YÔ%;Ò;Ð;Ø $­	Ô(GÒ GÐ GØ!1°QÒ!6Ð!6Ø!ð !Ø ˜˜˜Ø ð %Ø%Ô1°YÒ>Ð>Ø#$˜H˜H˜Hð ?ð &Ô1×<Ò<¸YÑGÔGð %Ø#$˜H˜H˜Hà�9Ô0Ò0Ð0Ø�H�H�HøØˆtr   c              #   ój   K  — t          |                      ¦   «         ¦  «        D ]\  }}}|r|r|V — Œd S r   )rv   r    )rO   r°   r³   r´   s       r   Úiter_used_keyword_argumentsz'CallDetails.iter_used_keyword_arguments  sS   è è € Ý04°T×5IÒ5IÑ5KÔ5KÑ0LÔ0Lð 	 ð 	 Ñ,ˆJ˜	 9Øð  ˜Yð  Ø���øð	 ð 	 r   c                 óf   — d}|                       ¦   «         d d…         D ]\  }}}|s|r n|dz  }Œ|S )Nr   rD   r   )r    )rO   Úcountr°   r³   r´   s        r   Úcount_positional_argumentsz&CallDetails.count_positional_arguments  sV   € ØˆØ04×0DÒ0DÑ0FÔ0FÀsÈÀsÔ0Kð 	ð 	Ñ,ˆJ˜	 9Øð ˜Yð Ø�Ø�Q‰JˆEˆEØˆr   N)rP   rQ   rR   r–   rS   rš   r�   r   r    r·   r¹   r¼   rT   r   r   r�   r�   Î   s«   € € € € € ð"ð "ð "ð
 ðEð Eñ „XðEð ðEð Eñ „XðEð ðEð Eñ „^ðEð1ð 1ð 1ðf ð  ð  ð
ð ð ð ð r   r�   c              #   óø  ‡K  — ˆfd„}ˆfd„| D ¦   «         }|d         j         dk    r#t          |d         j        ‰¦  «        E d {V —† d S d}d}t          |¦  «        D �]æ\  }}|j         dk    r¿d}|j        d         }|j        d	         }	|	d
k    r4|	j        ‰k     r|j         dk    rd|j        dfV — nwd ||¦  «        dfV — nf|dv r#t          |j        ¦  «         ||	¦  «        dfV — n?|                     ¦   «         }
|
j         dk    r|
j        ‰k    rd ||
¦  «        dfV — ndV — d}ŒÐ|j         dk    re|j        d d d…         D ].}|j         dk    rd	}|j        d	         }| ||¦  «        dfV — d}Œ/t          t          |j        ¦  «        dz  ¦  «        }�Œ@t          |t          j        ¦  «        r|j        dk    r|s	|ddfV — d}d}�Œtt          |t          j        ¦  «        r|j        dv rt          |j        ¦  «        }�Œ­|d
k    r3|d         r+d}||d	z
           }|j         dk    rd|j        dfV — ndV — d}�Œè|s2|d         j         dk    r| ||d         ¦  «        dfV — d S |ddfV — d S d S )Nc                 ód   •— | j         dk    rd S | j        d ‰d         | j        d         z
  …         S )Nr   r   )r8   r<   r=   )r   r@   s    €r   Úremove_after_posz)_iter_arguments.<locals>.remove_after_pos"  s8   ø€ ØŒ9˜ÒÐØ�4ØŒzÐ:˜8 Aœ;¨¬¸Ô):Ñ:Ð:Ô;Ð;r   c                 ó*   •— g | ]}|j         ‰k     ¯|‘ŒS rT   ©r=   ©Ú.0Úcr@   s     €r   ú
<listcomp>z#_iter_arguments.<locals>.<listcomp>(  ó%   ø€ Ð?Ð?Ð?˜!¨¬°hÒ(>Ð(>�AÐ(>Ð(>Ð(>r   rD   ÚarglistFr   ÚargumentTr   ú=r   )Ú*z**)r   NFÚtestlist_star_exprr¢   Ú	star_exprú,r)   )r8   rŸ   r•   r¤   r=   r<   r    Úget_first_leafÚboolr�   r
   Ú
PythonLeaf)Únodesr@   r¿   Únodes_beforeÚprevious_node_yieldedÚ
stars_seenr²   ÚnodeÚfirstÚsecondÚ
first_leafÚnÚbefores    `           r   rŸ   rŸ   !  s�  øè è € ð<ð <ð <ð <ð <ð @Ð?Ð?Ð?˜uÐ?Ñ?Ô?€LØ�BÔÔ 	Ò)Ð)Ý" <°Ô#3Ô#<¸hÑGÔGÐGÐGÐGÐGÐGÐGÐGØˆà!ÐØ€JÝ˜\Ñ*Ô*ð ,ñ ,‰ˆˆ4ØŒ9˜
Ò"Ð"Ø$(Ð!Ø”M !Ô$ˆEØ”] 1Ô%ˆFØ˜Š}ˆ}ØÔ# hÒ.Ð.°5´:ÀÒ3GÐ3GØ˜Uœ[¨$Ð.Ð.Ð.Ð.Ð.àÐ-Ð-¨eÑ4Ô4°eÐ;Ð;Ð;Ð;Ð;Ø˜+Ð%Ð%Ý˜%œ+Ñ&Ô&Ð(8Ð(8¸Ñ(@Ô(@À%ÐGÐGÐGÐGÐGð "×0Ò0Ñ2Ô2�
Ø”? fÒ,Ð,°Ô1EÈÒ1QÐ1QØÐ-Ð-¨jÑ9Ô9¸5Ð@Ð@Ð@Ð@Ð@à(Ð(Ð(Ð(ØˆJˆJØŒYÐ.Ò.Ð.Ø”] 3 3 Q 3Ô'ð ð �Ø”6˜[Ò(Ð(Ø!"�JØœ
 1œ�AØ Ð"2Ð"2°1Ñ"5Ô"5°uÐ<Ð<Ð<Ð<Ø�
�
å$(­¨T¬]Ñ);Ô);¸aÑ)?Ñ$@Ô$@Ð!Ñ!Ý˜�dœoÑ.Ô.ð 	°4´:ÀÒ3DÐ3DØ(ð Ø  " eÐ+Ð+Ð+Ð+Ø�
Ø$)Ð!Ñ!Ý˜�dœoÑ.Ô.ð 
	°4´:ÀÐ3LÐ3LÝ˜TœZ™œˆJ‰JØ�SŠ[ˆ[˜\¨"Ô-ˆ[Ø$(Ð!Ø! ! a¡%Ô(ˆFØŒ{˜fÒ$Ð$Ø˜œ tÐ+Ð+Ð+Ð+Ð+à$Ð$Ð$Ð$àˆJùà ð (Ø˜ÔÔ  FÒ*Ð*ØÐ.Ð.¨|¸BÔ/?Ñ@Ô@À%ÐGÐGÐGÐGÐGÐGà˜b %Ð'Ð'Ð'Ð'Ð'Ð'ð	(ð (r   c                 ój  ‡— ˆfd„| D ¦   «         }|d         j         dk    rt          |d         j        ‰¦  «        S d}|d         }|j         dk    r:|j        d         dk    r)|j        d         j        ‰k    r|j        d         j        }n|dk    r|d	         j        }|                     d
¦  «        |fS )zG
    Returns the amount of commas and the keyword argument string.
    c                 ó*   •— g | ]}|j         ‰k     ¯|‘ŒS rT   rÁ   rÂ   s     €r   rÅ   z&_get_index_and_key.<locals>.<listcomp>h  rÆ   r   rD   rÇ   NrÈ   r   rÉ   r   éþÿÿÿrÍ   )r8   r™   r•   rG   r<   r»   )rÑ   r@   rÒ   Úkey_strÚlasts    `   r   r™   r™   d  sÌ   ø€ ð @Ð?Ð?Ð?˜uÐ?Ñ?Ô?€LØ�BÔÔ 	Ò)Ð)Ý! ,¨rÔ"2Ô";¸XÑFÔFÐFà€Gà˜Ô€DØ„y�JÒÐ 4¤=°Ô#3°sÒ#:Ð#:Ø”˜aÔ Ô(¨HÒ4Ð4à”- Ô"Ô(ˆˆØ	�ŠˆØ˜rÔ"Ô(ˆà×Ò˜cÑ"Ô" GÐ+Ð+r   c                 óF  — t          t          t          | j        ¦  «        ¦  «        ¦  «        D ]q\  }}|dk    rf|j        |k    r[|dk    rU| j        |d …         }|                     ¦   «         }|€ŒB|j        dk    s|j        j        dv rt          |||z   |¦  «        c S Œrd S )Nú(r   r   )r{   rz   )	Úreversedrv   r¤   r•   rG   rZ   r8   r[   r�   )rÕ   Úadditional_childrenr@   rš   Úelementr•   r   s          r   Ú&_get_signature_details_from_error_noderå   y  sÁ   € Ý"¥4­	°$´-Ñ(@Ô(@Ñ#AÔ#AÑBÔBð 
Vð 
V‰ˆˆwà�cŠ>ˆ>˜gœo°Ò9Ð9¸eÀaºi¸ið ”} U V VÔ,ˆHØ×,Ò,Ñ.Ô.ˆDØˆ|ØØŒy˜FÒ"Ð" d¤kÔ&6Ð:MÐ&MÐ&MÝ" 7¨HÐ7JÑ,JÈHÑUÔUÐUÐUÐUøð
Vð 
Vr   c                 óÐ  — |                       |d¬¦  «        }|j        |k    r|                     ¦   «         }|€d S |j        }|��!|j        dv rd S g }t          |j        ¦  «        D ]R}|j        |k     rE|j        dk    r$t          |||¦  «        }|�|c S |j        |dd…<   Œ<|                     d|¦  «         ŒS|j        dk    r|j        d         dk    s|j        dk    r||j        d	         dk    rk||j        d
         u r||j	        k    sQ|                     ¦   «         }|€d S t          |j        dk    r|j        d         n|j        d	         |j        |¦  «        S |j        }|�­!d S )NT)Úinclude_prefixes)ÚfuncdefÚclassdefÚ	decoratedÚ
async_stmtÚ
error_noder   r{   rá   Ú	decoratorr¢   rD   )r7   r=   rZ   r[   r8   râ   r•   rå   ÚinsertrG   r�   )Úmoduler@   rA   rÕ   rã   rÙ   Úresults          r   Úget_signature_detailsrñ   ‡  sÄ  € Ø×'Ò'¨À4Ð'ÑHÔH€Dð „~˜Ò!Ð!à×%Ò%Ñ'Ô'ˆØˆ<Ø�4ð Œ;€DØ
Ñ
ØŒ9ÐJÐJÐJð �4à ÐÝ˜$œ-Ñ(Ô(ð 	1ð 	1ˆAØŒ{˜XÒ%Ð%Ø”6˜\Ò)Ð)ÝCØÐ.°ñô �Fð Ð)Ø%˜˜˜à/0¬zÐ'¨¨!¨Ñ,ØØ#×*Ò*¨1¨aÑ0Ô0Ð0øð Œ9˜	Ò!Ð! d¤m°AÔ&6¸#Ò&=Ð&=Ø”9 Ò+Ð+°´¸aÔ0@ÀCÒ0GÐ0Gð
 ˜DœM¨"Ô-Ð-Ð-°(¸d¼lÒ2JÐ2JØ×-Ò-Ñ/Ô/�Ø�<Ø˜4Ý"Ø(,¬	°YÒ(>Ð(>�D”M !Ô$Ð$ÀDÄMÐRSÔDTØ”MØñô ð ð Œ{ˆðK Ñ
ðN ˆ4r   Úcall_signatures_validityc              #   ó¤  K  — |d         dz
  }||         d|d         …         }||j         d         |…         }d                     ||gz   ¦  «        }t          j        d|t          j        ¦  «        }	|                     ¦   «                              ¦   «         }
|
€dV — n|
|	|j         fV — t          | ||                     ¦   «         ¦  «        V — dS )z'This function calculates the cache key.r   r   Nr)   z.*\()	r=   rE   r9   r&   ÚDOTALLÚget_root_contextÚ
py__file__r   rZ   )rƒ   r„   r’   rF   Úuser_posÚ
line_indexÚbefore_cursorÚother_linesÚwholeÚbefore_bracketr+   s              r   Úcache_signaturesrý   ¾  sï   è è € ð ˜!”˜q‘€Jà˜zÔ*¨<¨H°Q¬K¨<Ô8€MØ˜\Ô3°AÔ6°zÐAÔB€KØ�GŠG�K = /Ñ1Ñ2Ô2€EÝ”X˜g u­b¬iÑ8Ô8€Nà×*Ò*Ñ,Ô,×7Ò7Ñ9Ô9€KØÐØˆ
ˆ
ˆ
ˆ
à˜N¨LÔ,BÐCÐCÐCÐCÝ
ØØØ×&Ò&Ñ(Ô(ñô ð ð ð ð ð r   c                 ó>   ‡ — t          ‰ ¦  «        dˆ fd„	¦   «         }|S )Nc                 óÊ  •— |€"t          t          | j        ¦  «        d¦  «        n|}d|cxk     rt          | j        ¦  «        k    sn t          d¦  «        ‚| j        |dz
           }t          |¦  «        }|                     d¦  «        r|dz  }n|                     d¦  «        r|dz  }|€|n|}d|cxk    r|k    sn t          d||||fz  ¦  «        ‚ ‰| ||g|¢R i |¤ŽS )Nr   r   z)`line` parameter is not in a valid range.z
r¢   ú
zH`column` parameter (%d) is not in a valid range (0-%d) for line %d (%r).)Úmaxr    Ú_code_linesÚ
ValueErrorrg   )rO   r,   r-   rM   ÚkwargsÚline_stringÚline_lenÚfuncs          €r   Úwrapperz%validate_line_column.<locals>.wrapperÕ  s>  ø€ à04°�s•3�tÔ'Ñ(Ô(¨!Ñ,Ô,Ð,À$ˆØ�DÐ1Ð1Ò1Ð1�C Ô 0Ñ1Ô1Ò1Ð1Ð1Ð1ÝÐHÑIÔIÐIàÔ& t¨a¡xÔ0ˆÝ�{Ñ#Ô#ˆØ×Ò Ñ'Ô'ð 	Ø˜‰MˆHˆHØ×!Ò! $Ñ'Ô'ð 	Ø˜‰MˆHà#˜^��°ˆØ�VÐ'Ð'Ò'Ð'˜xÒ'Ð'Ð'Ð'Ýð 8à!'¨°4¸ð;FñFñ Gô Gð Gð ˆt�D˜$ Ð8¨Ð8Ð8Ð8°Ð8Ð8Ð8r   )NNr   )r  r  s   ` r   Úvalidate_line_columnr	  Ô  s8   ø€ Ý
ˆ4�[„[ð9ð 9ð 9ð 9ð 9ñ „[ð9ð$ €Nr   Tc                 óê   ‡ ‡‡‡— ˆˆfd„}t          t          j        ‰                      ¦   «                              ¦   «         ¦  «        ¦  «        }|sˆ fd„Šˆfd„|D ¦   «         }t          ||¦  «        S )zZ
    Returns a dictionary with name parts as keys and their call paths as
    values.
    c                 ó>   •— |                       ¦   «         }‰r|p‰o| S r   )Úis_definition)r   Úis_defr…   Ú
referencess     €€r   Údef_ref_filterz(get_module_names.<locals>.def_ref_filterð  s+   ø€ Ø×#Ò#Ñ%Ô%ˆØÐ%˜vÐB¨Ð)B¸F¸
ÐBr   c                 óV   •— t          | ¦  «        }|r|j        dk    r|j        }|‰d fv S )Nrë   )r   r8   r[   )r   Úparent_scoperï   s     €r   Úis_module_scope_namez.get_module_names.<locals>.is_module_scope_nameû  s<   ø€ Ý+¨DÑ1Ô1ˆLàð 3 Ô 1°\Ò AÐ AØ+Ô2�Ø F¨D >Ð1Ð1r   c                 ó*   •— g | ]} ‰|¦  «        ¯|‘ŒS rT   rT   )rÃ   rÙ   r  s     €r   rÅ   z$get_module_names.<locals>.<listcomp>  s*   ø€ Ð=Ð=Ð=�qÐ%9Ð%9¸!Ñ%<Ô%<Ð=�Ð=Ð=Ð=r   )rv   r   Úfrom_iterableÚget_used_namesÚvaluesÚfilter)rï   Ú
all_scopesr…   r  r  r‹   r  s   ` ``  @r   Úget_module_namesr  ë  s¨   øøøø€ ð
Cð Cð Cð Cð Cð Cõ •Ô$ V×%:Ò%:Ñ%<Ô%<×%CÒ%CÑ%EÔ%EÑFÔFÑGÔG€EØð >ð	2ð 	2ð 	2ð 	2ð 	2ð >Ð=Ð=Ð=˜EÐ=Ñ=Ô=ˆÝ�. %Ñ(Ô(Ð(r   c                 ór   — |                       d¦  «        \  }}}|dk    rd}||                     d¦  «        fS )Nro   ÚdefÚfunctionú.)Ú
rpartitionÚsplit)r   r8   Ú_Údotted_namess       r   Úsplit_search_stringr"    sA   € Ø ŸOšO¨CÑ0Ô0Ñ€Dˆ!ˆ\Øˆu‚}€}ØˆØ�×#Ò# CÑ(Ô(Ð(Ð(r   )F)TF)3Ú__doc__r9   Úcollectionsr   Útextwrapr   Ú	itertoolsr   Ú	functoolsr   Úinspectr   Úparso.python.parserr	   Úparso.pythonr
   Újedi.inference.base_valuer   Újedi.inference.syntax_treer   Újedi.inference.helpersr   Újedi.inference.compiledr   Ú
jedi.cacher   r   Újedi.parser_utilsr   r   r   r"   r&   r3   rB   rH   rq   rJ   r_   rx   r   r‰   r�   rŸ   r™   rå   rñ   rý   r	  r  r"  rT   r   r   ú<module>r1     sÍ  ððð ð 
€	€	€	Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð à /Ð /Ð /Ð /Ð /Ð /Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø .Ð .Ð .Ð .Ð .Ð .ð �*Ð.Ð0KÐ0KÐ0KÑLÔL€ð(ð (ð (ðð ð ð/ð /ð /ð /ð0ð 0ð 0ð8ð 8ð 8ðð ð ðð ð ð ð �)ñ ô ð ð%Tð %Tð %TðP'ð 'ð 'ðTð ð ð(ð ð ð ð*Pð Pð Pð Pð Pñ Pô Pð Pðf@(ð @(ð @(ðF,ð ,ð ,ð*Vð Vð Vð4ð 4ð 4ðn ÐÐ0Ñ1Ô1ðð ñ 2Ô1ðð*ð ð ð.)ð )ð )ð )ð6)ð )ð )ð )ð )r   