
    -hS                         S r SSKJr  SSKJr  SSKJr  S\S4S\S4S	\	S
4S\
S4S\
S4S\
S4S\
S4S\
S4S\
S4S\
S4S\
S4S\
S4S\
S4S\S4S\S4S.r " S S5      r " S S\5      rS\S4S jrS rS rS!S  jrg)"z
Module for statical analysis.
    )tree)debug)	is_string   zPotential AttributeError.   zPotential NameError.   zPotential ImportError.   N            	   
                  )attribute-errorz
name-errorzimport-errorztype-error-too-many-argumentsztype-error-too-few-argumentsztype-error-keyword-argumentztype-error-multiple-valuesztype-error-star-starztype-error-starztype-error-operationztype-error-not-iterableztype-error-isinstanceztype-error-not-subscriptablezvalue-error-too-many-valueszvalue-error-too-few-valuesc                   l    \ rS rSrSS jr\S 5       r\S 5       r\S 5       rS r	S r
S	 rS
 rS rSrg)Error   Nc                 f    X l         X0l        Xl        Uc  [        U R                     S   nX@l        g )Nr   )path
_start_posnameCODESmessage)selfr   module_path	start_posr   s        jC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\jedi/inference/analysis.py__init__Error.__init__   s.    	#	?DII&q)G    c                      U R                   S   $ Nr   r   r   s    r"   line
Error.line&       q!!r%   c                      U R                   S   $ )Nr   r(   r)   s    r"   columnError.column*   r,   r%   c                 x    U R                   R                  S   nU[        [        U R                     S   5      -   $ r'   )	__class____name__strr   r   )r   firsts     r"   code
Error.code.   s6     ''*s5+A.///r%   c           	          U R                   < SU R                  < SU R                  < SU R                  < SU R                  < 3	$ )N::  )r   r*   r.   r5   r   r)   s    r"   __str__Error.__str__4   s,    $(IItyy$++$(IIt||= 	=r%   c                     U R                   UR                   :H  =(       a9    U R                  UR                  :H  =(       a    U R                  UR                  :H  $ N)r   r   r   r   others     r"   __eq__Error.__eq__8   sB    		UZZ' 8DII,C 8OOu'7'77	9r%   c                 .    U R                  U5      (       + $ r>   )rA   r?   s     r"   __ne__Error.__ne__<   s    ;;u%%%r%   c                 Z    [        U R                  U R                  U R                  45      $ r>   )hashr   r   r   r)   s    r"   __hash__Error.__hash__?   s     TYY;<<r%   c                     SU R                   R                  < SU R                  < SU R                  < SU R                  S   < SU R                  S   < S3$ )	N<r:   r9   @r   ,r   >)r1   r2   r   r   r   r)   s    r"   __repr__Error.__repr__B   s?    &*nn&=&=&*ii&*ooa&8$//!:LN 	Nr%   )r   r   r   r   r>   )r2   
__module____qualname____firstlineno__r#   propertyr*   r.   r5   r;   rA   rD   rH   rO   __static_attributes__ r%   r"   r   r      s]     " " " " 0 0
=9&=Nr%   r   c                       \ rS rSrSrg)WarningH   rV   N)r2   rQ   rR   rS   rU   rV   r%   r"   rX   rX   H   s    r%   rX   c                 0   [         U   S   n[        XXe5      (       a  g U R                  5       nUR                  5       nU" XUR                  U5      n	[
        R                  " [        U	5      SS9  U R                  R                  R                  U	5        U	$ )Nr   F)format)r   _check_for_exception_catchget_root_context
py__file__r!   r   warningr3   inference_stateanalysisappend)
node_context
error_namenoder   typpayload	exceptionmodule_contextr    issue_instances
             r"   addrk   L   s    j!!$I!,iII "224N ++-K$..'JN	MM#n%e4  ))00@r%   c                    ^ U R                  5       nUR                  mTc  g TR                  5       S   n[	        U4S jU 5       5      $ ! [         a     gf = f)zM
Check if there's any setattr method inside an instance. If so, return True.
Fsetattrc              3     >#    U  H}  nTR                   UR                   s=:  =(       a    TR                  :  Os  =(       a>    UR                  R                  S :H  =(       a    UR                  R                  U:H  (       + v   M     g7f)funcdefN)r!   end_posparenttyper   ).0nre   s     r"   	<genexpr>%_check_for_setattr.<locals>.<genexpr>i   sf      $ #1 ~~::dll: K2Iqxx}}7IJK #s   BB)r]   	tree_nodeget_used_namesKeyErrorany)instancemodule
stmt_namesre   s      @r"   _check_for_setattrr~   Z   sp     &&(FD|((*95
  $ #$ $ $  s   A 
AAc                     SU< SU< S3n[         nUR                  5       (       a+  UR                  5       (       d  [        U5      (       a  [        nX4n[        U SX#XE5        g )NzAttributeError: z has no attribute .r   )r   is_instanceis_compiledr~   rX   rk   )name_contextlookup_valuer   r   rf   rg   s         r"   add_attribute_errorr   o   sY    <H$OG C!!,*B*B*D*D l++C G'Er%   c                   ^ ^^^ S mUUU 4S jnUU U4S jnTnUb  [        U[        R                  [        R                  45      (       d  [        U[        R                  5      (       aa  UR
                  S:X  a  U" Xb5      (       a  gU[        :X  a9  UR
                  S;   a)  U" UR                  S   UR                  S   5      (       a  gUR                  nUb1  [        U[        R                  [        R                  45      (       d  M  g	)
z
Checks if a jedi object (e.g. `Statement`) sits inside a try/catch and
doesn't count as an error (if equal to `exception`).
Also checks `hasattr` for AttributeErrors and uses the `payload` to compare
it.
Returns True if the exception was catched.
c                     U R                  5       (       d  gUR                  5        HD  nU R                  5       UR                  :X  d  M#  U R                  R                  5       (       d  MD    g   g)NFT)is_classmro
py__name__r2   parent_contextis_builtins_module)clsrh   
python_clss      r"   check_match/_check_for_exception_catch.<locals>.check_match   sR    ||~~#--/J~~:#6#66**==?? * r%   c                 P  > [        U R                  5      nU HR  n[        U5        [        U5      nUS:X  d  M!  UR                  TR                  s=:  a  UR                  ::  a  MN     g    g   U R                  5        H  nUc    gTR                  U5      nU H  nSSKJn  [        XxR                  5      (       aR  UR                  S:X  aB  UR                  5        H,  n	U	R                  5        H  n
T" X5      (       d  M          g   M.     Mu  T" Xq5      (       d  M      g   M     g )NtryFTr   )iterabletuple)iterchildrennextr!   rp   get_except_clause_tests
infer_nodejedi.inference.valuer   
isinstanceSequence
array_type
py__iter__infer)objrh   iteratorbranch_typesuitere   except_classesr   r   
lazy_valuerf   r   	jedi_namerc   s              r"   check_try_for_except8_check_for_exception_catch.<locals>.check_try_for_except   s    %#KNNEe#(22Y5H5HYEMMY Z $ //1D|!-!8!8!>)C=!#'8'899NNg5*-..*:J'1'7'7'9#.s#>#>+/ (: +;
 's66#' * 2r%   c                 *  >  UR                   TR                   s=::  a  UR                  :  d   e   eU R                  S;   d   eU R                  S   nUR                  S:X  a  UR                  S:X  d   eU R                  S   nUR                  S:X  d   eUR                  S   nUR                  S:X  d   eSSKJn  U" TR                  TU5      n[        UR                  5       5      n[        U5      S	:X  d   eUS   u  p[        U	R                  5       5      n
[        U
5      S:X  a  [        U
S   5      (       d   eU
S   R                  5       TS   R                  :X  d   eUS   u  pU	R                  5       nTS   U;   $ ! [         a     g
f = f)N)power	atom_exprr   r   hasattrr   trailerarglist)TreeArgumentsr   F)r!   rp   rr   r   valuejedi.inference.argumentsr   r`   listunpacklenr   r   get_safe_valueAssertionError)re   r   baser   r   r   argsunpacked_argskeyr   namesobjectsr   rc   rg   s               r"   check_hasattr1_check_for_exception_catch.<locals>.check_hasattr   s   	??i&9&9IEMMIIIII99 6666==#D99&4::+BBBmmA&G<<9,,,&&q)G<<9,,,> !=!=|WUD /M}%*** ,A.OC))+,Eu:?yq':':::8**,
0@0@@@@ ,A.OC &&(G1:(( 		s   FF 
FFtry_stmtT)if_stmt
while_stmtr   r   F)	r   r   FunctionClassFlowrr   AttributeErrorr   rq   )rc   r   rh   rg   r   r   r   r   s   `` `   @r"   r\   r\   ~   s    (8: C
/*S4==$**2M"N"Nc499%%xx:%*>s*N*NN*sxx;T/T a#,,q/BBjj /*S4==$**2M"N"N r%   r>   )__doc__parso.pythonr   jedir   jedi.inference.helpersr   r   	NameErrorImportError	TypeError
ValueErrorr   r   rX   rk   r~   r   r\   rV   r%   r"   <module>r      s      , >+FGi!78%=>&'D%9%&	4$8$%y$#7#$i"6	409d+D1 "It4 )T2%'D$9$&
D#9#%z4"8	&(N (NV	e 	 15% $*FWr%   