+
    eS                         R t ^ RIHt ^ RIHt ^ RIHt R^]R3R^]R3R^]	R	3R
^]
R3R^]
R3R^]
R3R^]
R3R^]
R3R^	]
R3R^
]
R3R^]
R3R^]
R3R^]
R3R^]R3R^]R3/t ! R R4      t ! R R]4      tR]R3R ltR tR tRR ltR# ) z
Module for statical analysis.
)tree)debug)	is_stringattribute-errorzPotential AttributeError.z
name-errorzPotential NameError.zimport-errorzPotential ImportError.ztype-error-too-many-argumentsNz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                   x   a  ] tR t^t o RR lt]R 4       t]R 4       t]R 4       tR t	R t
R tR	 tR
 tRtV tR# )ErrorNc                z    W n         W0n        Wn        Vf   \        V P                  ,          ^,          pW@n        R # N)path
_start_posnameCODESmessage)selfr   module_path	start_posr   s   &&&&&9/usr/lib/python3/dist-packages/jedi/inference/analysis.py__init__Error.__init__   s.    	#	?DII&q)G    c                (    V P                   ^ ,          #     r   r   s   &r   line
Error.line&       q!!r   c                (    V P                   ^,          # )   r   r   s   &r   columnError.column*   r   r   c                    V P                   P                  ^ ,          pV\        \        V P                  ,          ^ ,          4      ,           # r   )	__class____name__strr   r   )r   firsts   & r   code
Error.code.   s6     ''*s5+A.///r   c           	         V P                   : R V P                  : R V P                  : RV P                  : RV P                  : 2	# )::  )r
   r   r    r'   r   r   s   &r   __str__Error.__str__4   s,    $(IItyy$++$(IIt||= 	=r   c                    V P                   VP                   8H  ;'       d;    V P                  VP                  8H  ;'       d    V P                  VP                  8H  # r	   )r
   r   r   r   others   &&r   __eq__Error.__eq__8   sL    		UZZ' 8 8DII,C 8 8OOu'7'77	9r   c                .    V P                  V4      '       * # r	   )r2   r0   s   &&r   __ne__Error.__ne__<   s    ;;u%%%r   c                Z    \        V P                  V P                  V P                  34      # r	   )hashr
   r   r   r   s   &r   __hash__Error.__hash__?   s     TYY;<<r   c                    R V P                   P                  : RV P                  : RV P                  : RV P                  ^ ,          : RV P                  ^,          : R2# )<r,   r+   @,>)r#   r$   r   r
   r   r   s   &r   __repr__Error.__repr__B   sE    &*nn&=&=&*ii&*ooa&8&8$//!:L:LN 	Nr   )r   r   r   r
   r	   )r$   
__module____qualname____firstlineno__r   propertyr   r    r'   r-   r2   r5   r9   r@   __static_attributes____classdictcell__)__classdict__s   @r   r   r      sf      " " " " 0 0
=9&=N Nr   r   c                       ] tR t^HtRtR# )Warning N)r$   rB   rC   rD   rF   rK   r   r   rJ   rJ   H   s    r   rJ   c                 J   \         V,          ^,          p\        WWe4      '       d   R# V P                  4       pVP                  4       pV! WVP                  V4      p	\
        P                  ! \        V	4      RR7       V P                  P                  P                  V	4       V	# )r   NF)format)r   _check_for_exception_catchget_root_context
py__file__r   r   warningr%   inference_stateanalysisappend)
node_context
error_namenoder   typpayload	exceptionmodule_contextr   issue_instances
   &&&&&&    r   addr]   L   s    j!!$I!,iII "224N ++-K$..'JN	MM#n%e4  ))00@r   c                  a V P                  4       pVP                  oSf   R#  SP                  4       R,          p\        ;QJ d    T3R lT 4       F  '       g   K   R# 	  R# ! T3R lT 4       4      #   \         d     R# i ; i)zM
Check if there's any setattr method inside an instance. If so, return True.
Fsetattrc              3     <"   T F  pSP                   VP                   u;8  ;'       d    SP                  8  Mu ;'       d@    VP                  P                  R 8H  ;'       d    VP                  P                  V8H  '       * x  K  	  R# 5i)funcdefN)r   end_posparenttyper   ).0nrW   s   & r   	<genexpr>%_check_for_setattr.<locals>.<genexpr>i   so      $ #1 ~~::dll: K K2IIqxx}}7IJK #s   &BB B$'BT)rO   	tree_nodeget_used_namesKeyErrorany)instancemodule
stmt_namesrW   s   &  @r   _check_for_setattrrp   Z   s     &&(FD|((*95
 3 $ #$33 $3 $3 $ #$ $ $  s   A6 6BBc                     R V: RV: R2p\         pVP                  4       '       d.   VP                  4       '       g   \        V4      '       d   \        pW3p\        V RW#WE4       R# )zAttributeError: z has no attribute .r   N)r   is_instanceis_compiledrp   rJ   r]   )name_contextlookup_valuer   r   rX   rY   s   &&&   r   add_attribute_errorrw   o   sY    <H$OG C!!,*B*B*D*D l++C G'Er   c                  a aaa R oVVV 3R lpVV V3R lpSpVe   \        V\        P                  \        P                  34      '       g   \        V\        P                  4      '       dq   VP
                  R8X  d   V! Wb4      '       d   R# V\        8X  dE   VP
                  R9   d4   V! VP                  ^,          VP                  ^,          4      '       d   R# VP                  pK  R# )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                     V P                  4       '       g   R # VP                  4        FG  pV P                  4       VP                  8X  g   K$  V P                  P                  4       '       g   KF   R# 	  R # )FT)is_classmro
py__name__r$   parent_contextis_builtins_module)clsrZ   
python_clss   && r   check_match/_check_for_exception_catch.<locals>.check_match   sR    ||~~#--/J~~:#6#66**==?? * r   c                 l  < \        V P                  4      pV FW  p\        V4       \        V4      pVR 8X  g   K"  VP                  SP                  u;8  d   VP                  8:  d   KQ    R#   R# 	  V P                  4        F  pVf    R# SP                  V4      pV F  p^ RIHp \        WxP                  4      '       dV   VP                  R8X  dE   VP                  4        F.  p	V	P                  4        F  p
S! W4      '       g   K      R# 	  K0  	  Ky  S! Wq4      '       g   K    R# 	  K  	  R# )tryFNT)iterabletuple)iterchildrennextr   rb   get_except_clause_tests
infer_nodejedi.inference.valuer   
isinstanceSequence
array_type
py__iter__infer)objrZ   iteratorbranch_typesuiterW   except_classesr   r   
lazy_valuerX   r   	jedi_namerU   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                   <  VP                   SP                   u;8:  d   VP                  8  g   Q h Q hV P                  R9   g   Q hV P                  ^ ,          pVP                  R8X  d   VP                  R8X  g   Q hV P                  ^,          pVP                  R8X  g   Q hVP                  ^,          pVP                  R8X  g   Q h^ RIHp V! SP                  SV4      p\        VP                  4       4      p\        V4      ^8X  g   Q hV^,          w  r\        V	P                  4       4      p
\        V
4      ^8X  d   \        V
^ ,          4      '       g   Q hV
^ ,          P                  4       S^,          P                  8X  g   Q hV^ ,          w  rV	P                  4       pS^ ,          V9   #   \         d     R# i ; i)powerr   hasattrtrailerarglist)TreeArgumentsF)r   	atom_expr)r   rb   rd   r   valuejedi.inference.argumentsr   rR   listunpacklenr   r   get_safe_valueAssertionError)rW   r   baser   r   r   argsunpacked_argskeyr   namesobjectsr   rU   rY   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   F4 FF4 4GGtry_stmtTF)if_stmt
while_stmt)	r   r   FunctionClassFlowrd   AttributeErrorr   rc   )rU   r   rZ   rY   r   r   r   r   s   ff&f   @r   rN   rN   ~   s    (8: C
/*S4==$**2M"N"Nc499%%xx:%*>s*N*NN*sxx;T/T a#,,q/BBjjr   r	   )__doc__parso.pythonr   jedir   jedi.inference.helpersr   r   	NameErrorImportError	TypeError
ValueErrorr   r   rJ   r]   rp   rw   rN   rK   r   r   <module>r      s     , >+FG1i!78Q%=>#aD%9"Q	4$8!Ay$#7 1i"6Q	409d+RD1It4b)T2"RD$9!B
D#9 2z4"8	&(N (NV	e 	 15% $*FWr   