
    -h,                         S SK r S SKrS SKJr  S SKJr  S SKJrJr  S SK	J
r
  S SKJr  S SKJr  S SKJr  S	rS
r Sr SS jrS rS rS rS rS rSS jrS rS rS rSS jrSS jrS r S r! SS jr" SS jr#g)     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              #      #    U  HW  nX!;   a  M
  [        U[        5      (       d  Uv   UR                  S:X  d  M5  [        UR	                  5       U 5       S h  vN   MY     g  N	7f)Nmodule)
isinstancer   api_type_resolve_namesgoto)definition_namesavoid_namesnames      lC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\jedi/inference/references.pyr   r      sW       $.. J==H$%diik3CDDD ! Es   4A#A#A!
A#c                 &    [        S U  5       5      $ )Nc              3   \   #    U  H"  nUR                   c  UOUR                   U4v   M$     g 7fN)	tree_name.0ns     r   	<genexpr> _dictionarize.<locals>.<genexpr>.   s+      A kk!q{{A6s   *,)dict)namess    r   _dictionarizer#   -   s           c           
         [        X5      n[        U5       H<  nU[        [        U/UR	                  5       R                  5       (       + SS95      -  nM>     U[        [        X!R                  5      5      -  n[        U5       Hr  nUR                  S:X  d1  UR                  b$  UR                  R                  R                  S:X  a  MF  U[        [        UR                  UR                  5      5      -  nMt     [        [        U5      5      $ )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8K[!s=F002::<<$)
  	 " 3-k??KLLK[!==G#t~~'=>>((--:s5d6I6I4K[K[\]]	 "
 ~k*++r$   c                     U R                  U5      n[        UR                  5       5      nUR                  U5        [        [	        U5      5      $ r   )create_namer,   r   addr   )r6   r   r   r7   s       r   r*   r*   H   s>    %%i0Ddiik"KOOD~k*++r$   c              #      #    U R                   c  g S n [        U US9n[        UR                  U5      5      nU(       d  g U S h  vN   [	        US S9nUS   R
                  nMR   N 7f)N)r4   until_positionc                     U R                   $ r   )	start_pos)xs    r   <lambda>,_add_names_in_same_context.<locals>.<lambda>^   s    akkr$   )keyr   )	tree_noder	   r,   getsortedr?   )contextr5   r=   filter_r"   ordereds         r   r3   r3   P   sv      N
"")
 GKK,-$9: --  	s   AA(A&!A(c              #   N  #    U  H  nUR                   c  M  UR                  5       n UR                  nU" 5       R                  U5       H?  nUv   UR	                  UR                   5      n[        XeR                  5       S h  vN   MA     M     g  N! [         a     M  f = f7fr   )r   r-   get_global_filterrE   create_contextr3   r5   AttributeError)r"   search_namer   r6   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                 V  ^ U R                   nUR                  n SUl        [        X5      nSUl        [	        U5      mU /nU(       dt  [        S U 5       5       H^  nXp:w  d  M
  UR                  c  M  UR                  R                  UR                  5       R                  ;   d  MM  UR                  U5        M`     U(       d  [        S U 5       5      (       a  UnO[        UUU5      n0 n	U H  n U R                  R                  5       R                  U/ 5       H  n
[	        [!        X
5      5      n[        U4S jU 5       5      (       aI  TR#                  U5        U H0  nU	R                  U/ 5       H  nTR#                  U5        M      X	 M2     Mz  U H$  nU	R'                  U/ 5      R                  U5        M&     M     M     TR)                  5       nU(       a(  U Vs/ s H  oR+                  5       U :X  d  M  UPM     sn$ U$ ! SUl        f = f! [$         a     M  f = fs  snf )NFTc              3   @   #    U  H  oR                  5       v   M     g 7fr   )r-   )r   ds     r   r   "find_references.<locals>.<genexpr>   s     ?;a''));s   c              3   >   #    U  H  oR                   S :H  v   M     g7f)r(   N)r   r   s     r   r   rU      s     HKqZZ72Ks   c              3   ,   >#    U  H	  oT;   v   M     g 7fr    )r   r   found_names_dcts     r   r   rU      s     EI/s   )inference_stater0   flow_analysis_enabledr8   r#   r,   rD   projectpath
py__file__parentsappendany#get_module_contexts_containing_nameget_used_namesrE   r*   updateKeyError
setdefaultvaluesr-   )r6   r   only_in_moduleinfrN   r7   module_contextsmpotential_modulesnon_matching_reference_maps	name_leafnewdctr   resultr   rY   s                   @r   find_referencesrr   r   s   

(
(C//K)$)!*>E$(!#K0O%&O?;??A"q{{'>((ALLN,B,BB&&q) @
 HKHHH+?
 #%+'11@@BFF{TVWIN FGC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)   H	 H#H&>H&		H
H#	"H#	c                     UR                  5       n[        USS9nUR                  U5      (       d  g [	        UR
                  U5      n[        X5      nUR                  5       (       a  g UR                  5       $ ! [         a     g f = f)Nreplace)errors)	readFileNotFoundErrorr   searchr   r]   r   is_compiled
as_context)rZ   file_ioregexcodenew_file_iork   s         r   	_check_fsr      sz    ||~ #4	:D<<$W\\48Ko;A}}<<>  s   A: :
BBc                    [        5       n[        5       nUR                  5       R                  5        H  nU(       a2  UR                  S5      (       d  UR                  S5      (       d  SU;   a  M>  UR	                  SS5      R                  S5      nSU;   aL  UR                  S5      nUR                  [        R                  R                  U R                  U5      5        M  UnUR                  U R                  U45        M     X#4$ )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    \\^&&(ALL&&!,,t*<*<	HHWh'..s3!888C=D!!"'',,y~~t"DED!!9>>4"89 ) //r$   c                     U R                   nU Vs1 s H?  o2R                  US   5      (       d  M  [        R                   R                  X#S   5      iMA     sn$ s  snf )Nr      )r]   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              #     #    [        U5      n[        5       nU R                  5        H  u  p4nU HQ  nUR                  nUR                  S;   a  Xq;  a  S U4v   UR                  S:X  d  M<  [        X65      u  pX-  nX)-  nMS     [        X25      n
U V s/ s HC  n U R                  U;  d  M  U R                  U
;  d  M'  U R                  5       [        ;  d  MA  U PME     sn US S & U H	  n U S 4v   M     M     g s  sn f 7f)N)z.pyz.pyiz
.gitignore)	r,   walkr]   suffixr   r   r   get_base_name_IGNORE_FOLDERS)r   except_pathsexcept_paths_relativeroot_folder_io
folder_iosfile_iosr{   r]   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  '')@	 '

1 $IT/! $5 1A&
s*   A&C=,(C=C8,C8>C8C8C=c              #   F   #    [        X5       H  u  pUc  M
  Uv   M     g 7fr   )r   )r   r   r{   s      r   recurse_find_python_filesr      s#     CI\	M ]s   !	!c              #     ^	#    U R                  5       n[        5       nU Vs/ s H  oDR                  5       PM     nnU H  nUR                  5       R                  nUc  M"  UR                  5       n UR                  m	[        U	4S jU 5       5      (       a  T	U;   a  Ma  [        X5       H  nUR                  U;  d  M  Uv   M     UR                  T	5        UR                  5       nMy     g s  snf 7f)Nc              3   F   >#    U  H  nTR                  U5      v   M     g 7fr   )r   )r   r   r]   s     r   r   1_find_python_files_in_sys_path.<locals>.<genexpr>  s     <8atq))8s   !)
get_sys_pathr,   r^   	get_valuer{   get_parent_folderr]   ra   r   r;   )
rZ   rj   sys_pathr   rk   yielded_pathsr6   r{   r   r]   s
            @r   _find_python_files_in_sys_pathr      s     ++-H5L-<=_\\^_M=) **,44?--/	>>D<8<<<@T4YM<<}4!M N T"!335I  * >s   C3C.BC3 3C3c              #      #    U Vs/ s H  o"R                  5       PM     nn[        [        U R                  R                  5      U5       S h  vN   g s  snf  N
7fr   )r^   r   r   r\   r]   )rZ   rj   rk   except_s       r   _find_project_modulesr     sG     '67!||~G7(/2I2I2N2N)OQXYYY 8Ys   AA.AAAc              #      #    U H  nUR                  5       (       a  M  Uv   M      [        U5      S::  a  g[        X5      n[        XUUS9 Sh  vN   g N7f)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     sb      *%%'' * 4yA~
 -_N!/T2AC C Cs   AAAAc              #   B  #    [         U-  n[        U-  nSnSn[        R                  " S[        R                  " U5      -   U(       a  SOS-   5      n	U HF  n
US-  n[        X
U	5      nUb  US-  nUv   X:  a  [        SU5          g Xv:  d  M:  [        SU5          g    g 7f)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     $6K#o5JMJJuryy.#uMNE#o6="G /3[A&/< $s   BBB)rX   )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   rX   r$   r   <module>r      s    	 	 )  5 . 8 3 ;I   E ,(,.$R 3l0&a
"D6*Z 9:C8 49r$   