+
    e,                         ^ RI t ^ RIt^ RIHt ^ RIHt ^ RIHtHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHt RtR	t ^t RR
 ltR tR tR tR tR tRR ltR tR tR tRR ltRR ltR t R t!RR lt"RR lt#R# )    N)python_bytes_to_unicode)dbg)KnownContentFileIOFolderIO)SubModuleName)load_module_from_path)ParserTreeFilter)convert_namesi  c              #      "   V  FZ  pW!9   d   K  \        V\        4      '       g   Vx  VP                  R 8X  g   K8  \        VP	                  4       V 4       Rj  xL
  K\  	  R#  L
5i)moduleN)
isinstancer   api_type_resolve_namesgoto)definition_namesavoid_namesnames   && ;/usr/lib/python3/dist-packages/jedi/inference/references.pyr   r      sW       $.. J==H$%diik3CDDD ! Es   6A'A'A%A'c                 &    \        R  V  4       4      # )c              3   ^   "   T F#  pVP                   f   TMVP                   V3x  K%  	  R # 5iN)	tree_name.0ns   & r   	<genexpr> _dictionarize.<locals>.<genexpr>.   s+      A kk!q{{A6s   +-)dict)namess   &r   _dictionarizer    -   s           c           
      >   \        W4      p\        V4       FC  pV\        \        V.VP	                  4       P                  4       '       * R R7      4      ,          pKE  	  V\        \        W!P                  4      4      ,          p\        V4       Fy  pVP                  R8X  g4   VP                  e&   VP                  P                  P                  R8X  d   KI  V\        \        VP                  VP                  4      4      ,          pK{  	  \        \        V4      4      # )F)
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_namesr5   4   s    n8K[!s=F002::<<$)
  	 " 3-k??KLLK[!==G#t~~'=>>((--:s5d6I6I4K[K[\]]	 "
 ~k*++r!   c                     V P                  V4      p\        VP                  4       4      pVP                  V4       \        \	        V4      4      # r   )create_namer)   r   addr   )r3   r   r   r4   s   &&  r   r'   r'   H   s>    %%i0Ddiik"KOOD~k*++r!   c              #      "   V P                   f   R # R p \        V VR7      p\        VP                  V4      4      pV'       g   R # T R j  xL
  \	        VR R7      pV^ ,          P
                  pK_   L'5i)N)r1   until_positionc                     V P                   # r   )	start_pos)xs   &r   <lambda>,_add_names_in_same_context.<locals>.<lambda>^   s    akkr!   )key)	tree_noder	   r)   getsortedr<   )contextr2   r:   filter_r   ordereds   &&    r   r0   r0   P   sq      N
"")
 GKK,-$9: -- 	s   A
A6A4(A6c              #   T  "   V  F  pVP                   f   K  VP                  4       p VP                  pV! 4       P                  V4       F?  pVx  VP	                  VP                   4      p\        WeP                  4       R j  xL
  KA  	  K  	  R #  L  \         d     K  i ; i5ir   )r   r*   get_global_filterrB   create_contextr0   r2   AttributeError)r   search_namer   r3   methodglobal_namecs   &&     r   r,   r,   b   s     >>!..0	R#55F  &x||K8!!"11+2G2GH5a9P9PQQQ  9  R  		s4   &B(BAB(BB(B%!B($B%%B(c                   a V P                   pVP                  p R Vn        \        W4      pRVn        \	        V4      oV .pV'       gx   \        R V 4       4       Fa  pWp8w  g   K  VP                  f   K  VP                  P                  VP                  4       P                  9   g   KP  VP                  V4       Kc  	  V'       g;   \        ;QJ d    R V 4       F  '       g   K   RM	  R M! R V 4       4      '       d   TpM\        VVV4      p/ p	V F  p V P                  P                  4       P                  V. 4       F  p
\	        \!        W
4      4      p\        ;QJ d    V3R lV 4       F  '       g   K   RM	  R M! V3R lV 4       4      '       dJ   SP#                  V4       V F0  pV	P                  V. 4       F  pSP#                  V4       K  	   W K2  	  K  V F$  pV	P'                  V. 4      P                  V4       K&  	  K  	  K  	  SP)                  4       pV'       d)   V Uu. uF  qP+                  4       V 8X  g   K  VNK  	  up# V#   RTn        i ; i  \$         d     K  i ; iu upi )FTc              3   @   "   T F  qP                  4       x  K  	  R # 5ir   )r*   )r   ds   & r   r   "find_references.<locals>.<genexpr>   s     ?;a''));s   c              3   >   "   T F  qP                   R 8H  x  K  	  R# 5i)r%   N)r   r   s   & r   r   rR      s     HKqZZ72Ks   c              3   ,   <"   T F	  qS9   x  K  	  R # 5ir    )r   r   found_names_dcts   & r   r   rR      s     EI/s   )inference_stater-   flow_analysis_enabledr5   r    r)   rA   projectpath
py__file__parentsappendany#get_module_contexts_containing_nameget_used_namesrB   r'   updateKeyError
setdefaultvaluesr*   )r3   r   only_in_moduleinfrK   r4   module_contextsmpotential_modulesnon_matching_reference_maps	name_leafnewdctr   resultr   rV   s   &&&             @r   find_referencesro   r   s   

(
(C//K)$)!*>E$(!#K0O%&O?;??A"q{{'>((ALLN,B,BB&&q) @
 HKHHKHHH+?
 #%+'11@@BFF{TVWIN FGCsEEsssEEEE&&s+!$I:>>y"M (..s3  N7B "%  D/::4DKKCP   X ," ##%F!L6a%7%7%9^%K6LLMS %)!B $  Ms)   I I$2I6I6	I!$I3	2I3	c                 &    VP                  4       p\        TRR7      pTP                  T4      '       g   R # \	        TP
                  T4      p\        Y4      pTP                  4       '       d   R # TP                  4       #   \         d     R # i ; i)Nreplace)errors)	readFileNotFoundErrorr   searchr   rZ   r   is_compiled
as_context)rW   file_ioregexcodenew_file_iorh   s   &&&   r   	_check_fsr|      sz    ||~ #4	:D<<$W\\48Ko;A}}<<>  s   B BBc                    \        4       p\        4       pVP                  4       P                  4        F  pV'       d6   VP                  R 4      '       g   VP                  R4      '       g   RV9   d   KB  VP	                  RR4      P                  R4      pRV9   dM   VP                  R4      pVP                  \        P                  P                  V P                  V4      4       K  TpVP                  V P                  V34       K  	  W#3# )   #   !   *zutf-8ignore/)r)   rs   
splitlines
startswithdecoderstriplstripr8   osrZ   join)	folder_iorx   ignored_paths_absignored_paths_rellpr   s   &&     r   gitignored_pathsr      s    \\^&&(ALL&&!,,t*<*<	HHWh'..s3!888C=D!!"'',,y~~t"DED!!9>>4"89 ) //r!   c                     V P                   pV Uu0 uFH  q2P                  V^ ,          4      '       g   K"  \        P                   P                  W#^,          4      kKJ  	  up# u upi )r   )rZ   r   r   r   )r   relative_paths	curr_pathr   s   &&  r   expand_relative_ignore_pathsr      sI    I3A`>aEYEYZ[\]Z^E_)BGGLLaD)>```s
   A"*A"c              #     "   \        V4      p\        4       pV P                  4        F  w  r4pV F\  pVP                  pVP                  R9   d   Wq9  d   RV3x  VP                  R8X  g   K?  \        W64      w  rW,          pW),          pK^  	  \        W24      p
V U u. uFF  p V P                  V9  g   K  V P                  V
9  g   K)  V P                  4       \        9  g   KD  V NKH  	  up VR&   V F	  p V R3x  K  	  K  	  R# u up i 5i).pyNz
.gitignore:NNN)r   z.pyi)	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-+-'yyL(7G"84! 1%:%   *F*
& (
'	~~\1  &DD  '')@	 I'

1 $IT/! $5 1A&
s*   A(D/0DD7D
D%D+ Dc              #   J   "   \        W4       F  w  rVf   K  Vx  K  	  R # 5ir   )r   )r   r   rx   s   && r   recurse_find_python_filesr      s#     CI\	M ]s   #
#c              #   <  a	"   V P                  4       p\        4       pV Uu. uF  qDP                  4       NK  	  ppV F  pVP                  4       P                  pVf   K#  VP                  4       p VP                  o	\        ;QJ d    V	3R lV 4       F  '       g   K   RM	  RM! V	3R lV 4       4      '       d   S	V9   d   K  \        W4       F  pVP                  V9  g   K  Vx  K  	  VP                  S	4       VP                  4       pK  	  R # u upi 5i)NTc              3   F   <"   T F  pSP                  V4      x  K  	  R # 5ir   )r   )r   r   rZ   s   & r   r   1_find_python_files_in_sys_path.<locals>.<genexpr>  s     <8atq))8s   !F)
get_sys_pathr)   r[   	get_valuerx   get_parent_folderrZ   r^   r   r8   )
rW   rg   sys_pathr   rh   yielded_pathsr3   rx   r   rZ   s
   &&       @r   _find_python_files_in_sys_pathr      s     ++-H5L-<=_\\^_M=) **,44?--/	>>D3<8<333<8<<<@T4YM<<}4!M N T"!335I * >s(   DDAD	D D>%D(4Dc              #      "   V Uu. uF  q"P                  4       NK  	  pp\        \        V P                  P                  4      V4       R j  xL
  R # u upi  L5ir   )r[   r   r   rY   rZ   )rW   rg   rh   except_s   &&  r   _find_project_modulesr     sG     '67!||~G7(/2I2I2N2N)OQXYYY 8Ys   AA.AAAc              #     "   V F  pVP                  4       '       d   K  Vx  K!  	  \        V4      ^8:  d   R# \        W4      p\        WVVR7       Rj  xL
  R#  L5i)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   r3   file_io_iterators   &&&&  r   r_   r_     sb      *%%'' * 4yA~
 -_N!/T2AC C Cs   AAAAc              #     "   \         V,          p\        V,          p^ p^ p\        P                  ! R\        P                  ! V4      ,           V'       d   RMR,           4      p	V FS  p
V^,          p\        W
V	4      pVe#   V^,          pVx  W8  d   \        RV4        R# Wv8  g   KF  \        RV4        R# 	  R# 5i)r   z\b Nz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     $6K#o5JMJJuryy.#uMNE#o6="G /3[A&/< $s   B$B>+B>)z.toxz.venvz.mypy_cachevenv__pycache__)rU   )F)   )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    r5   r'   r0   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
C6r!   