Ë
    ¬;j&J  ã                   óx  — 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(„ Z2y)+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                 ó$   — | j                  |«      S ©N)Ú
startswith)ÚstringÚ	like_names     úa/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/jedi/api/helpers.pyÚ_start_matchr      s   € Ø×Ñ˜YÓ'Ð'ó    c                 ó„   — t        |«      dk  r|| v S | j                  |d   «      }|dk\  rt        | |dz   d  |dd  «      S y)Né   r   F)ÚlenÚfindÚ_fuzzy_match)r   r   Úposs      r   r"   r"      sS   € Ü
ˆ9ƒ~˜ÒØ˜FÐ"Ð"Ø
�+‰+�i ‘lÓ
#€CØ
ˆa‚xÜ˜F 3¨¡7 8Ð,¨i¸¸¨mÓ<Ð<Ør   c                 ó6   — |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                  xs d«      | j                  xs d| j                  xs d| j                  fS )NÚ r   )ÚstrÚmodule_pathÚlineÚcolumnr   )Úxs    r   Ú<lambda>z$sorted_definitions.<locals>.<lambda>/   s4   € ¤s¨1¯=©=Ò+>¸BÓ'?Ø'(§v¡v¢{°Ø'(§x¡x¢}°1Ø'(§v¡vñ'/r   )Úkey)Úsorted)Údefss    r   Úsorted_definitionsr3   -   s   € ä�$ñ /ô 0ð 0r   c                 ó  — | j                  |«      }|�|j                  dv r6||d   dz
     }t        j                  d|d |d    «      j	                  d«      S |j                  dvry|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€DØ€|�t—y‘yÐ$<Ñ<ð �X˜a‘[ 1‘_Ñ%ˆä�y‰y˜¨$¨|°¸±Ð*<Ó=×CÑCÀAÓFÐFØ	�‰Ð-Ñ	-Øà�:‰:Ð6�x ‘{ T§^¡^°AÑ%6Ñ6Ð7Ð7r   c                 óx   — | |d   dz
  |d    }|d   d |d    |d<   |d   |d   d  |d<   dj                  |«      S )Nr   r   éÿÿÿÿr)   )Újoin)Ú
code_linesr=   Úend_posr?   s       r   Ú	_get_coderH   C   sY   € à�y ‘| aÑ'¨°©
Ð3€Eà�b‘	˜+˜7 1™:Ð&€Eˆ"�Ià�Q‰x˜	 !™˜Ð&€Eˆ!�HØ�7‰7�5‹>Ðr   c                   ó   — e Zd Zed„ «       Zy)ÚOnErrorLeafc                 ó    — | j                   d   S ©Nr   )Úargs©Úselfs    r   r5   zOnErrorLeaf.error_leafN   s   € à�y‰y˜‰|Ðr   N)Ú__name__Ú
__module__Ú__qualname__Úpropertyr5   © r   r   rJ   rJ   M   s   „ Øñó ñr   rJ   c                 óþ  — |j                   |k\  r|j                  «       }|€y|j                  dk(  }|j                  dk(  r#|j                  «       }|€y|j                  dk(  rŒ#|j                  dk(  s|j                  dk(  r!|j                   d   |d   k  ryt        |«      ‚|}	 |j                  j                  dv rn|j                  }Œ&|r|j                   d   |d   kD  ryt        | |j                  «       |«      S )Nr)   Únewliner5   r   r   )Ú
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  € ð ‡~�~˜Ò!à×%Ñ%Ó'ˆØˆ<Øà—y‘y IÑ-ÐØ
�)‰)�yÒ
 Ø×%Ñ%Ó'ˆØˆ<Øð �)‰)�yÓ
 ð
 ‡y�y�LÒ  D§I¡I°Ò$9Ø�>‰>˜!Ñ˜x¨™{Ò*àô ˜$ÓÐàˆ	ØØ×Ñ×$Ñ$Ð(NÑNØØ!×(Ñ(ˆIð ñ
 Ø×"Ñ" 1Ñ%¨°©Ò3ð ô ˜ Y×%FÑ%FÓ%HÈ(ÓSÐSr   c                 ó<  ‡ ‡‡—  G d„ dt         «      Šˆˆ ˆfd„}t        t        |||«      «      }dŠ|dz   ‰z   }t        ‰ j                  d¬«      }	 |j                   ||«      ¬«       t        d	t         ||«      «      z  «      ‚# ‰$ r |j                  cY S w xY w)
zU
    Returns the possible node names (e.g. import_from, xor_test or yield_stmt).
    c                   ó   — e Zd Zy)ú/get_stack_at_position.<locals>.EndMarkerReachedN)rP   rQ   rR   rT   r   r   ÚEndMarkerReachedrb      s   „ Ør   rc   c              3   ó  •K  — ‰j                  | «      }|D ]d  }|j                  ‰k(  r ‰«       ‚|j                  j                  ‰«      r ‰«       ‚|j                  j                  ‰«      r|–—  ‰«       ‚|–— Œf y ­wr   )Ú	_tokenizer   ÚprefixÚendswith)ÚcodeÚtokensÚtokenrc   ÚgrammarÚsafewords      €€€r   Útokenize_without_endmarkerz9get_stack_at_position.<locals>.tokenize_without_endmarker‚   sx   øè ø€ ð ×"Ñ" 4Ó(ˆÛˆEØ�|‰|˜xÒ'Ù&Ó(Ð(Ø—‘×&Ñ& xÔ0á&Ó(Ð(Ø—‘×&Ñ& xÔ0Ø’Ù&Ó(Ð(à“ñ ùs   ƒA<A?Ú)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°$Ó7ˆÔ8ô ØBÜ
Ñ)¨$Ó/Ó
0ñ	1óð øð ò Ø�w‰wŠðús   ÁB ÂBÂBc                 ó|  — |j                   dk(  r| j                  ||«      S |j                  }t        }|j                   dk(  r|j	                  |j                  «      }|S |j                   dk(  rt        ||«      }|S t        |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�y�FÒØ×$Ñ$ W¨dÓ3Ð3à�[‰[€FÜ€KØ‡{�{�fÒà×(Ñ(¨¯©Ó5ˆð Ðð 
�‰˜	Ò	!ä(¨°$Ó7ˆð Ðô 
�Dœ$Ÿ,™,Ô	'ä˜' 4Ó(Ð(Ø	�‰ÐHÑ	HÜ# OÓ4Ð4ØÐr   c              #   óæ   K  — | D ]f  }|j                  «       rPt        t        |j                  «       |¬«      «      }d}|r|D ]  }|j                  �Œd}Œ |r|–— ŒX|E d {  –—†  Œc|–— Œh y 7 Œ­w)N)Úfollow_builtin_importsFT)Ú	is_importrv   Úfilter_follow_importsÚgotor=   )Únamesr‡   r   Ú	new_namesÚfound_builtinÚnew_names         r   r‰   r‰   ¹   sz   è ø€ ÛˆØ�>‰>ÔÜÔ2Ø—	‘	“Ø'=ôó ˆIð "ˆMÙ%Û )�HØ×)Ñ)Ñ1Ø(,™ð !*ñ Ø“
à$×$Ñ$à‹Jñ# ð %ús   ‚AA1ÁA1Á"A/Á#A1c                   óT   — e Zd Zd„ Zed„ «       Zed„ «       Zed„ «       Zd„ Z	d„ Z
d„ Zy)	ÚCallDetailsc                 ó.   — || _         || _        || _        y r   )Úbracket_leafÚ	_childrenÚ	_position)rO   r’   Úchildrenr@   s       r   Ú__init__zCallDetails.__init__Ï   s   € Ø(ˆÔØ!ˆŒØ!ˆ�r   c                 óH   — t        | j                  | j                  «      d   S rL   ©Ú_get_index_and_keyr“   r”   rN   s    r   ÚindexzCallDetails.indexÔ   ó   € ä! $§.¡.°$·.±.ÓAÀ!ÑDÐDr   c                 óH   — t        | j                  | j                  «      d   S )Nr   r˜   rN   s    r   Úkeyword_name_strzCallDetails.keyword_name_strØ   r›   r   c                 óT   — t        t        | j                  | j                  «      «      S r   )rv   Ú_iter_argumentsr“   r”   rN   s    r   Ú_list_argumentszCallDetails._list_argumentsÜ   s   € ä”O D§N¡N°D·N±NÓCÓDÐDr   c                 óì  — d}t        «       }d}| j                  «       }|s|ryy d}t        |«      D ]B  \  }\  }}}	||	|dk(  z  z  }|rŒ|dz   t        |«      k7  sŒ*|	r|j	                  |«       Œ>|dz  }ŒD t        |«      D ]ð  \  }}
|
j                  «       }|sB|t        j                  k(  r|c S |t        j                  t        j                  fv r	||k(  r|c S �|dk(  r|dk(  sŒg|
j                  |vre|t        j                  k(  s|t        j                  k(  r?||k  r:|r|c S 	r|
j                  |k(  r#|c S |
j                  j                  |«      r|c S |t        j                  k(  sŒî|c S  y )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ˆ
Øˆ
Ø×#Ñ#Ó%ˆÙÙØààˆÜ5>¸t¶_Ñ1ˆAÑ1�
˜I yØ˜	 Z°1¡_Ñ5Ñ5ˆHÙØà�q‘5œC ›IÓ%Ù Ø"Ÿ™ yÕ1à(¨AÑ-Ñ(ð 6Eô ' {Ö3‰MˆAˆzØ×&Ñ&Ó(ˆDáØœ9×3Ñ3Ò3Ø’HØœI×;Ñ;¼Y×=VÑ=VÐWÑWØÐ,Ò,Ø šàÐ$¨Z¸1ª_À
ÈaÃØ×)Ñ)°Ñ;Ø!¤Y×%;Ñ%;Ò;Ø $¬	×(GÑ(GÒ GØ!1°QÒ!6Ù!Ø šÙ Ø%×1Ñ1°YÒ>Ø#$šHà%×1Ñ1×<Ñ<¸YÔGØ#$šHàœ9×0Ñ0Ó0Ø’Hð3 4ð4 r   c              #   ód   K  — t        | j                  «       «      D ]  \  }}}|sŒ
|sŒ|–— Œ y ­wr   )rv   r    )rO   r°   r³   r´   s       r   Úiter_used_keyword_argumentsz'CallDetails.iter_used_keyword_arguments  s0   è ø€ Ü04°T×5IÑ5IÓ5KÖ0LÑ,ˆJ˜	 9ÚšYØ“ñ 1Mùs   ‚#0¦0©0c                 óZ   — d}| j                  «       d d D ]  \  }}}|s|r |S |dz  }Œ |S )Nr   rD   r   )r    )rO   Úcountr°   r³   r´   s        r   Úcount_positional_argumentsz&CallDetails.count_positional_arguments  sH   € ØˆØ04×0DÑ0DÓ0FÀsÈÓ0KÑ,ˆJ˜	 9Ù™YØàˆð �Q‰J‰Eð 1Lð ˆr   N)rP   rQ   rR   r–   rS   rš   r�   r   r    r·   r¹   r¼   rT   r   r   r�   r�   Î   sY   „ ò"ð
 ñEó ðEð ñEó ðEð ñEó ðEò1òf ó
r   r�   c              #   ój  ‡K  — ˆfd„}| D �cg c]  }|j                   ‰k  sŒ|‘Œ }}|d   j                  dk(  r"t        |d   j                  ‰«      E d {  –—†  y d}d}t	        |«      D �]  \  }}|j                  dk(  rËd}|j                  d   }	|j                  d   }
|
d	k(  r>|
j                   ‰k  r!|	j                  d
k(  rd|	j
                  df–— nsd ||	«      df–— ne|	dv r!t        |	j
                  «       ||
«      df–— n@|j                  «       }|j                  d
k(  r|j                   ‰k\  rd ||«      df–— nd–— d}Œá|j                  dk(  ri|j                  d d d…   D ]1  }|j                  dk(  rd}|j                  d   }| ||«      df–— d}Œ3 t        t        |j                  «      dz  «      }�ŒYt        |t        j                  «      r|j
                  dk(  r|s	|ddf–— d}d}�Œ‘t        |t        j                  «      r%|j
                  dv rt        |j
                  «      }�ŒÐ|d	k(  s�Œ×|d   s�ŒÞd}||dz
     }|j                  d
k(  rd|j
                  df–— nd–— d}�Œ |s+|d   j                  d
k(  r| ||d   «      df–— y |ddf–— y y c c}w 7 �ŒZ­w)Nc                 óh   •— | j                   dk7  ry | 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"  s6   ø€ Ø�9‰9˜ÒØØ�z‰zÐ:˜8 A™;¨¯©¸Ñ):Ñ:Ð;Ð;r   rD   ÚarglistFr   ÚargumentTr   Ú=r   )Ú*z**)r   NFÚtestlist_star_exprr¢   Ú	star_exprÚ,r)   )r=   r8   rŸ   r•   r¤   r<   r    Úget_first_leafÚboolr�   r
   Ú
PythonLeaf)Únodesr@   r¿   ÚcÚnodes_beforeÚprevious_node_yieldedÚ
stars_seenr²   ÚnodeÚfirstÚsecondÚ
first_leafÚnÚbefores    `            r   rŸ   rŸ   !  sÀ  øè ø€ ô<ñ  %Ó?™u˜!¨¯©°hÓ(>’A˜u€LÐ?Ø�BÑ×Ñ 	Ò)Ü" <°Ñ#3×#<Ñ#<¸hÓG×GÐGØà!ÐØ€JÜ˜\×*‰ˆˆ4Ø�9‰9˜
Ò"Ø$(Ð!Ø—M‘M !Ñ$ˆEØ—]‘] 1Ñ%ˆFØ˜Š}Ø×#Ñ# hÒ.°5·:±:ÀÒ3GØ˜UŸ[™[¨$Ð.Ó.àÑ-¨eÓ4°eÐ;Ó;Ø˜+Ñ%Ü˜%Ÿ+™+Ó&Ñ(8¸Ó(@À%ÐGÓGð "×0Ñ0Ó2�
Ø—?‘? fÒ,°×1EÑ1EÈÒ1QØÑ-¨jÓ9¸5Ð@Ó@à(Ò(Ø‰JØ�Y‰YÐ.Ò.Ø—]‘]¡3 Q 3Ô'�Ø—6‘6˜[Ò(Ø!"�JØŸ
™
 1™�AØ Ñ"2°1Ó"5°uÐ<Ò<Ø‘
ð (ô %)¬¨T¯]©]Ó);¸aÑ)?Ó$@Ò!Ü˜œdŸo™oÔ.°4·:±:ÀÒ3DÙ(Ø  " eÐ+Ò+Ø�
Ø$)Ò!Ü˜œdŸo™oÔ.°4·:±:ÀÑ3LÜ˜TŸZ™Z›ŠJØ�SŒ[˜\¨"Ô-Ø$(Ð!Ø! ! a¡%Ñ(ˆFØ�{‰{˜fÒ$Ø˜Ÿ™ tÐ+Ó+à$Ò$àŠJðY +ñ\ !Ø˜Ñ× Ñ  FÒ*ØÑ.¨|¸BÑ/?Ó@À%ÐGÓGà˜b %Ð'Ó'ð	 !ùòk @àGûs.   ƒ
J3�J+¢J+¦0J3ÁJ0ÁG)J3ÉJ3É	A(J3c                 óª  — | D �cg c]  }|j                   |k  sŒ|‘Œ }}|d   j                  dk(  rt        |d   j                  |«      S d}|d   }|j                  dk(  rH|j                  d   dk(  r6|j                  d   j                  |k  r|j                  d   j
                  }n|dk(  r|d   j
                  }|j                  d	«      |fS c c}w )
zG
    Returns the amount of commas and the keyword argument string.
    rD   rÀ   NrÁ   r   rÂ   r   éþÿÿÿrÆ   )r=   r8   r™   r•   rG   r<   r»   )rÊ   r@   rË   rÌ   Úkey_strÚlasts         r   r™   r™   d  s×   € ñ  %Ó?™u˜!¨¯©°hÓ(>’A˜u€LÐ?Ø�BÑ×Ñ 	Ò)Ü! ,¨rÑ"2×";Ñ";¸XÓFÐFà€Gà˜Ñ€DØ‡y�y�JÒ 4§=¡=°Ñ#3°sÒ#:Ø—‘˜aÑ ×(Ñ(¨HÒ4à—-‘- Ñ"×(Ñ(‰Ø	�ŠØ˜rÑ"×(Ñ(ˆà×Ñ˜cÓ" GÐ+Ð+ùò @s
   …CšCc                 óP  — t        t        t        | j                  «      «      «      D ]|  \  }}|dk(  sŒ|j                  |k  sŒ|dkD  sŒ"| j                  |d  }|j                  «       }|€ŒD|j                  dk(  s|j                  j                  dv sŒlt        |||z   |«      c S  y )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ÖB‰ˆˆwà�c‹>˜gŸo™o°Ó9¸eÀa»ið —}‘} U VÐ,ˆHØ×,Ñ,Ó.ˆDØˆ|ØØ�y‰y˜FÒ" d§k¡k×&6Ñ&6Ð:MÒ&MÜ" 7¨HÐ7JÑ,JÈHÓUÒUñ Cr   c                 ó  — | j                  |d¬«      }|j                  |k\  r|j                  «       }|€y |j                  }|��F|j                  dv ry g }t        |j                  «      D ]V  }|j                  |k  sŒ|j                  dk(  r#t        |||«      }|�|c S |j                  |dd ŒE|j                  d|«       ŒX |j                  dk(  r|j                  d   dk(  s!|j                  dk(  r‡|j                  d	   dk(  ru||j                  d
   u r||j                  k\  sU|j                  «       }|€y t        |j                  dk(  r|j                  d   n|j                  d	   |j                  |«      S |j                  }|��ŒFy )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€Dð ‡~�~˜Ò!à×%Ñ%Ó'ˆØˆ<Øð �;‰;€DØ
Ñ
Ø�9‰9ÐJÑJð à ÐÜ˜$Ÿ-™-Ö(ˆAØ�{‰{˜XÓ%Ø—6‘6˜\Ò)ÜCØÐ.°ó�Fð Ð)Ø%šà/0¯z©zÐ'¨¨!Ð,ØØ#×*Ñ*¨1¨aÕ0ð )ð �9‰9˜	Ò! d§m¡m°AÑ&6¸#Ò&=Ø—9‘9 Ò+°·±¸aÑ0@ÀCÒ0Gð
 ˜DŸM™M¨"Ñ-Ñ-°(¸d¿l¹lÒ2JØ×-Ñ-Ó/�Ø�<ØÜ"Ø(,¯	©	°YÒ(>�D—M‘M !Ò$ÀDÇMÁMÐRSÑDTØ—M‘MØóð ð �{‰{ˆðK Ò
ðN r   Úcall_signatures_validityc              #   óp  K  — |d   dz
  }||   d|d    }||j                   d   | }dj                  ||gz   «      }t        j                  d|t        j                  «      }	|j                  «       j                  «       }
|
€d–— n|
|	|j                   f–— t        | ||j                  «       «      –— y­w)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Ñ3°AÑ6°zÐB€KØ�G‰G�K = /Ñ1Ó2€EÜ—X‘X˜g u¬b¯i©iÓ8€Nà×*Ñ*Ó,×7Ñ7Ó9€KØÐØ‹
à˜N¨L×,BÑ,BÐCÒCÜ
ØØØ×&Ñ&Ó(óó ùs   ‚B4B6c                 ó0   ‡ — t        ‰ «      dˆ fd„	«       }|S )Nc                 ó®  •— |€t        t        | j                  «      d«      n|}d|cxk  r"t        | j                  «      k  st        d«      ‚ t        d«      ‚| j                  |dz
     }t        |«      }|j	                  d«      r|dz  }n|j	                  d«      r|dz  }|€|n|}d|cxk  r|k  sn t        d||||fz  «      ‚ ‰| ||g|¢­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œC × 0Ñ 0Ó1Ò1ÜÐHÓIÐIð 2ÜÐHÓIÐIà×&Ñ& t¨a¡xÑ0ˆÜ�{Ó#ˆØ×Ñ Ô'Ø˜‰M‰HØ×!Ñ! $Ô'Ø˜‰MˆHà#˜^‘°ˆØ�VÔ'˜xÔ'Üð 8à!'¨°4¸ð;FñFó Gð Gñ �D˜$ Ð8¨Ò8°Ñ8Ð8r   )NNr   )r   r  s   ` r   Úvalidate_line_columnr  Ô  s    ø€ Ü
ˆ4ƒ[ô9ó ð9ð$ €Nr   c                 óè   ‡ ‡‡— ˆˆfd„}t        t        j                  ‰ j                  «       j	                  «       «      «      }|sˆ fd„}|D �cg c]  } ||«      sŒ|‘Œ }}t        ||«      S c c}w )zZ
    Returns a dictionary with name parts as keys and their call paths as
    values.
    c                 óB   •— | j                  «       }‰xr |xs ‰xr | 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                 ó`   •— 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û  s7   ø€ Ü+¨DÓ1ˆLá × 1Ñ 1°\Ò AØ+×2Ñ2�Ø F¨D >Ð1Ð1r   )rv   r   Úfrom_iterableÚget_used_namesÚvaluesÚfilter)rè   Ú
all_scopesr…   r  r  r‹   r  rÓ   s   ` ``    r   Úget_module_namesr  ë  sj   ú€ õ
Cô ”×$Ñ$ V×%:Ñ%:Ó%<×%CÑ%CÓ%EÓFÓG€EÙô	2ñ "Ó=™E�qÑ%9¸!Õ%<’˜EˆÐ=Ü�. %Ó(Ð(ùò >s   ÁA/ÁA/c                 ó`   — | j                  d«      \  }}}|dk(  rd}||j                  d«      fS )Nro   ÚdefÚfunctionÚ.)Ú
rpartitionÚsplit)r   r8   Ú_Údotted_namess       r   Úsplit_search_stringr    s9   € Ø ŸO™O¨CÓ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>r)     sÕ   ðñó 
Ý "Ý Ý Ý Ý å &Ý å /Ý 1Ý 5Ý 8ß ;Ý .ñ Ð.Ò0KÓL€ò(òó/ò0ò8òô�)ô ò%TòP'òTó(÷*Pñ Pòf@(òF,ò*Vò4ñn Ð0Ó1ñó 2ðò*ó.)ó6)r   