Ë
    ¬;j�,  ã                   óì   — d dl Z d dlZd dlmZ d dl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 d	Zd
Z	 dZ	 dd„Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zdd„Zdd„Zd„ Z d„ Z!	 dd„Z"	 dd„Z#y) é    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              #   ó´   K  — | D ]M  }||v rŒt        |t        «      s|–— |j                  dk(  sŒ,t        |j	                  «       | «      E d {  –—†  ŒO y 7 Œ­w)NÚmodule)Ú
isinstancer   Úapi_typeÚ_resolve_namesÚgoto)Údefinition_namesÚavoid_namesÚnames      új/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/jedi/inference/references.pyr   r      sW   è ø€ Û ˆØ�;Ñð ä˜$¤Ô.ð ŠJà�=‰=˜HÓ$Ü% d§i¡i£kÐ3CÓD×DÑDñ !ð Eús   ‚.A±AÁAÁAc                 ó&   — t        d„ | D «       «      S )Nc              3   óT   K  — | ]   }|j                   €|n|j                   |f–— Œ" y ­w©N)Ú	tree_name©Ú.0Úns     r   Ú	<genexpr>z _dictionarize.<locals>.<genexpr>.   s,   è ø€ ð áˆAð �k‰kÐ!‰ q§{¡{°AÔ6Ùùs   ‚&()Údict)Únamess    r   Ú_dictionarizer"   -   s   € Üñ áóó ð ó    c           	      ó  — t        | |«      }t        |«      D ]:  }|t        t        |g|j	                  «       j                  «        d¬«      «      z  }Œ< |t        t        ||j                  «      «      z  }t        |«      D ]m  }|j                  dk(  s/|j                  �#|j                  j                  j                  dk(  rŒB|t        t        |j                  |j                  «      «      z  }Œo t        t        |«      «      S )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_namesr7   4   sæ   € Ü˜n¨iÓ8€Kä�[Ö!ˆà”sœ=ØˆFØ×0Ñ0Ó2×:Ñ:Ó<Ð<Ø$)ô
ó ñ 	‰ð "ð ”3Ô-¨k¸9¿?¹?ÓKÓLÑL€KÜ�[Ö!ˆØ�=‰=˜GÒ# t§~¡~Ð'=Ø—>‘>×(Ñ(×-Ñ-°Ò:ØØ”sÔ5°d×6IÑ6IÈ4×K[ÑK[Ó\Ó]Ñ]‰ð	 "ô
 Œ~˜kÓ*Ó+Ð+r#   c                 ó    — | j                  |«      }t        |j                  «       «      }|j                  |«       t        t	        |«      «      S r   )Úcreate_namer+   r   Úaddr   )r5   r   r   r6   s       r   r)   r)   H   s>   € Ø×%Ñ% iÓ0€DÜ�d—i‘i“kÓ"€KØ‡O�O�DÔäŒ~˜kÓ*Ó+Ð+r#   c              #   óÒ   K  — | j                   €y d }	 t        | |¬«      }t        |j                  |«      «      }|sy |E d {  –—†  t	        |d„ ¬«      }|d   j
                  }ŒR7 Œ"­w)N)r3   Úuntil_positionc                 ó   — | j                   S r   )Ú	start_pos)Úxs    r   Ú<lambda>z,_add_names_in_same_context.<locals>.<lambda>^   s   € ¨a¯kªkr#   )Úkeyr   )Ú	tree_noder	   r+   ÚgetÚsortedr>   )Úcontextr4   r<   Úfilter_r!   Úordereds         r   r2   r2   P   sw   è ø€ Ø×ÑÐ Øà€NØ
Ü"Ø"Ø)ô
ˆô �G—K‘K Ó,Ó-ˆÙØØ×ÐÜ˜Ñ$9Ô:ˆØ  ™×-Ñ-ˆð ð 	ús   ‚A A'ÁA%Á#A'c              #   ó@  K  — | D ]„  }|j                   €Œ|j                  «       }	 |j                  } |«       j                  |«      D ]?  }|–— |j	                  |j                   «      }t        ||j                  «      E d {  –—†  ŒA Œ† y 7 Œ	# t        $ r Y Œ•w xY w­wr   )r   r,   Úget_global_filterrC   Úcreate_contextr2   r4   ÚAttributeError)r!   Úsearch_namer   r5   Ú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                 óö  ‡— | j                   }|j                  }	 d|_        t        | |«      }d|_        t	        |«      Š| g}|slt        d„ |D «       «      D ]W  }|| k7  sŒ	|j                  €Œ|j                  j                  |j                  «       j                  v sŒG|j                  |«       ŒY |st        d„ |D «       «      r|}nt        |||«      }i }	|D ]Ç  } | j                  j                  «       j                  |g «      D ]˜  }
t	        t!        | |
«      «      }t        ˆfd„|D «       «      rE‰j#                  |«       |D ].  }|	j                  |g «      D ]  }‰j#                  |«       Œ 	 |	|= Œ0 Œq|D ]#  }|	j'                  |g «      j                  |«       Œ% Œš ŒÉ ‰j)                  «       }|r$|D �cg c]  }|j+                  «       | k(  sŒ|‘Œ c}S |S # d|_        w xY w# t$        $ r Y Œ­w xY wc c}w )NFTc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr   )r,   )r   Úds     r   r   z"find_references.<locals>.<genexpr>‚   s   è ø€ Ð?±;¨a�Q×'Ñ'×)±;ùs   ‚c              3   ó:   K  — | ]  }|j                   d k(  –— Œ y­w)r'   N)r   r   s     r   r   z"find_references.<locals>.<genexpr>‡   s   è ø€ ÐH¹K°q˜QŸZ™Z¨7Õ2¹Kùs   ‚c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr   © )r   r   Úfound_names_dcts     €r   r   z"find_references.<locals>.<genexpr>”   s   øè ø€ ÐEÁ°I�9 Ô/Áùs   ƒ)Úinference_stater/   Úflow_analysis_enabledr7   r"   r+   rB   ÚprojectÚpathÚ
py__file__ÚparentsÚappendÚanyÚ#get_module_contexts_containing_nameÚget_used_namesrC   r)   ÚupdateÚKeyErrorÚ
setdefaultÚvaluesr,   )r5   r   Úonly_in_moduleÚinfrL   r6   Úmodule_contextsÚmÚpotential_modulesÚnon_matching_reference_mapsÚ	name_leafÚnewÚdctr   Úresultr   rV   s                   @r   Úfind_referencesro   r   sü  ø€ Ø
×
(Ñ
(€CØ—/‘/€Kð)Ø$)ˆÔ!Ü*¨>¸9ÓEˆà$(ˆÔ!ä# KÓ0€Oà%Ð&€OÙÜÑ?±;Ó?Ö?ˆAØ�NÓ" q§{¡{Ñ'>ØŸ™×(Ñ(¨A¯L©L«N×,BÑ,BÒBØ×&Ñ& qÕ)ð @ñ
 œÑH¹KÓHÔHØ+Ñä?ØØØó
Ðð #%ÐÛ+ˆØ'×1Ñ1×@Ñ@ÓB×FÑFÀ{ÐTVÖWˆIÜ¤¨N¸IÓ FÓGˆCÜÓEÁÓEÔEØ×&Ñ& sÔ+Û!$�IØ:×>Ñ>¸yÈ"ÖM˜ð (×.Ñ.¨sÕ3ð  NðØ7¸	ÑBñ "%ó  �DØ/×:Ñ:¸4ÀÓD×KÑKÈCÕPñ  ñ Xð ,ð" ×#Ñ#Ó%€FÙÙ!ÓL™6�a Q×%7Ñ%7Ó%9¸^Ó%K’˜6ÑLÐLØ€MøðS %)ˆÕ!ûôB $ò Ùðüò Ms)   ›G Å1G'Æ9G6ÇG6Ç	G$Ç'	G3	Ç2G3	c                 ó  — 	 |j                  «       }t        |d¬«      }|j                  |«      sy t	        |j
                  |«      }t        | |«      }|j                  «       ry |j                  «       S # t        $ r Y y w xY w)NÚreplace)Úerrors)	ÚreadÚFileNotFoundErrorr   Úsearchr   rZ   r   Úis_compiledÚ
as_context)rW   Úfile_ioÚregexÚcodeÚnew_file_iorh   s         r   Ú	_check_fsr|   ¨   sw   € ðØ�|‰|‹~ˆô # 4°	Ô:€DØ�<‰<˜ÔØÜ$ W§\¡\°4Ó8€KÜ˜o¨{Ó;€AØ‡}�}„ØØ�<‰<‹>Ðøô ò Ùðús   ‚A4 Á4	B Á?B c                 óè  — t        «       }t        «       }|j                  «       j                  «       D ]º  }|r&|j                  d«      s|j                  d«      sd|v rŒ,|j	                  dd«      j                  d«      }d|v rK|j                  d«      }|j                  t        j                  j                  | j                  |«      «       Œœ|}|j                  | j                  |f«       Œ¼ ||fS )Nó   #ó   !ó   *zutf-8ÚignoreÚ/)r+   rs   Ú
splitlinesÚ
startswithÚdecodeÚrstripÚlstripr:   ÚosrZ   Újoin)Ú	folder_iorx   Ú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                 ó°   — | j                   }|D �ch c]:  }|j                  |d   «      sŒt        j                   j                  ||d   «      ’Œ< c}S c c}w )Nr   é   )rZ   r„   rˆ   r‰   )rŠ   Úrelative_pathsÚ	curr_pathrŽ   s       r   Úexpand_relative_ignore_pathsr”   Ê   sJ   € Ø—‘€IÙ3AÓ`±>¨aÀY×EYÑEYÐZ[Ð\]ÑZ^ÕE_ŒB�G‰G�L‰L˜ A a¡DÕ)°>Ñ`Ð`ùÒ`s
   ‘A«%Ac              #   óÖ  K  — t        |«      }t        «       }| j                  «       D ]¸  \  }}}|D ]O  }|j                  }|j                  dv r
||vrd |f–— |j                  dk(  sŒ7t        ||«      \  }}	||z  }||	z  }ŒQ t        ||«      }
|D � cg c]6  } | j                  |vr&| j                  |
vr| j                  «       t        vr| ‘Œ8 c} |d d  |D ]  } | d f–— Œ
 Œº y c c} w ­w)N)z.pyz.pyiz
.gitignore)	r+   ÚwalkrZ   Úsuffixr   r�   r”   Úget_base_nameÚ_IGNORE_FOLDERS)rŠ   Úexcept_pathsÚexcept_paths_relativeÚroot_folder_ioÚ
folder_iosÚfile_iosrx   rZ   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Ø" Gó8Ñ4Ð!Ð#4ð Ð 1Ñ1�Ø%Ð):Ñ:Ñ%ð  ô *FØÐ1ó*
Ð&ñ (ó
á'�	Ø�~‰~ \Ñ1Ø—‘Ð&DÑDØ×'Ñ'Ó)´Ñ@ò	 Ø'ñ
ˆ
‘1ˆó $ˆIØ˜T�/Ó!ñ $ñ5 1Aùò&
ùs   ‚A%C)Á(+C)Â;C$ÃC)c              #   óB   K  — t        | |«      D ]  \  } }|€Œ	|–— Œ y ­wr   )r    )rŠ   rš   rx   s      r   Úrecurse_find_python_filesr¢   ñ   s(   è ø€ ÜCÀIÈ|Ö\Ñˆ	�7ØÑØ‹Mñ ]ùs   ‚˜c              #   óÄ  ‡	K  — | j                  «       }t        «       }|D �cg c]  }|j                  «       ‘Œ }}|D ]š  }|j                  «       j                  }|€Œ |j                  «       }	 |j                  Š	t        ˆ	fd„|D «       «      r‰	|v rŒVt        ||«      D ]  }|j                  |vsŒ|–— Œ |j                  ‰	«       |j                  «       }Œk y c c}w ­w)Nc              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr   )r„   )r   rŽ   rZ   s     €r   r   z1_find_python_files_in_sys_path.<locals>.<genexpr>  s   øè ø€ Ð<±8¨a�t—‘ q×)±8ùs   ƒ)
Úget_sys_pathr+   r[   Ú	get_valuerx   Úget_parent_folderrZ   r^   r¢   r:   )
rW   rg   Úsys_pathrš   rh   Úyielded_pathsr5   rx   rŠ   rZ   s
            @r   Ú_find_python_files_in_sys_pathrª   ÷   sÙ   øè ø€ Ø×+Ñ+Ó-€HÜ“5€LÙ-<Ó=©_¨�Q—\‘\•^¨_€MÐ=Û)ˆØ ×*Ñ*Ó,×4Ñ4ˆØˆ?Øà×-Ñ-Ó/ˆ	ØØ—>‘>ˆDÜÓ<±8Ó<Ô<ÀÈÑ@TØÜ4°YÀÖM�Ø—<‘< }Ò4Ø!“Mð Nð ×Ñ˜TÔ"Ø!×3Ñ3Ó5ˆIð ñ *ùò >ùs   ƒC ¢C¹A7C Â1/C c              #   ó¶   K  — |D �cg c]  }|j                  «       ‘Œ }}t        t        | j                  j                  «      |«      E d {  –—†  y c c}w 7 Œ
­wr   )r[   r¢   r   rY   rZ   )rW   rg   rh   Úexcept_s       r   Ú_find_project_modulesr­     sJ   è ø€ Ù'6Ó7¡ !ˆq�|‰|�~ €GÐ7Ü(¬°/×2IÑ2I×2NÑ2NÓ)OÐQXÓY×YÑYùò 8ØYús   ‚A‡Až.AÁAÁAc              #   ó¬   K  — |D ]  }|j                  «       rŒ|–— Œ t        |«      dk  ryt        | |«      }t        | |||¬«      E d{  –—†  y7 Œ­w)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)rv   Úlenr­   Úsearch_in_file_ios)rW   rg   r   r°   r5   Úfile_io_iterators         r   r_   r_     se   è ø€ ó *ˆØ×%Ñ%Ô'ØØÓð *ô ˆ4ƒy�A‚~Øô
 -¨_¸oÓNÐÜ! /Ð3CÀTØ2AôC÷ Cò Cús   ‚A
AÁAÁAc              #   ó0  K  — t         |z  }t        |z  }d}d}t        j                  dt        j                  |«      z   |rdndz   «      }	|D ]E  }
|dz  }t        | |
|	«      }|�|dz  }|–— ||k\  rt        d|«        y ||k\  sŒ9t        d|«        y  y ­w)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   )rW   r³   r   r°   ÚcompleteÚparse_limitÚ
open_limitÚfile_io_countÚparsed_file_country   rx   rh   s               r   r²   r²   ,  s¬   è ø€ ä$ Ñ6€KÜ# oÑ5€JØ€MØÐÜ�J‰J�uœrŸy™y¨›Ñ.¹±#ÀuÑMÓN€EÛ#ˆØ˜ÑˆÜ�o w°Ó6ˆØˆ=Ø Ñ"ÐØŠGØ  KÒ/ÜÐ3°[ÔAÙà˜JÓ&ÜÐ/°Ô<Ùñ $ùs   ‚BBÂB)rU   )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"   r7   r)   r2   r.   ro   r|   r�   r”   r    r¢   rª   r­   r_   r²   rU   r#   r   Ú<module>rÇ      sž   ðÛ 	Û 	å )å ß 5Ý .Ý 8Ý 3Ý ;àI€àÐ ðð Ð ðóEò ò,ò(,ò.ò$Ró 3òlò0ò&aó
"óDò6ò*Zð 9:óCð8 49ôr#   