§
    ŒŸ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#dS )#é    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 ]S}||v rŒt          |t          ¦  «        s|V — |j        dk    r(t          |                     ¦   «         | ¦  «        E d {V —† ŒTd S )NÚmodule)Ú
isinstancer   Úapi_typeÚ_resolve_namesÚgoto)Údefinition_namesÚavoid_namesÚnames      úf/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/jedi/inference/references.pyr   r      s‰   è è € Ø ð Eð EˆØ�;ÐÐð å˜$¥Ñ.Ô.ð 	ð ˆJˆJˆJàŒ=˜HÒ$Ð$Ý% d§i¢i¡k¤kÐ3CÑDÔDÐDÐDÐDÐDÐDÐDÐDøðEð Eó    c                 ó4   — t          d„ | D ¦   «         ¦  «        S )Nc              3   ó:   K  — | ]}|j         €|n|j         |fV — Œd S ©N)Ú	tree_name©Ú.0Úns     r   ú	<genexpr>z _dictionarize.<locals>.<genexpr>.   sH   è è € ð ð àð ŒkÐ!ˆˆ q¤{°AÐ6ðð ð ð ð ð r   )Údict)Únamess    r   Ú_dictionarizer$   -   s0   € Ýð ð àðñ ô ñ ô ð r   c           	      ó   — t          | |¦  «        }t          |¦  «        D ]J}|t          t          |g|                     ¦   «                              ¦   «          d¬¦  «        ¦  «        z  }ŒK|t          t          ||j        ¦  «        ¦  «        z  }t          |¦  «        D ]T}|j        dk    s|j	        �|j	        j
        j        dk    rŒ*|t          t          |j        |j        ¦  «        ¦  «        z  }ŒUt          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_namesr8   4   s  € Ý˜n¨iÑ8Ô8€Kå�[Ñ!Ô!ð ð ˆà•s�=ØˆFØ×0Ò0Ñ2Ô2×:Ò:Ñ<Ô<Ð<Ø$)ð
ñ 
ô 
ñ ô ñ 	ˆˆð •3Õ-¨k¸9¼?ÑKÔKÑLÔLÑL€KÝ�[Ñ!Ô!ð ^ð ^ˆØŒ=˜GÒ#Ð# t¤~Ð'=Ø”>Ô(Ô-°Ò:Ð:ØØ•sÕ5°dÔ6IÈ4ÔK[Ñ\Ô\Ñ]Ô]Ñ]ˆˆÝ�~˜kÑ*Ô*Ñ+Ô+Ð+r   c                 óÐ   — |                       |¦  «        }t          |                     ¦   «         ¦  «        }|                     |¦  «         t          t	          |¦  «        ¦  «        S r   )Úcreate_namer,   r   Úaddr   )r6   r   r   r7   s       r   r*   r*   H   sR   € Ø×%Ò% iÑ0Ô0€DÝ�d—i’i‘k”kÑ"Ô"€KØ‡O‚O�DÑÔÐå�~˜kÑ*Ô*Ñ+Ô+Ð+r   c              #   óÜ   K  — | j         €d S d }	 t          | |¬¦  «        }t          |                     |¦  «        ¦  «        }|sd S |E d {V —† t	          |d„ ¬¦  «        }|d         j        }Œ_)NT)r4   Úuntil_positionc                 ó   — | j         S r   )Ú	start_pos)Úxs    r   ú<lambda>z,_add_names_in_same_context.<locals>.<lambda>^   s   € ¨a¬k€ r   )Úkeyr   )Ú	tree_noder	   r,   ÚgetÚsortedr?   )Úcontextr5   r=   Úfilter_r#   Úordereds         r   r3   r3   P   sŸ   è è € ØÔÐ Øˆà€Nð
.Ý"Ø"Ø)ð
ñ 
ô 
ˆõ �G—K’K Ñ,Ô,Ñ-Ô-ˆØð 	ØˆEØÐÐÐÐÐÐÐÝ˜Ð$9Ð$9Ð:Ñ:Ô:ˆØ  œÔ-ˆð
.r   c              #   ó.  K  — | D ]�}|j         €Œ
|                     ¦   «         }	 |j        } |¦   «                              |¦  «        D ];}|V — |                     |j         ¦  «        }t          ||j        ¦  «        E d {V —† Œ<Œ€# t          $ r Y ŒŒw xY wd S r   )r   r-   Úget_global_filterrD   Úcreate_contextr3   r5   ÚAttributeError)r#   Úsearch_namer   r6   ÚmethodÚglobal_nameÚcs          r   r/   r/   b   sä   è è € Øð Rð RˆØŒ>Ð!ØØ×.Ò.Ñ0Ô0ˆð	RØ#Ô5ˆFð  &˜v™xœxŸ|š|¨KÑ8Ô8ð Rð R�Ø!Ð!Ð!Ð!Ø"×1Ò1°+Ô2GÑHÔH�Ý5°a¸Ô9PÑQÔQÐQÐQÐQÐQÐQÐQÐQÐQðRøõ ð 	ð 	ð 	ØˆHð	øøøðRð Rs   ¤BÂ
BÂBFc                 ó  ‡ ‡— ‰ j         }|j        }	 d|_        t          ‰ |¦  «        }d|_        n# d|_        w xY wt	          |¦  «        Š‰ g}|sct          d„ |D ¦   «         ¦  «        D ]I}|‰ k    rA|j        �:|j        j        | 	                    ¦   «         j
        v r|                     |¦  «         ŒJ|st          d„ |D ¦   «         ¦  «        r|}nt          |||¦  «        }i }	|D ]õŠ ‰ j                             ¦   «                              |g ¦  «        D ]Å}
t	          t!          ‰ |
¦  «        ¦  «        }t          ˆfd„|D ¦   «         ¦  «        r]‰                     |¦  «         |D ]D}|	                     |g ¦  «        D ]}‰                     |¦  «         Œ	 |	|= Œ5# t$          $ r Y ŒAw xY wŒ—|D ]+}|	                     |g ¦  «                             |¦  «         Œ,ŒÆŒö‰                     ¦   «         }|rˆ fd„|D ¦   «         S |S )NFTc              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r   ©r-   )r   Úds     r   r!   z"find_references.<locals>.<genexpr>‚   s.   è è € Ð?Ð?¨a�Q×'Ò'Ñ)Ô)Ð?Ð?Ð?Ð?Ð?Ð?r   c              3   ó,   K  — | ]}|j         d k    V — ŒdS )r(   N)r   r   s     r   r!   z"find_references.<locals>.<genexpr>‡   s)   è è € ÐHÐH°q˜QœZ¨7Ò2ÐHÐHÐHÐHÐHÐHr   c              3   ó    •K  — | ]}|‰v V — Œ	d S r   r   )r   r   Úfound_names_dcts     €r   r!   z"find_references.<locals>.<genexpr>”   s(   øè è € ÐEÐE°I�9 Ð/ÐEÐEÐEÐEÐEÐEr   c                 óD   •— g | ]}|                      ¦   «         ‰k    ¯|‘ŒS r   rS   )r   r    r6   s     €r   ú
<listcomp>z#find_references.<locals>.<listcomp>¤   s/   ø€ ÐLÐLÐL�a Q×%7Ò%7Ñ%9Ô%9¸^Ò%KÐ%K�Ð%KÐ%KÐ%Kr   )Úinference_stater0   Úflow_analysis_enabledr8   r$   r,   rC   ÚprojectÚpathÚ
py__file__ÚparentsÚappendÚanyÚ#get_module_contexts_containing_nameÚget_used_namesrD   r*   ÚupdateÚKeyErrorÚ
setdefaultÚvalues)r6   r   Úonly_in_moduleÚinfrM   r7   Úmodule_contextsÚmÚpotential_modulesÚnon_matching_reference_mapsÚ	name_leafÚnewÚdctr   ÚresultrW   s   `              @r   Úfind_referencesrr   r   s³  øø€ Ø
Ô
(€CØ”/€Kð)Ø$)ˆÔ!Ý*¨>¸9ÑEÔEˆà$(ˆÔ!Ð!ø DˆÔ!Ð(Ð(Ð(Ð(å# KÑ0Ô0€Oà%Ð&€OØð *ÝÐ?Ð?°;Ð?Ñ?Ô?Ñ?Ô?ð 	*ð 	*ˆAØ�NÒ"Ð" q¤{Ð'>ØœÔ(¨A¯LªL©N¬NÔ,BÐBÐBØ×&Ò& qÑ)Ô)Ð)øàð 
�ÐHÐH¸KÐHÑHÔHÑHÔHð 
Ø+ÐÐå?ØØØñ
ô 
Ðð #%ÐØ+ð Qð QˆØ'Ô1×@Ò@ÑBÔB×FÒFÀ{ÐTVÑWÔWð 	Qð 	QˆIÝ¥¨N¸IÑ FÔ FÑGÔGˆCÝÐEÐEÐEÐEÀÐEÑEÔEÑEÔEð QØ×&Ò& sÑ+Ô+Ð+Ø!$ð ð �IØ:×>Ò>¸yÈ"ÑMÔMð 4ð 4˜ð (×.Ò.¨sÑ3Ô3Ð3Ð3ðØ7¸	ÐBÐBøÝ#ð ð ð Ø˜ðøøøðð  ð Qð Q�DØ/×:Ò:¸4ÀÑDÔD×KÒKÈCÑPÔPÐPÐPðQð	Qð  ×#Ò#Ñ%Ô%€FØð MØLÐLÐLÐL˜6ÐLÑLÔLÐLØ€Ms   ’1 ±	:ÆFÆ
F)	Æ(F)	c                 ó>  — 	 |                      ¦   «         }n# t          $ r Y d S w xY wt          |d¬¦  «        }|                     |¦  «        sd S t	          |j        |¦  «        }t          | |¦  «        }|                     ¦   «         rd S |                     ¦   «         S )NÚreplace)Úerrors)	ÚreadÚFileNotFoundErrorr   Úsearchr   r]   r   Úis_compiledÚ
as_context)rZ   Úfile_ioÚregexÚcodeÚnew_file_iork   s         r   Ú	_check_fsr   ¨   s¦   € ðØ�|Š|‰~Œ~ˆˆøÝð ð ð Øˆtˆtðøøøå" 4°	Ð:Ñ:Ô:€DØ�<Š<˜ÑÔð ØˆtÝ$ W¤\°4Ñ8Ô8€KÝ˜o¨{Ñ;Ô;€AØ‡}‚}�„ð ØˆtØ�<Š<‰>Œ>Ðs   ‚ —
%¤%c                 ó(  — t          ¦   «         }t          ¦   «         }|                     ¦   «                              ¦   «         D ]Ì}|r.|                     d¦  «        s|                     d¦  «        sd|v rŒ3|                     dd¦  «                             d¦  «        }d|v rN|                     d¦  «        }|                     t          j	         
                    | j	        |¦  «        ¦  «         Œ®|}|                     | j	        |f¦  «         ŒÍ||fS )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Ô3ˆØ�!ˆ8ˆ8Ø—8’8˜C‘=”=ˆDØ×!Ò!¥"¤'§,¢,¨y¬~¸tÑ"DÔ"DÑEÔEÐEÐEàˆDØ×!Ò! 9¤>°4Ð"8Ñ9Ô9Ð9Ð9àÐ/Ð/Ð/r   c                 ó.   ‡— | j         Šˆfd„|D ¦   «         S )Nc                 ó’   •— h | ]C}‰                      |d          ¦  «        ¯t          j                             ‰|d         ¦  «        ’ŒDS )r   é   )r‡   r‹   r]   rŒ   )r   r‘   Ú	curr_paths     €r   ú	<setcomp>z/expand_relative_ignore_paths.<locals>.<setcomp>Ì   sG   ø€ Ð`Ð`Ð`¨aÀY×EYÒEYÐZ[Ð\]ÔZ^ÑE_ÔE_Ð`�BŒG�LŠL˜ A a¤DÑ)Ô)Ð`Ð`Ð`r   )r]   )r�   Úrelative_pathsr–   s     @r   Úexpand_relative_ignore_pathsr™   Ê   s$   ø€ Ø”€IØ`Ð`Ð`Ð`°>Ð`Ñ`Ô`Ð`r   c              #   ój  ‡‡
K  — t          ‰¦  «        Št          ¦   «         }|                      ¦   «         D ]|\  }}}|D ]D}|j        }|j        dv r
|‰vrd |fV — |j        dk    rt          ||¦  «        \  }}	‰|z  Š||	z  }ŒEt          ||¦  «        Š
ˆˆ
fd„|D ¦   «         |d d …<   |D ]} | d fV — Œ	Œ}d S )N)z.pyz.pyiz
.gitignorec                 ón   •— g | ]1}|j         ‰vr&|j         ‰vr|                     ¦   «         t          v¯/|‘Œ2S r   )r]   Úget_base_nameÚ_IGNORE_FOLDERS)r   r�   Úexcept_pathsÚexcept_paths_relative_expandeds     €€r   rY   z9recurse_find_python_folders_and_files.<locals>.<listcomp>æ   sX   ø€ ð 
ð 
ð 
àØŒ~ \Ð1Ð1Ø”Ð&DÐDÐDØ×'Ò'Ñ)Ô)µÐ@Ð@ð	 ð AÐ@Ð@r   )r,   Úwalkr]   Úsuffixr   r’   r™   )r�   rž   Úexcept_paths_relativeÚroot_folder_ioÚ
folder_iosÚfile_iosr{   r]   rŽ   r�   rŸ   s    `        @r   Ú%recurse_find_python_folders_and_filesr¦   Ï   s=  øøè è € Ý�|Ñ$Ô$€LÝ™EœEÐà09·²Ñ0@Ô0@ð "ð "Ñ,ˆ˜
 Hàð 	;ð 	;ˆGØ”<ˆDØŒ{˜oÐ-Ð-Ø˜|Ð+Ð+Ø ˜-Ð'Ð'Ð'àŒy˜LÒ(Ð(Ý7GØ" Gñ8ô 8Ñ4Ð!Ð#4ð Ð 1Ñ1�Ø%Ð):Ñ:Ð%øå)EØÐ1ñ*
ô *
Ð&ð
ð 
ð 
ð 
ð 
à'ð
ñ 
ô 
ˆ
�1�1�1‰ð $ð 	"ð 	"ˆIØ˜T�/Ð!Ð!Ð!Ð!ð	"ð5"ð "r   c              #   óB   K  — t          | |¦  «        D ]\  } }|�|V — Œd S r   )r¦   )r�   rž   r{   s      r   Úrecurse_find_python_filesr¨   ñ   s>   è è € ÝCÀIÈ|Ñ\Ô\ð ð Ñˆ	�7ØÐØˆMˆMˆMøðð r   c              #   ó¶  ‡K  — |                       ¦   «         }t          ¦   «         }d„ |D ¦   «         }|D ]¤}|                     ¦   «         j        }|€Œ|                     ¦   «         }	 |j        Št          ˆfd„|D ¦   «         ¦  «        r‰|v rnJt          ||¦  «        D ]}|j        |vr|V — Œ|                     ‰¦  «         |                     ¦   «         }ŒqŒ¥d S )Nc                 ó6   — g | ]}|                      ¦   «         ‘ŒS r   ©r^   ©r   rk   s     r   rY   z2_find_python_files_in_sys_path.<locals>.<listcomp>ú   s    € Ð=Ð=Ð=¨�Q—\’\‘^”^Ð=Ð=Ð=r   Tc              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S r   )r‡   )r   r‘   r]   s     €r   r!   z1_find_python_files_in_sys_path.<locals>.<genexpr>  s/   øè è € Ð<Ð<¨a�t—’ qÑ)Ô)Ð<Ð<Ð<Ð<Ð<Ð<r   )	Úget_sys_pathr,   Ú	get_valuer{   Úget_parent_folderr]   ra   r¨   r;   )	rZ   rj   Úsys_pathrž   Úyielded_pathsr6   r{   r�   r]   s	           @r   Ú_find_python_files_in_sys_pathr³   ÷   s  øè è € Ø×+Ò+Ñ-Ô-€HÝ‘5”5€LØ=Ð=¨_Ð=Ñ=Ô=€MØ)ð 6ð 6ˆØ ×*Ò*Ñ,Ô,Ô4ˆØˆ?Øà×-Ò-Ñ/Ô/ˆ	ð	6Ø”>ˆDÝÐ<Ð<Ð<Ð<°8Ð<Ñ<Ô<Ñ<Ô<ð ÀÈÐ@TÐ@TØÝ4°YÀÑMÔMð "ð "�Ø”< }Ð4Ð4Ø!�M�M�MøØ×Ò˜TÑ"Ô"Ð"Ø!×3Ò3Ñ5Ô5ˆIð	6ð ð6ð 6r   c              #   ó|   K  — d„ |D ¦   «         }t          t          | j        j        ¦  «        |¦  «        E d {V —† d S )Nc                 ó6   — g | ]}|                      ¦   «         ‘ŒS r   r«   r¬   s     r   rY   z)_find_project_modules.<locals>.<listcomp>  s    € Ð7Ð7Ð7 !ˆq�|Š|‰~Œ~Ð7Ð7Ð7r   )r¨   r   r\   r]   )rZ   rj   Úexcept_s      r   Ú_find_project_modulesr·     sP   è è € Ø7Ð7 Ð7Ñ7Ô7€GÝ(­°/Ô2IÔ2NÑ)OÔ)OÐQXÑYÔYÐYÐYÐYÐYÐYÐYÐYÐYÐYr   r•   c              #   óÂ   K  — |D ]}|                      ¦   «         rŒ|V — Œt          |¦  «        dk    rdS t          | |¦  «        }t          | |||¬¦  «        E d{V —† dS )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     sº   è è € ð *ð ð ˆØ×%Ò%Ñ'Ô'ð 	ØØÐÐÐÐõ ˆ4�y„y�A‚~€~Øˆõ
 -¨_¸oÑNÔNÐÝ! /Ð3CÀTØ2AðCñ Cô Cð Cð Cð Cð Cð Cð Cð Cð Cð Cr   c              #   óJ  K  — t           |z  }t          |z  }d}d}t          j        dt          j        |¦  «        z   |rdndz   ¦  «        }	|D ]U}
|dz  }t          | |
|	¦  «        }|�"|dz  }|V — ||k    rt          d|¦  «          d S ||k    rt          d|¦  «          d S ŒVd S )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�u�rœy¨™œÑ.¸Ð2L°#°#ÀuÑMÑNÔN€EØ#ð ð ˆØ˜ÑˆÝ�o w°Ñ6Ô6ˆØˆ=Ø Ñ"ÐØˆGˆGˆGØ  KÒ/Ð/ÝÐ3°[ÑAÔAÐAØ��à˜JÒ&Ð&ÝÐ/°Ñ<Ô<Ð<ØˆEˆEð 'ðð r   )r   )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¼   r   r   r   ú<module>rÑ      sí  ðØ 	€	€	€	Ø 	€	€	€	à )Ð )Ð )Ð )Ð )Ð )à Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø .Ð .Ð .Ð .Ð .Ð .Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;àI€àÐ ðð Ð ððEð Eð Eð Eð ð ð ð,ð ,ð ,ð(,ð ,ð ,ð.ð .ð .ð$Rð Rð Rð 3ð 3ð 3ð 3ðlð ð ð0ð 0ð 0ð&að að að
"ð "ð "ð "ðDð ð ð ð6ð 6ð 6ð*Zð Zð Zð 9:ðCð Cð Cð Cð8 49ðð ð ð ð ð r   