/ lib / jedi / inference / references.pyc
references.pyc
 1  o

 2  )��c�,�@sddlZddlZddlmZddlmZddlmZmZddl	m
 3  Z
 4  ddlmZddl
mZddlmZd	Zd
 5  Z	dZ	d/d
d�Zdd�Zdd�Zdd�Zdd�Zdd�Zd0dd�Zdd�Zdd�Zd d!�Zd/d"d#�Zd/d$d%�Zd&d'�Z d(d)�Z!	*d1d+d,�Z"	d2d-d.�Z#dS)3�N)�python_bytes_to_unicode)�dbg)�KnownContentFileIO�FolderIO)�
SubModuleName)�load_module_from_path)�ParserTreeFilter)�
convert_names)z.toxz.venvz.mypy_cache�venv�__pycache__i���ccsH�|D]}||vr
 6  qt|t�s|V|jdkr!t|��|�EdHqdS)N�module)�
 7  isinstancer�api_type�_resolve_names�goto)Zdefinition_namesZavoid_names�namer
r
��C:\Users\Jacks.GUTTSPC\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jedi\inference\references.pyrs�
 8  
 9  ��rcCstdd�|D��S)Ncss(�|]}|jdur|n|j|fVqdS�N)�	tree_name��.0�nr
r
r�	<genexpr>.s
10  ��
11  �z _dictionarize.<locals>.<genexpr>)�dict)�namesr
r
r�
_dictionarize-s�rcCs�t||�}t|�D]}|tt|g|����dd��O}q	|tt||j��O}t|�D]}|jdks>|j	dus>|j	j
12  jdkr?q+|tt|j
|j��O}q+tt|��S)NF)�
13  only_stubs�prefer_stub_to_compiled�param�trailer)�_find_names�list�setr	�get_root_context�is_stub�_find_global_variables�valuerr�parent�type�_add_names_in_same_context�parent_context�string_namer)�module_contextr�found_namesrr
r
r�_find_defining_names4s
14  �r0cCs,|�|�}t|���}|�|�tt|��Sr)�create_namer$r�addr)r.rrr/r
r
rr"Hs
15  
16  r"ccs^�|jdurdSd}	t||d�}t|�|��}|sdS|EdHt|dd�d�}|dj}q)NT)r,�until_positioncSs|jSr)�	start_pos)�xr
r
r�<lambda>^sz,_add_names_in_same_context.<locals>.<lambda>)�keyr)�	tree_noderr$�get�sortedr4)�contextr-r3�filter_r�orderedr
r
rr+Ps �
17  �
18  
19  �r+c	csx�|D]6}|jdurq|��}z|j}Wn	tyYqw|��|�D]}|V|�|j�}t||j�EdHq$qdSr)rr%�get_global_filter�AttributeErrorr9�create_contextr+r-)r�search_namerr.�method�global_name�cr
r
rr'bs �
20  
21  ���r'Fcs��j}|j}z
d|_t�|�}Wd|_nd|_wt|���g}|sDtdd�|D��D]}|�krC|jdurC|jj|�	�j
22  vrC|�|�q*|sOtdd�|D��rR|}nt
|||�}i}	|D]U��j���|g�D]I}
23  tt�|
24  ��}t�fdd�|D��r���|�|D]}|	�|g�D]}��|�q�z|	|=Wq�ty�Yq�wqg|D]}
|	�|
g��|�q�qgq\���}|r��fdd�|D�S|S)	NFTcss�|]}|��VqdSr�r%)r�dr
r
rr���z"find_references.<locals>.<genexpr>css�|]}|jdkVqdS)r N)rrr
r
rr���c3s�|]}|�vVqdSrr
)rr)�found_names_dctr
rr�rGcsg|]
25  }|���kr|�qSr
rEr)r.r
r�
26  <listcomp>�sz#find_references.<locals>.<listcomp>)�inference_stater(�flow_analysis_enabledr0rr$r8�project�path�
27  py__file__�parents�append�any�#get_module_contexts_containing_name�get_used_namesr9r"�update�KeyError�
28  setdefault�values)r.rZonly_in_module�infrAr/�module_contexts�mZpotential_modulesZnon_matching_reference_maps�	name_leaf�new�dctr�resultr
)rIr.r�find_referencesrsX
29  ��
30  
31  ��
32  ��r`cCsfz|��}Wn
33  tyYdSwt|dd�}|�|�sdSt|j|�}t||�}|��r/dS|��S)N�replace)�errors)	�read�FileNotFoundErrorr�searchrrNr�is_compiled�
34  as_context)rK�file_io�regex�codeZnew_file_ior[r
r
r�	_check_fs�s�
35  
36  rkcCs�t�}t�}|����D];}|r|�d�s|�d�sd|vrq|�dd��d�}d|vr=|�d�}|�tj	�
37  |j	|��q|}|�|j	|f�q||fS)N�#�!�*zutf-8�ignore�/)r$rc�
38  splitlines�
39  startswith�decode�rstrip�lstripr2�osrN�join)�	folder_iorh�ignored_paths_abs�ignored_paths_rel�l�prr
r
r�gitignored_paths�s 
40  r}cs|j��fdd�|D�S)Ncs,h|]}��|d�rtj��|d��qS)r�)rrrvrNrw�rr|�Z	curr_pathr
r�	<setcomp>�s,z/expand_relative_ignore_paths.<locals>.<setcomp>�rN)rxZrelative_pathsr
r�r�expand_relative_ignore_paths�sr�c
41  #s��t���t�}|��D]L\}}}|D]'}|j}|jdvr&|�vr&d|fV|jdkr:t||�\}}	�|O�||	O}qt||����fdd�|D�|dd�<|D]}|dfVqPqdS)N)z.pyz.pyiz
42  .gitignorecs0g|]}|j�vr|j�vr|��tvr|�qSr
)rN�
get_base_name�_IGNORE_FOLDERS)rrx��except_pathsZexcept_paths_relative_expandedr
rrJ�s
43  
44  �z9recurse_find_python_folders_and_files.<locals>.<listcomp>)r$�walkrN�suffixrr}r�)
45  rxr�Zexcept_paths_relative�root_folder_ioZ
46  folder_ios�file_iosrhrNryrzr
r�r�%recurse_find_python_folders_and_files�s4�
47  
48  
49  ������r�ccs(�t||�D]\}}|dur|VqdSr)r�)rxr�rhr
r
r�recurse_find_python_files�s���r�c#s��|��}t�}dd�|D�}|D]>}|��j}|durq|��}	|j�t�fdd�|D��r4�|vr5nt||�D]
50  }|j|vrD|Vq:|���|��}q"qdS)NcS�g|]}|���qSr
�rO�rr[r
r
rrJ��z2_find_python_files_in_sys_path.<locals>.<listcomp>Tc3s�|]}��|�VqdSr)rrrr�r
rrrHz1_find_python_files_in_sys_path.<locals>.<genexpr>)	�get_sys_pathr$�	get_valuerh�get_parent_folderrNrRr�r2)rKrZ�sys_pathr�Z
yielded_pathsr.rhrxr
r�r�_find_python_files_in_sys_path�s,�
51  
52  �
53  ��r�ccs,�dd�|D�}tt|jj�|�EdHdS)NcSr�r
r�r�r
r
rrJ
r�z)_find_project_modules.<locals>.<listcomp>)r�rrMrN)rKrZ�except_r
r
r�_find_project_moduless�r�r~ccsP�|D]
54  }|��r
55  q|Vqt|�dkrdSt||�}t||||d�EdHdS)z�
56      Search a name in the directories of modules.
57  
58      :param limit_reduction: Divides the limits on opening/parsing files by this
59          factor.
60      �N)�limit_reduction)rf�lenr��search_in_file_ios)rKrZrr�r.�file_io_iteratorr
r
rrSs�	
61  �rSccs��t|}t|}d}d}t�dt�|�|rdnd�}	|D]/}
62  |d7}t||
63  |	�}|durB|d7}|V||krBtd|�dS||krNtd|�dSqdS)Nrz\b�r~zHit limit of parsed files: %szHit limit of opened files: %s)�_PARSED_FILE_LIMIT�_OPENED_FILE_LIMIT�re�compile�escaperkr)rKr�rr��completeZparse_limitZ
64  open_limitZ
file_io_countZparsed_file_countrirhr[r
r
rr�,s(� 
65  
66  ��r�)r
)F)r~)r~F)$rvr��parsor�
67  jedi.debugr�jedi.file_iorr�jedi.inference.namesr�jedi.inference.importsr�jedi.inference.filtersr�!jedi.inference.gradual.conversionr	r�r�r�rrr0r"r+r'r`rkr}r�r�r�r�r�rSr�r
r
r
r�<module>s@
68  
69  6
70  
71  "
72  ��