ó
    Ð]j�,  ã                   óø   • S SK r S SK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KJr  S SKJr  S SKJr  S	rS
r Sr SS jrS rS rS rS rS rSS jrS rS rS rSS jrSS jrS r S r! SS jr" SS jr#g) é    N)Úpython_bytes_to_unicode)Údbg)ÚKnownContentFileIOÚFolderIO)ÚSubModuleName)Úload_module_from_path)ÚParserTreeFilter)Úconvert_names)z.toxz.venvz.mypy_cacheÚvenvÚ__pycache__iÐ  é   c              #   óÊ   #   • U  HW  nX!;   a  M
  [        U[        5      (       d  Uv •  UR                  S:X  d  M5  [        UR	                  5       U 5       S h  v•N   MY     g  N	7f)NÚmodule)Ú
isinstancer   Úapi_typeÚ_resolve_namesÚgoto)Údefinition_namesÚavoid_namesÚnames      ÚV/home/mande/repo/quber/.venv/lib/python3.13/site-packages/jedi/inference/references.pyr   r      sW   é € Û ˆØÓñ ä˜$¤×.Ñ.ð ŠJà�=‰=˜HÕ$Ü% d§i¡i£kÐ3CÓD×DÒDò !ñ Eùs   ‚4A#ºA#ÁA!Á
A#c                 ó&   • [        S U  5       5      $ )Nc              3   ó\   #   • U  H"  nUR                   c  UOUR                   U4v •  M$     g 7f©N)Ú	tree_name©Ú.0Úns     r   Ú	<genexpr>Ú _dictionarize.<locals>.<genexpr>.   s+   é € ð âˆAð �k‰kÑ!‰ q§{¡{°AÕ6Úùs   ‚*,)Údict)Únamess    r   Ú_dictionarizer#   -   s   € Üñ áóó ð ó    c           
      ó  • [        X5      n[        U5       H<  nU[        [        U/UR	                  5       R                  5       (       + SS95      -  nM>     U[        [        X!R                  5      5      -  n[        U5       Hr  nUR                  S:X  d1  UR                  b$  UR                  R                  R                  S:X  a  MF  U[        [        UR                  UR                  5      5      -  nMt     [        [        U5      5      $ )NF)Ú
only_stubsÚprefer_stub_to_compiledÚparamÚtrailer)Ú_find_namesÚlistÚsetr
   Úget_root_contextÚis_stubÚ_find_global_variablesÚvaluer   r   ÚparentÚtypeÚ_add_names_in_same_contextÚparent_contextÚstring_namer   )Úmodule_contextr   Úfound_namesr   s       r   Ú_find_defining_namesr8   4   sâ   € Ü˜nÓ8€Kä�[Ö!ˆà”sœ=ØˆFØ×0Ñ0Ó2×:Ñ:Ó<Ô<Ø$)ñ
ó ñ 	Šñ "ð ”3Ô-¨k¿?¹?ÓKÓLÑL€KÜ�[Ö!ˆØ�=‰=˜GÓ# t§~¡~Ñ'=Ø—>‘>×(Ñ(×-Ñ-°Ó:ÙØ”sÔ5°d×6IÑ6IÈ4×K[ÑK[Ó\Ó]Ñ]Šñ	 "ô
 Œ~˜kÓ*Ó+Ð+r$   c                 ó    • U R                  U5      n[        UR                  5       5      nUR                  U5        [        [	        U5      5      $ r   )Úcreate_namer,   r   Úaddr   )r6   r   r   r7   s       r   r*   r*   H   s>   € Ø×%Ñ% iÓ0€DÜ�d—i‘i“kÓ"€KØ‡O�O�DÔäŒ~˜kÓ*Ó+Ð+r$   c              #   óÔ   #   • U R                   c  g S n [        U US9n[        UR                  U5      5      nU(       d  g U S h  v•N   [	        US S9nUS   R
                  nMR   N 7f)N)r4   Úuntil_positionc                 ó   • U R                   $ r   )Ú	start_pos)Úxs    r   Ú<lambda>Ú,_add_names_in_same_context.<locals>.<lambda>^   s   € ¨a¯kªkr$   )Úkeyr   )Ú	tree_noder	   r,   ÚgetÚsortedr?   )Úcontextr5   r=   Úfilter_r"   Úordereds         r   r3   r3   P   sv   é € Ø×ÑÑ Øà€NØ
Ü"Ø"Ø)ñ
ˆô �G—K‘K Ó,Ó-ˆÞØØ×ÐÜ˜Ñ$9Ñ:ˆØ  ™×-Ñ-ˆñ ñ 	ùs   ‚AA(ÁA&Á!A(c              #   óN  #   • U  Hˆ  nUR                   c  M  UR                  5       n UR                  nU" 5       R                  U5       H?  nUv •  UR	                  UR                   5      n[        XeR                  5       S h  v•N   MA     MŠ     g  N! [         a     Mœ  f = f7fr   )r   r-   Úget_global_filterrE   Úcreate_contextr3   r5   ÚAttributeError)r"   Úsearch_namer   r6   ÚmethodÚglobal_nameÚcs          r   r/   r/   b   s›   é € ÛˆØ�>‰>Ñ!ÙØ×.Ñ.Ó0ˆð	RØ#×5Ñ5ˆFñ  &›xŸ|™|¨KÖ8�Ø!Ò!Ø"×1Ñ1°+×2GÑ2GÓH�Ü5°a×9PÑ9PÓQ×QÒQó  9ò ñ Røô ó 	Úð	üs4   ‚%B%¨B´AB%ÂBÂB%Â
B"ÂB%Â!B"Â"B%c                 óV  ^• U R                   nUR                  n SUl        [        X5      nSUl        [	        U5      mU /nU(       dt  [        S U 5       5       H^  nXp:w  d  M
  UR                  c  M  UR                  R                  UR                  5       R                  ;   d  MM  UR                  U5        M`     U(       d  [        S U 5       5      (       a  UnO[        UUU5      n0 n	U HÕ  n U R                  R                  5       R                  U/ 5       H¤  n
[	        [!        X
5      5      n[        U4S jU 5       5      (       aI  TR#                  U5        U H0  nU	R                  U/ 5       H  nTR#                  U5        M      X‘	 M2     Mz  U H$  nU	R'                  U/ 5      R                  U5        M&     M¦     M×     TR)                  5       nU(       a(  U Vs/ s H  oÿR+                  5       U :X  d  M  UPM     sn$ U$ ! SUl        f = f! [$         a     MÂ  f = fs  snf )NFTc              3   ó@   #   • U  H  oR                  5       v •  M     g 7fr   )r-   )r   Úds     r   r   Ú"find_references.<locals>.<genexpr>‚   s   é € Ð?²;¨a×'Ñ'×)Ð)²;ùs   ‚c              3   ó>   #   • U  H  oR                   S :H  v •  M     g7f)r(   N)r   r   s     r   r   rU   ‡   s   é € ÐHºK°qŸZ™Z¨7Ö2ºKùs   ‚c              3   ó,   >#   • U  H	  oT;   v •  M     g 7fr   © )r   r   Úfound_names_dcts     €r   r   rU   ”   s   øé € ÐEÂ°I Ö/Âùs   ƒ)Úinference_stater0   Úflow_analysis_enabledr8   r#   r,   rD   ÚprojectÚpathÚ
py__file__ÚparentsÚappendÚanyÚ#get_module_contexts_containing_nameÚget_used_namesrE   r*   ÚupdateÚKeyErrorÚ
setdefaultÚvaluesr-   )r6   r   Úonly_in_moduleÚinfrN   r7   Úmodule_contextsÚmÚpotential_modulesÚnon_matching_reference_mapsÚ	name_leafÚnewÚdctr   Úresultr   rY   s                   @r   Úfind_referencesrr   r   sø  ø€ Ø
×
(Ñ
(€CØ—/‘/€Kð)Ø$)ˆÔ!Ü*¨>ÓEˆà$(ˆÔ!ä# KÓ0€Oà%Ð&€OÞÜÑ?±;Ó?Ö?ˆAØÕ" q§{¡{Ó'>ØŸ™×(Ñ(¨A¯L©L«N×,BÑ,BÕBØ×&Ñ& qÖ)ñ @ö
 œÑH¹KÓH×HÑHØ+Ñä?ØØØó
Ðð #%ÐÛ+ˆØ'×1Ñ1×@Ñ@ÓB×FÑFÀ{ÐTVÖWˆIÜ¤¨NÓ FÓGˆCÜÔEÁÓE×EÑEØ×&Ñ& sÔ+Û!$�IØ:×>Ñ>¸yÈ"ÖM˜ð (×.Ñ.¨sÖ3ñ  NðØ7ÒBó "%ó  �DØ/×:Ñ:¸4ÀÓD×KÑKÈCÖPó  ó Xñ ,ð" ×#Ñ#Ó%€FÞÙ!ÓLš6�a×%7Ñ%7Ó%9¸^Ñ%K—™6ÑLÐLØ€MøðS %)ˆÕ!ûôB $ó Úðüò Ms)   ›H	 ÆHÇ#H&Ç>H&È		HÈ
H#	È"H#	c                 ó  •  UR                  5       n[        USS9nUR                  U5      (       d  g [	        UR
                  U5      n[        X5      nUR                  5       (       a  g UR                  5       $ ! [         a     g f = f)NÚreplace)Úerrors)	ÚreadÚFileNotFoundErrorr   Úsearchr   r]   r   Úis_compiledÚ
as_context)rZ   Úfile_ioÚregexÚcodeÚnew_file_iork   s         r   Ú	_check_fsr   ¨   sz   € ðØ�|‰|‹~ˆô # 4°	Ñ:€DØ�<‰<˜×ÑØÜ$ W§\¡\°4Ó8€KÜ˜oÓ;€AØ‡}�}‡�ØØ�<‰<‹>Ðøô ó Ùðús   ‚A: Á:
BÂBc                 ó  • [        5       n[        5       nUR                  5       R                  5        HÐ  nU(       a2  UR                  S5      (       d  UR                  S5      (       d  SU;   a  M>  UR	                  SS5      R                  S5      nSU;   aL  UR                  S5      nUR                  [        R                  R                  U R                  U5      5        M±  UnUR                  U R                  U45        MÒ     X#4$ )Nó   #ó   !ó   *zutf-8ÚignoreÚ/)r,   rv   Ú
splitlinesÚ
startswithÚdecodeÚrstripÚlstripr;   Úosr]   Újoin)Ú	folder_ior{   Úignored_paths_absÚignored_paths_relÚlÚpr   s          r   Úgitignored_pathsr’   ·   sÊ   € Ü›ÐÜ›Ðà�\‰\‹^×&Ñ&Ö(ˆÞ�A—L‘L ×&Ñ&¨!¯,©,°t×*<Ñ*<ÀÈÃ	Ùà�H‰H�W˜hÓ'×.Ñ.¨sÓ3ˆØ�!‹8Ø—8‘8˜C“=ˆDØ×!Ñ!¤"§'¡'§,¡,¨y¯~©~¸tÓ"DÖEàˆDØ×!Ñ! 9§>¡>°4Ð"8Ö9ñ )ð Ð/Ð/r$   c                 ó¾   • U R                   nU Vs1 s H?  o2R                  US   5      (       d  M  [        R                   R                  X#S   5      iMA     sn$ s  snf )Nr   é   )r]   r‡   r‹   rŒ   )r�   Úrelative_pathsÚ	curr_pathr‘   s       r   Úexpand_relative_ignore_pathsr—   Ê   sI   € Ø—‘€IÙ3AÓ`²>¨a×EYÑEYÐZ[Ð\]ÑZ^×E_Ó)ŒB�G‰G�L‰L˜ a¡DÖ)±>Ñ`Ð`ùÒ`s
   ‘A±&Ac              #   óþ  #   • [        U5      n[        5       nU R                  5        HË  u  p4nU HQ  nUR                  nUR                  S;   a  Xq;  a  S U4v •  UR                  S:X  d  M<  [        X65      u  p‰X-  nX)-  nMS     [        X25      n
U V s/ s HC  n U R                  U;  d  M  U R                  U
;  d  M'  U R                  5       [        ;  d  MA  U PME     sn US S & U H	  n U S 4v •  M     MÍ     g s  sn f 7f)N)z.pyz.pyiz
.gitignore)	r,   Úwalkr]   Úsuffixr   r’   r—   Úget_base_nameÚ_IGNORE_FOLDERS)r�   Úexcept_pathsÚexcept_paths_relativeÚroot_folder_ioÚ
folder_iosÚfile_iosr{   r]   rŽ   r�   Úexcept_paths_relative_expandeds              r   Ú%recurse_find_python_folders_and_filesr£   Ï   s  é € Ü�|Ó$€LÜ›EÐà09·±Ö0@Ñ,ˆ HãˆGØ—<‘<ˆDØ�{‰{˜oÓ-ØÓ+Ø ˜-Ò'à�y‰y˜LÕ(Ü7GØ"ó8Ñ4Ð!ð Ñ1�Ø%Ñ:Ò%ñ  ô *FØó*
Ð&ñ (ó
â'�	Ø�~‰~ \Ñ1ó ð —‘Ð&DÑDó ð ×'Ñ'Ó)´Ñ@÷	 Ù'ñ
ˆ
‘1ˆó $ˆIØ˜T�/Ô!ó $ò5 1Aùò&
ùs*   ‚A&C=Á,(C=ÂC8Â,C8Â>C8ÃC8ÃC=c              #   óF   #   • [        X5       H  u  pUc  M
  Uv •  M     g 7fr   )r£   )r�   r�   r{   s      r   Úrecurse_find_python_filesr¥   ñ   s#   é € ÜCÀIÖ\Ñˆ	ØÓØŒMò ]ùs   ‚!˜	!c              #   óê  ^	#   • U R                  5       n[        5       nU Vs/ s H  oDR                  5       PM     nnU Hª  nUR                  5       R                  nUc  M"  UR                  5       n UR                  m	[        U	4S jU 5       5      (       a  T	U;   a  Ma  [        Xƒ5       H  nUR                  U;  d  M  Uv •  M     UR                  T	5        UR                  5       nMy     g s  snf 7f)Nc              3   óF   >#   • U  H  nTR                  U5      v •  M     g 7fr   )r‡   )r   r‘   r]   s     €r   r   Ú1_find_python_files_in_sys_path.<locals>.<genexpr>  s   øé € Ð<²8¨a�t—‘ q×)Ð)²8ùs   ƒ!)
Úget_sys_pathr,   r^   Ú	get_valuer{   Úget_parent_folderr]   ra   r¥   r;   )
rZ   rj   Úsys_pathr�   rk   Úyielded_pathsr6   r{   r�   r]   s
            @r   Ú_find_python_files_in_sys_pathr®   ÷   s×   øé € Ø×+Ñ+Ó-€HÜ“5€LÙ-<Ó=ª_¨—\‘\–^©_€MÐ=Û)ˆØ ×*Ñ*Ó,×4Ñ4ˆØ‰?Ùà×-Ñ-Ó/ˆ	ØØ—>‘>ˆDÜÔ<±8Ó<×<Ñ<ÀÈÓ@TÙÜ4°YÖM�Ø—<‘< }Õ4Ø!”Mñ Nð ×Ñ˜TÔ"Ø!×3Ñ3Ó5ˆIñ ò *ùò >ùs   ƒC3¢C.»BC3Ã 3C3c              #   óº   #   • U Vs/ s H  o"R                  5       PM     nn[        [        U R                  R                  5      U5       S h  v•N   g s  snf  N
7fr   )r^   r¥   r   r\   r]   )rZ   rj   rk   Úexcept_s       r   Ú_find_project_modulesr±     sG   é € Ù'6Ó7¢ !�|‰|Ž~¡€GÐ7Ü(¬°/×2IÑ2I×2NÑ2NÓ)OÐQXÓY×YÑYùò 8ÙYùs   ‚A‡A .AÁAÁAc              #   ó´   #   • U H  nUR                  5       (       a  M  Uv •  M      [        U5      S::  a  g[        X5      n[        XUUS9 Sh  v•N   g N7f)z‡
Search a name in the directories of modules.

:param limit_reduction: Divides the limits on opening/parsing files by this
    factor.
é   N)Úlimit_reduction)ry   Úlenr±   Úsearch_in_file_ios)rZ   rj   r   r´   r6   Úfile_io_iterators         r   rb   rb     sb   é € ó *ˆØ×%Ñ%×'Ñ'ÙØÔñ *ô ˆ4ƒy�Aƒ~Øô
 -¨_ÓNÐÜ! /ÀTØ2AñC÷ Có Cùs   ‚AAÁAÁAc              #   óB  #   • [         U-  n[        U-  nSnSn[        R                  " S[        R                  " U5      -   U(       a  SOS-   5      n	U HF  n
US-  n[        X
U	5      nUb  US-  nUv •  X…:¼  a  [        SU5          g Xv:¼  d  M:  [        SU5          g    g 7f)Nr   z\bÚ r”   zHit limit of parsed files: %szHit limit of opened files: %s)Ú_PARSED_FILE_LIMITÚ_OPENED_FILE_LIMITÚreÚcompileÚescaper   r   )rZ   r·   r   r´   ÚcompleteÚparse_limitÚ
open_limitÚfile_io_countÚparsed_file_countr|   r{   rk   s               r   r¶   r¶   ,  s¥   é € ä$ Ñ6€KÜ# oÑ5€JØ€MØÐÜ�JŠJ�uœrŸyšy¨›Ñ.¾±#ÀuÑMÓN€EÛ#ˆØ˜ÑˆÜ�o°Ó6ˆØ‰=Ø Ñ"ÐØŠGØ Ó/ÜÐ3°[ÔAÙàÕ&ÜÐ/°Ô<Ùò $ùs   ‚BBÂB)rX   )F)r”   )r”   F)$r‹   r¼   Úparsor   Ú
jedi.debugr   Újedi.file_ior   r   Újedi.inference.namesr   Újedi.inference.importsr   Újedi.inference.filtersr	   Ú!jedi.inference.gradual.conversionr
   rœ   r»   rº   r   r#   r8   r*   r3   r/   rr   r   r’   r—   r£   r¥   r®   r±   rb   r¶   rX   r$   r   Ú<module>rË      sž   ðÛ 	Û 	å )å ß 5Ý .Ý 8Ý 3Ý ;àI€àÐ ðð Ð ðôEò ò,ò(,ò.ò$Rô 3òlò0ò&aô
"ôDò6ò*Zð 9:ôCð8 49õr$   