ó
    Ð]j&J  ã                   ó~  • S r SSKrSSKJr  SSKJr  SSKJr  SSKJ	r	  SSK
Jr  SSKJr  SS	KJr  SS
K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/ SQ5      rS rS rS)S jr S r!S r"S r# " S S\$5      r%S r&S r'S r(S)S jr) " S S5      r*S  r+S! r,S" r-S# r.\" S$5      S% 5       r/S& r0S*S' jr1S( r2g)+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                 ó$   • U R                  U5      $ ©N)Ú
startswith)ÚstringÚ	like_names     ÚM/home/mande/repo/quber/.venv/lib/python3.13/site-packages/jedi/api/helpers.pyÚ_start_matchr      s   € Ø×Ñ˜YÓ'Ð'ó    c                 ó†   • [        U5      S::  a  X;   $ U R                  US   5      nUS:¼  a  [        XS-   S  USS  5      $ g)Né   r   F)ÚlenÚfindÚ_fuzzy_match)r   r   Úposs      r   r"   r"      sO   € Ü
ˆ9ƒ~˜ÓØÑ"Ð"Ø
�+‰+�i ‘lÓ
#€CØ
ˆaƒxÜ˜F¨¡7 8Ð,¨i¸¸¨mÓ<Ð<Ør   c                 ó<   • U(       a  [        X5      $ [        X5      $ r   )r"   r   )r   r   Úfuzzys      r   Úmatchr&   &   s   € ÞÜ˜FÓ.Ð.ä˜FÓ.Ð.r   c                 ó   • [        U S S9$ )Nc                 ó¦   • [        U R                  =(       d    S5      U R                  =(       d    SU R                  =(       d    SU R                  4$ )NÚ r   )ÚstrÚmodule_pathÚlineÚcolumnr   )Úxs    r   Ú<lambda>Ú$sorted_definitions.<locals>.<lambda>/   s4   € ¤s¨1¯=©=×+>¸BÓ'?Ø'(§v¡v§{°Ø'(§x¡x§}°1Ø'(§v¡vñ'/r   )Úkey)Úsorted)Údefss    r   Úsorted_definitionsr4   -   s   € ä�$ñ /ñ 0ð 0r   c                 ó  • U R                  U5      nUb  UR                  S;   a6  XS   S-
     n[        R                  " SUS US    5      R	                  S5      $ UR                  S;  a  gUR
                  S US   UR                  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_namerC   5   s�   € Ø×,Ñ,¨XÓ6€DØ�|�t—y‘yÐ$<Ó<ð ˜a‘[ 1‘_Ñ%ˆä�yŠy˜¨$¨|°¸±Ð*<Ó=×CÑCÀAÓFÐFØ	�‰Ð-Ó	-Øà�:‰:Ð6�x ‘{ T§^¡^°AÑ%6Ñ6Ð7Ð7r   c                 óv   • XS   S-
  US    nUS   S US    US'   US   US   S  US'   SR                  U5      $ )Nr   r   éÿÿÿÿr)   )Újoin)Ú
code_linesr>   Úend_posr@   s       r   Ú	_get_coderI   C   sW   € à ‘| aÑ'¨°©
Ð3€Eà�b‘	˜+˜7 1™:Ð&€Eˆ"�Ià�Q‰x˜	 !™˜Ð&€Eˆ!�HØ�7‰7�5‹>Ðr   c                   ó$   • \ rS rSr\S 5       rSrg)ÚOnErrorLeaféM   c                 ó    • U R                   S   $ ©Nr   )Úargs©Úselfs    r   r6   ÚOnErrorLeaf.error_leafN   s   € à�y‰y˜‰|Ðr   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úpropertyr6   Ú__static_attributes__rS   r   r   rK   rK   M   s   † Øñó ór   rK   c                 ó   • UR                   U:¼  a  UR                  5       nUc  gUR                  S:H  nUR                  S:X  a&  UR                  5       nUc  gUR                  S:X  a  M&  UR                  S:X  d  UR                  S:X  a"  UR                   S   US   :  a  g[        U5      eUn UR                  R                  S;   a  OUR                  nM)  U(       a  UR                   S   US   :”  a  g[        XR                  5       U5      $ )Nr)   Únewliner6   r   r   )Ú
file_inputÚsuiteÚsimple_stmtr   )r>   Úget_previous_leafr9   rK   ÚparentrI   Úget_start_pos_of_prefix)rG   rB   rA   Úis_after_newlineÚ	user_stmts        r   Ú_get_code_for_stackrd   S   s  € ð ‡~�~˜Ó!à×%Ñ%Ó'ˆØ‰<Øà—y‘y IÑ-ÐØ
�)‰)�yÓ
 Ø×%Ñ%Ó'ˆØ‰<Øð �)‰)�yÕ
 ð
 ‡y�y�LÓ  D§I¡I°Ó$9Ø�>‰>˜!Ñ˜x¨™{Ó*àô ˜$ÓÐàˆ	ØØ×Ñ×$Ñ$Ð(NÓNØØ!×(Ñ(ˆIñ ö
 Ø×"Ñ" 1Ñ%¨°©Ó3ð ô ˜×%FÑ%FÓ%HÈ(ÓSÐSr   c                 ó2  ^ ^^•  " S S[         5      mUU U4S jn[        [        XU5      5      nSmUS-   T-   n[        T R                  SS9n UR                  U" U5      S9  [        S	[        U" U5      5      -  5      e! T a    UR                  s $ f = f)
zM
Returns the possible node names (e.g. import_from, xor_test or yield_stmt).
c                   ó   • \ rS rSrSrg)Ú/get_stack_at_position.<locals>.EndMarkerReachedé   rS   N)rT   rU   rV   rW   rY   rS   r   r   ÚEndMarkerReachedrg      s   † Úr   ri   c              3   ó  >#   • TR                  U 5      nU Hp  nUR                  T:X  a  T" 5       eUR                  R                  T5      (       a  T" 5       eUR                  R                  T5      (       a  Uv •  T" 5       eUv •  Mr     g 7fr   )Ú	_tokenizer   ÚprefixÚendswith)ÚcodeÚtokensÚtokenri   ÚgrammarÚsafewords      €€€r   Útokenize_without_endmarkerÚ9get_stack_at_position.<locals>.tokenize_without_endmarker‚   s}   øé € ð ×"Ñ" 4Ó(ˆÛˆEØ�|‰|˜xÓ'Ù&Ó(Ð(Ø—‘×&Ñ& x×0Ñ0á&Ó(Ð(Ø—‘×&Ñ& x×0Ñ0Ø’Ù&Ó(Ð(à”ò ùs   ƒB	BÚ)ZZZ_USER_WANTS_TO_COMPLETE_HERE_WITH_JEDIÚ T)Úerror_recovery)ro   z7This really shouldn't happen. There's a bug in Jedi:
%s)	Ú	Exceptionr   rd   r	   Ú_pgen_grammarÚparseÚstackÚSystemErrorÚlist)	rq   rG   rB   r#   rs   rn   Úpri   rr   s	   `      @@r   Úget_stack_at_positionr   {   s§   ú€ ôœ9ô ÷ô" Ô% j¸Ó<Ó=€Dð ;€HØ�#‰:˜Ñ €Däˆw×$Ñ$°TÑ:€AðØ	�‰Ñ1°$Ó7ˆÑ8ô ØBÜ
Ñ)¨$Ó/Ó
0ñ	1óð øð ó Ø�w‰wŠðús   ÁB ÂBÂBc                 óŠ  • UR                   S:X  a  U R                  X5      $ UR                  n[        nUR                   S:X  a  UR	                  UR                  5      nU$ UR                   S:X  a  [        X5      nU$ [        U[        R                  5      (       a  [        X5      $ UR                   S;   a  [        U 5      $ U$ )Nr   ÚatomÚtrailer)Úfstring_stringÚfstring_startÚfstring_end)r9   Úinferr`   r   Ú
infer_noder   Ú
isinstancer
   ÚLiteralr   r   )Úinference_stateÚcontextrB   r`   Údefinitionss        r   r†   r†   ¥   s±   € Ø‡y�y�FÓØ×$Ñ$ WÓ3Ð3à�[‰[€FÜ€KØ‡{�{�fÓà×(Ñ(¨¯©Ó5ˆð Ðð 
�‰˜	Ó	!ä(¨Ó7ˆð Ðô 
�Dœ$Ÿ,™,×	'Ñ	'ä˜'Ó(Ð(Ø	�‰ÐHÓ	HÜ# OÓ4Ð4ØÐr   c              #   ó  #   • U  Hy  nUR                  5       (       a]  [        [        UR                  5       US95      nSnU(       a  U H  nUR                  b  M  SnM     U(       a  Uv •  Mi  U S h  v•N   Mu  Uv •  M{     g  N7f)N)Úfollow_builtin_importsFT)Ú	is_importr}   Úfilter_follow_importsÚgotor>   )ÚnamesrŽ   r   Ú	new_namesÚfound_builtinÚnew_names         r   r�   r�   ¹   s|   é € ÛˆØ�>‰>×ÑÜÔ2Ø—	‘	“Ø'=ñó ˆIð "ˆMÞ%Û )�HØ×)Ñ)Ó1Ø(,šñ !*ö Ø”
à$×$Ò$àŒJò# ñ %ùs   ‚ABÁBÁ3BÁ4Bc                   ó\   • \ rS rSrS r\S 5       r\S 5       r\S 5       r	S r
S rS rS	rg
)ÚCallDetailséÎ   c                 ó(   • Xl         X l        X0l        g r   )Úbracket_leafÚ	_childrenÚ	_position)rQ   rš   ÚchildrenrA   s       r   Ú__init__ÚCallDetails.__init__Ï   s   € Ø(ÔØ!ŒØ!�r   c                 óH   • [        U R                  U R                  5      S   $ rN   ©Ú_get_index_and_keyr›   rœ   rP   s    r   ÚindexÚCallDetails.indexÔ   ó   € ä! $§.¡.°$·.±.ÓAÀ!ÑDÐDr   c                 óH   • [        U R                  U R                  5      S   $ )Nr   r¡   rP   s    r   Úkeyword_name_strÚCallDetails.keyword_name_strØ   r¥   r   c                 óT   • [        [        U R                  U R                  5      5      $ r   )r}   Ú_iter_argumentsr›   rœ   rP   s    r   Ú_list_argumentsÚCallDetails._list_argumentsÜ   s   € ä”O D§N¡N°D·N±NÓCÓDÐDr   c                 óf  • Sn[        5       nSnU R                  5       nU(       d	  U(       a  gg Sn[        U5       HO  u  nu  pHn	XiUS:H  -  -  nU(       a  M  US-   [        U5      :w  d  M0  U	(       a  UR	                  U5        MJ  US-  nMQ     [        U5       GH  u  pzU
R                  5       nU(       dE  U[        R                  :X  a  Us  $ U[        R                  [        R                  4;   a	  Xr:X  a  Us  $ Wb  US:X  a  US:X  d  Ms  U
R                  U;  ax  U[        R                  :X  d  U[        R                  :X  aP  X'::  aK  U(       a  Us  $ W	(       a  U
R                  U:X  a  Us  $ O$U
R                  R                  U5      (       a  Us  $ U[        R                  :X  d  GM  Us  $    g )Nr   rE   Fé   r   )Úsetr«   Ú	enumerater    ÚaddÚget_kindr   ÚVAR_POSITIONALÚPOSITIONAL_OR_KEYWORDÚPOSITIONAL_ONLYÚstring_nameÚKEYWORD_ONLYr   ÚVAR_KEYWORD)rQ   Úparam_namesÚpositional_countÚ
used_namesÚ
star_countrO   Úis_kwargÚiÚ	key_startÚ	had_equalÚ
param_nameÚkinds               r   Úcalculate_indexÚCallDetails.calculate_indexà   sƒ  € ØÐÜ“Uˆ
Øˆ
Ø×#Ñ#Ó%ˆÞÞØààˆÜ5>¸t¶_Ñ1ˆAÑ1�
 yØ Z°1¡_Ñ5Ñ5ˆHÞÙà�q‘5œC ›IÕ%Þ Ø"Ÿ™ yÖ1à(¨AÑ-Ò(ñ 6Eô ' {×3‰MˆAØ×&Ñ&Ó(ˆDæØœ9×3Ñ3Ó3Ø’HØœI×;Ñ;¼Y×=VÑ=VÐWÓWØÓ,Ø šàÑ$¨Z¸1«_À
ÈaÅØ×)Ñ)°Ó;Ø!¤Y×%;Ñ%;Ó;Ø $¬	×(GÑ(GÓ GØ!1Ó!6Þ!Ø šÞ Ø%×1Ñ1°YÓ>Ø#$šHð ?ð &×1Ñ1×<Ñ<¸Y×GÑGØ#$šHàœ9×0Ñ0Ö0Ø’Hñ3 4ð4 r   c              #   ó~   #   • [        U R                  5       5       H  u  pnU(       d  M  U(       d  M  Uv •  M     g 7fr   )r}   r«   )rQ   r¼   r¿   rÀ   s       r   Úiter_used_keyword_argumentsÚ'CallDetails.iter_used_keyword_arguments  s1   é € Ü04°T×5IÑ5IÓ5KÖ0LÑ,ˆJ 9ßˆyŸY˜YØ”ò 1Mùs   ‚%=«=´	=c                 óp   • SnU R                  5       S S  H  u  p#nU(       d  U(       a    U$ US-  nM     U$ )Nr   rE   r   )r«   )rQ   Úcountr¼   r¿   rÀ   s        r   Úcount_positional_argumentsÚ&CallDetails.count_positional_arguments  sF   € ØˆØ04×0DÑ0DÓ0FÀsÈÓ0KÑ,ˆJ 9ÞžYØàˆð �Q‰JŠEñ 1Lð ˆr   )r›   rœ   rš   N)rT   rU   rV   rW   rž   rX   r£   r§   r   r«   rÃ   rÆ   rÊ   rY   rS   r   r   r—   r—   Î   sY   † ò"ð
 ñEó ðEð ñEó ðEð ñEó ðEò1òf õ
r   r—   c              #   óÔ  ^#   • U4S jnU  Vs/ s H  o3R                   T:  d  M  UPM     nnUS   R                  S:X  a"  [        US   R                  T5       S h  v•N   g SnSn[	        U5       GH7  u  pxUR                  S:X  aÓ  SnUR                  S   n	UR                  S   n
U
S	:X  a@  U
R                   T:  a"  U	R                  S
:X  a  SU	R
                  S4v •  OwSU" U	5      S4v •  OiU	S;   a!  [        U	R
                  5      U" U
5      S4v •  OBUR                  5       nUR                  S
:X  a  UR                   T:¼  a  SU" U5      S4v •  OSv •  SnMé  UR                  S:X  al  UR                  S S S2    H2  nUR                  S:X  a  SnUR                  S   nXb" U5      S4v •  SnM4     [        [        UR                  5      S-  5      nGMe  [        U[        R                  5      (       a%  UR
                  S:X  a  U(       d	  USS4v •  SnSnGM©  [        U[        R                  5      (       a(  UR
                  S;   a  [        UR
                  5      nGMð  US	:X  d  GMù  US   (       d  GM  SnXGS-
     nUR                  S
:X  a  SUR
                  S4v •  OSv •  SnGM:     U(       d+  US   R                  S
:X  a  Xb" US   5      S4v •  g USS4v •  g g s  snf  GN‰7f)Nc                 ój   >• U R                   S:w  a  g U R                  S TS   U R                  S   -
   $ )Nr   r   )r9   r=   r>   )r   rA   s    €r   Úremove_after_posÚ)_iter_arguments.<locals>.remove_after_pos"  s6   ø€ Ø�9‰9˜ÓØØ�z‰zÐ:˜8 A™;¨¯©¸Ñ):Ñ:Ð;Ð;r   rE   ÚarglistFr   ÚargumentTr   Ú=r   )Ú*z**)r   NFÚtestlist_star_exprr®   Ú	star_exprÚ,r)   )r>   r9   rª   r�   r°   r=   r    Úget_first_leafÚboolrˆ   r
   Ú
PythonLeaf)ÚnodesrA   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Ü˜\×*‰ˆØ�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.   ƒK(ŽK ¥K «1K(ÁK%ÁHK(É*K(É7A/K(c                 ó¼  • U  Vs/ s H  o"R                   U:  d  M  UPM     nnUS   R                  S:X  a  [        US   R                  U5      $ SnUS   nUR                  S:X  aJ  UR                  S   S:X  a7  UR                  S   R                  U::  a  UR                  S   R
                  nOUS:X  a  US   R
                  nUR                  S	5      U4$ s  snf )
z?
Returns the amount of commas and the keyword argument string.
rE   rÐ   NrÑ   r   rÒ   r   éþÿÿÿrÖ   )r>   r9   r¢   r�   rH   r=   rÉ   )rÚ   rA   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                 óf  • [        [        [        U R                  5      5      5       H†  u  p4US:X  d  M  UR                  U::  d  M  US:”  d  M'  U R                  US  nUR                  5       nUc  MK  UR                  S:X  d  UR                  R                  S;   d  Mw  [        XEU-   U5      s  $    g )NÚ(r   r   )r‚   r�   )	Úreversedr}   r°   r�   rH   r_   r9   r`   r—   )rß   Úadditional_childrenrA   r£   Úelementr�   r   s          r   Ú&_get_signature_details_from_error_noderî   y  s“   € Ü"¤4¬	°$·-±-Ó(@Ó#AÖB‰ˆà�c�>˜gŸo™o°Õ9¸eÀa½ið —}‘} U VÐ,ˆHØ×,Ñ,Ó.ˆDØ‰|ÙØ�y‰y˜FÓ" d§k¡k×&6Ñ&6Ð:MÕ&MÜ" 7Ð7JÑ,JÈHÓUÒUò Cr   c                 ó8  • U R                  USS9nUR                  U:¼  a  UR                  5       nUc  g UR                  nUGbV  UR                  S;   a  g / n[        UR                  5       H[  nUR                  U:  d  M  UR                  S:X  a$  [        XTU5      nUb  Us  $ UR                  USS& MI  UR                  SU5        M]     UR                  S:X  a  UR                  S   S:X  d#  UR                  S:X  aŠ  UR                  S	   S:X  aw  X#R                  S
   L a  XR                  :¼  dW  UR                  5       nUc  g [        UR                  S:X  a  UR                  S   OUR                  S	   UR                  U5      $ UR                  nUb  GMV  g )NT)Úinclude_prefixes)ÚfuncdefÚclassdefÚ	decoratedÚ
async_stmtÚ
error_noder   r‚   rê   Ú	decoratorr®   rE   )r8   r>   r_   r`   r9   rë   r�   rî   ÚinsertrH   r—   )ÚmodulerA   rB   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ð
 ŸM™M¨"Ñ-Ò-°(¿l¹lÓ2JØ×-Ñ-Ó/�Ø‘<ØÜ"Ø(,¯	©	°YÓ(>�D—M‘M !Ò$ÀDÇMÁMÐRSÑDTØ—M‘MØóð ð �{‰{ˆðK Ô
ðN r   Úcall_signatures_validityc              #   ól  #   • US   S-
  nX5   SUS    nX2R                   S   U nSR                  Xv/-   5      n[        R                  " SU[        R                  5      n	UR                  5       R                  5       n
U
c  Sv •  OX©UR                   4v •  [        U UUR                  5       5      v •  g7f)z'This function calculates the cache key.r   r   Nr)   z.*\()	r>   rF   r:   r&   ÚDOTALLÚget_root_contextÚ
py__file__r†   r_   )rŠ   r‹   rš   rG   Úuser_posÚ
line_indexÚbefore_cursorÚother_linesÚwholeÚbefore_bracketr+   s              r   Úcache_signaturesr  ¾  s·   é € ð ˜!‘˜q‘€JàÑ*¨<¨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ØÑØ‹
à¨L×,BÑ,BÐCÒCÜ
ØØØ×&Ñ&Ó(óó ùs   ‚B2B4c                 ó4   ^ • [        T 5      SU 4S jj5       nU$ )Nc                 ó´  >• Uc  [        [        U R                  5      S5      OUnSUs=:  a  [        U R                  5      ::  d  O  [        S5      eU R                  US-
     n[        U5      nUR	                  S5      (       a  US-  nOUR	                  S5      (       a  US-  nUc  UOUnSUs=::  a  U::  d  O  [        SX&X4-  5      eT" XU/UQ70 UD6$ )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Ú
ValueErrorrm   )rQ   r,   r-   rO   ÚkwargsÚline_stringÚline_lenÚfuncs          €r   ÚwrapperÚ%validate_line_column.<locals>.wrapperÕ  sì   ø€ à04±Œs”3�t×'Ñ'Ó(¨!Ô,À$ˆØ�DÕ1œC × 0Ñ 0Ó1Õ1ÜÐ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                 ó  ^ ^^• UU4S jn[        [        R                  " T R                  5       R	                  5       5      5      nU(       d&  U 4S jnU Vs/ s H  ov" U5      (       d  M  UPM     nn[        XE5      $ s  snf )zN
Returns a dictionary with name parts as keys and their call paths as
values.
c                 óh   >• U R                  5       nT=(       a    U=(       d    T=(       a    U(       + $ r   )Úis_definition)r   Úis_defrŒ   Ú
referencess     €€r   Údef_ref_filterÚ(get_module_names.<locals>.def_ref_filterð  s(   ø€ Ø×#Ñ#Ó%ˆØ×%˜v×B¨×)B¸F¼
ÐBr   c                 ón   >• [        U 5      nU(       a  UR                  S:X  a  UR                  nUTS 4;   $ )Nrô   )r   r9   r`   )r   Úparent_scoperø   s     €r   Úis_module_scope_nameÚ.get_module_names.<locals>.is_module_scope_nameû  s7   ø€ Ü+¨DÓ1ˆLæ × 1Ñ 1°\Ó AØ+×2Ñ2�Ø F¨D >Ñ1Ð1r   )r}   r   Úfrom_iterableÚget_used_namesÚvaluesÚfilter)rø   Ú
all_scopesrŒ   r  r  r’   r  rã   s   ` ``    r   Úget_module_namesr$  ë  sh   ú€ ö
Cô ”×$Ò$ V×%:Ñ%:Ó%<×%CÑ%CÓ%EÓFÓG€EÞõ	2ñ "Ó=šE�qÐ%9¸!×%<—™EˆÐ=Ü�.Ó(Ð(ùò >s   ÁA>Á+A>c                 ó^   • U R                  S5      u  pnUS:X  a  SnXR                  S5      4$ )Nrv   ÚdefÚfunctionÚ.)Ú
rpartitionÚsplit)r   r9   Ú_Údotted_namess       r   Úsplit_search_stringr-    s5   € Ø ŸO™O¨CÓ0Ñ€Dˆ\Øˆuƒ}ØˆØ×#Ñ# CÓ(Ð(Ð(r   )F)TF)3Ú__doc__r:   Ú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&   r4   rC   rI   rx   rK   rd   r   r†   r�   r—   rª   r¢   rî   rú   r  r  r$  r-  rS   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   