Format: application/x-python-code
⬇ Download File (8.4 KB)
   1  o
   2  
   3  �h�,�@sddlZddlZddlmZddlmZddlmZmZddl	m
   4  Z
   5  ddlmZddl
   6  mZddlmZd	Zd
   7  Z	dZ	d/d
   8  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)�
   9  SubModuleName)�load_module_from_path)�ParserTreeFilter)�
  10  convert_names)z.toxz.venvz.mypy_cache�venv�__pycache__i���ccsH�|D]}||vr
  11  qt|t�s|V|jdkr!t|��|�EdHqdS)N�module)�
  12  isinstancer�api_type�_resolve_names�goto)Zdefinition_namesZavoid_names�namer
  13  r
  14  �Oc:\Users\shubh\Videos\agent\nova\Lib\site-packages\jedi/inference/references.pyrs�
  15  
  16  ��rcCstdd�|D��S)Ncss(�|]}|jdur|n|j|fVqdS�N)�	tree_name��.0�nr
  17  r
  18  r�	<genexpr>.s
  19  ��
  20  �z _dictionarize.<locals>.<genexpr>)�dict)�namesr
  21  r
  22  r�
  23  _dictionarize-s�rcCs�t||�}t|�D]}|tt|g|����dd��O}q	|tt||j��O}t|�D]}|jdks>|j	dus>|j	j
  24  jdkr?q+|tt|j
  25  |j��O}q+tt|��S)NF)Z
  26  only_stubsZprefer_stub_to_compiled�param�trailer)�_find_names�list�setr	�get_root_contextZis_stub�_find_global_variables�valuerr�parent�type�_add_names_in_same_context�parent_context�string_namer)�module_contextr�found_namesrr
  27  r
  28  r�_find_defining_names4s
  29  �r-cCs,|�|�}t|���}|�|�tt|��Sr)Zcreate_namer"r�addr)r+rrr,r
  30  r
  31  rr Hs
  32  
  33  r ccs^�|jdurdSd}	t||d�}t|�|��}|sdS|EdHt|dd�d�}|dj}q)NT)r)�until_positioncSs|jSr)�	start_pos)�xr
  34  r
  35  r�<lambda>^sz,_add_names_in_same_context.<locals>.<lambda>)�keyr)�	tree_noderr"�get�sortedr0)�contextr*r/�filter_rZorderedr
  36  r
  37  rr(Ps �
  38  �
  39  
  40  �r(c	csx�|D]6}|jdurq|��}z|j}Wn	tyYqw|��|�D]}|V|�|j�}t||j�EdHq$qdSr)rr#Zget_global_filter�AttributeErrorr5Zcreate_contextr(r*)r�search_namerr+�methodZglobal_name�cr
  41  r
  42  rr$bs �
  43  
  44  ���r$Fcs��j}|j}z
  45  d|_t�|�}Wd|_nd|_wt|���g}|sDtdd�|D��D]}|�krC|jdurC|jj|�	�j
  46  vrC|�|�q*|sOtdd�|D��rR|}nt
  47  |||�}i}	|D]U��j���|g�D]I}
  48  tt�|
  49  ��}t�fdd�|D��r���|�|D]}|	�|g�D]}��|�q�z|	|=Wq�ty�Yq�wqg|D]}
  50  |	�|
  51  g��|�q�qgq\���}|r��fdd�|D�S|S)	NFTcss�|]}|��VqdSr�r#)r�dr
  52  r
  53  rr���z"find_references.<locals>.<genexpr>css�|]}|jdkVqdS)rN)rrr
  54  r
  55  rr���c3s�|]}|�vVqdSrr
  56  )rr)�found_names_dctr
  57  rr�r?csg|]
  58  }|���kr|�qSr
  59  r=r)r+r
  60  r�
  61  <listcomp>�sz#find_references.<locals>.<listcomp>)�inference_stater%Zflow_analysis_enabledr-rr"r4�project�path�
  62  py__file__�parents�append�any�#get_module_contexts_containing_nameZget_used_namesr5r �update�KeyError�
  63  setdefault�values)r+rZonly_in_module�infr:r,�module_contexts�mZpotential_modulesZnon_matching_reference_mapsZ	name_leaf�new�dctr�resultr
  64  )rAr+r�find_referencesrsX
  65  ��
  66  
  67  ��
  68  ��rUcCsfz|��}Wn
  69  tyYdSwt|dd�}|�|�sdSt|j|�}t||�}|��r/dS|��S)N�replace)�errors)	�read�FileNotFoundErrorr�searchrrEr�is_compiledZ
  70  as_context)rC�file_io�regex�codeZnew_file_iorQr
  71  r
  72  r�	_check_fs�s�
  73  
  74  r_cCs�t�}t�}|����D];}|r|�d�s|�d�sd|vrq|�dd��d�}d|vr=|�d�}|�tj	�
  75  |j	|��q|}|�|j	|f�q||fS)N�#�!�*zutf-8�ignore�/)r"rX�
  76  splitlines�
  77  startswith�decode�rstrip�lstripr.�osrE�join)�	folder_ior\�ignored_paths_abs�ignored_paths_rel�l�prr
  78  r
  79  r�gitignored_paths�s 
  80  rqcs|j��fdd�|D�S)Ncs,h|]}��|d�rtj��|d��qS)r�)rfrjrErk�rrp�Z	curr_pathr
  81  r�	<setcomp>�s,z/expand_relative_ignore_paths.<locals>.<setcomp>�rE)rlZrelative_pathsr
  82  rtr�expand_relative_ignore_paths�srwc
  83  #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
  84  .gitignorecs0g|]}|j�vr|j�vr|��tvr|�qSr
  85  )rEZ
  86  get_base_name�_IGNORE_FOLDERS)rrl��except_pathsZexcept_paths_relative_expandedr
  87  rrB�s
  88  
  89  �z9recurse_find_python_folders_and_files.<locals>.<listcomp>)r"�walkrE�suffixrrqrw)
  90  rlrzZexcept_paths_relativeZroot_folder_ioZ
  91  folder_iosZfile_iosr\rErmrnr
  92  ryr�%recurse_find_python_folders_and_files�s4�
  93  
  94  
  95  ������r}ccs(�t||�D]\}}|dur|VqdSr)r})rlrzr\r
  96  r
  97  r�recurse_find_python_files�s���r~c#s��|��}t�}dd�|D�}|D]>}|��j}|durq|��}	|j�t�fdd�|D��r4�|vr5nt||�D]
  98  }|j|vrD|Vq:|���|��}q"qdS)NcS�g|]}|���qSr
  99  �rF�rrQr
 100  r
 101  rrB��z2_find_python_files_in_sys_path.<locals>.<listcomp>Tc3s�|]}��|�VqdSr)rfrsrvr
 102  rrr@z1_find_python_files_in_sys_path.<locals>.<genexpr>)	Zget_sys_pathr"�	get_valuer\Zget_parent_folderrErIr~r.)rCrP�sys_pathrzZ
 103  yielded_pathsr+r\rlr
 104  rvr�_find_python_files_in_sys_path�s,�
 105  
 106  �
 107  ��r�ccs,�dd�|D�}tt|jj�|�EdHdS)NcSrr
 108  r�r�r
 109  r
 110  rrB
 111  r�z)_find_project_modules.<locals>.<listcomp>)r~rrDrE)rCrPZexcept_r
 112  r
 113  r�_find_project_moduless�r�rrccsP�|D]
 114  }|��r
 115  q|Vqt|�dkrdSt||�}t||||d�EdHdS)z�
 116      Search a name in the directories of modules.
 117  
 118      :param limit_reduction: Divides the limits on opening/parsing files by this
 119          factor.
 120      �N)�limit_reduction)r[�lenr��search_in_file_ios)rCrPrr�r+�file_io_iteratorr
 121  r
 122  rrJs�	
 123  �rJccs��t|}t|}d}d}t�dt�|�|rdnd�}	|D]/}
 124  |d7}t||
 125  |	�}|durB|d7}|V||krBtd|�dS||krNtd|�dSqdS)Nrz\b�rrzHit limit of parsed files: %szHit limit of opened files: %s)�_PARSED_FILE_LIMIT�_OPENED_FILE_LIMIT�re�compile�escaper_r)rCr�rr�ZcompleteZparse_limitZ
 126  open_limitZ
 127  file_io_countZparsed_file_countr]r\rQr
 128  r
 129  rr�,s(� 
 130  
 131  ��r�)r
 132  )F)rr)rrF)$rjr�ZparsorZ
 133  jedi.debugrZjedi.file_iorrZjedi.inference.namesrZjedi.inference.importsrZjedi.inference.filtersrZ!jedi.inference.gradual.conversionr	rxr�r�rrr-r r(r$rUr_rqrwr}r~r�r�rJr�r
 134  r
 135  r
 136  r�<module>s@
 137  
 138  6
 139  
 140  "
 141  ��