+
    if3                       R t ^ RIHt ^ RIt^ RIHtHt ^ RIHt ^ RI	H
t
HtHt ^ RIHtHt ^ RIHt ^ RIHtHtHtHt ^ R	IHt ^ R
IHt ^ RIHtHt ^ RIHtH t  ]PB                  R 8  d   ^ RI	H"t" M^ RI#H"t"  ! R R]PH                  4      t% ! R R]PL                  4      t' ! R R]PP                  4      t) ! R R]PP                  4      t* ! R R]PV                  4      t, ! R R]PV                  4      t- ! R R]PV                  4      t. ! R R]P^                  4      t0]PL                  ]*3]Pb                  n2         ! R R]P^                  4      t3R# )!a"  
Inference objects are a way to represent composite AST nodes,
which are used only as inference results, so they can't be found in the
original AST tree. For instance, inferring the following frozenset use,
leads to an inferred FrozenSet:

    Call(func=Name('frozenset'), args=Tuple(...))
)annotationsN)	GeneratorIterator)cached_property)AnyLiteralNoReturn)basesutil)InferenceContext)AttributeInferenceErrorInferenceErrorMroError
SuperError)objectmodel)AstroidManager)node_classesscoped_nodes)InferenceResultSuccessfulInferenceResult)Selfc                  F    ] tR t^(tRtR R ltR	R R llt]R 4       tRt	R# )
	FrozenSetz.Class representing a FrozenSet composite node.c                   V ^8  d   QhRR/# )   returnzLiteral['builtins.frozenset'] )formats   "1/usr/lib/python3/dist-packages/astroid/objects.py__annotate__FrozenSet.__annotate__+   s     $ $5 $    c                	    R # )zbuiltins.frozensetr   selfs   &r   pytypeFrozenSet.pytype+   s    #r!   Nc                    V ^8  d   QhRRRR/# r   contextInferenceContext | Nonekwargsr   r   )r   s   "r   r   r    .         5  r!   c              +  	   "   V x  R # 5iNr   r$   r)   r+   s   &&,r   _inferFrozenSet._infer.   
     
   	c                	Z    \        4       P                  pVP                  R 4      ^ ,          # )	frozensetr   builtins_modulegetattrr$   ast_builtinss   & r   _proxiedFrozenSet._proxied1   s&    %'77##K033r!   r   r.   )
__name__
__module____qualname____firstlineno____doc__r%   r0   r   r;   __static_attributes__r   r!   r   r   r   (   s#    8$ 4 4r!   r   c                     a  ] tR t^7tRt]P                  ! 4       tR V 3R lltRR R llt	R t
]R 4       tR R	 ltR
 R lt]R 4       tR R ltRR R lltRR R lltRtV ;t# )Supera  Proxy class over a super call.

This class offers almost the same behaviour as Python's super,
which is MRO lookups for retrieving attributes from the parents.

The *mro_pointer* is the place in the MRO from where we should
start looking, not counting it. *mro_type* is the object which
provides the MRO, it can be both a type or an instance.
*self_class* is the class where the super call is, while
*scope* is the function where the super call is.
c               0    V ^8  d   QhRRRRRRRRRR	R
R/# )r   mro_pointerr   mro_type
self_classzscoped_nodes.ClassDefscopezscoped_nodes.FunctionDefcallznode_classes.Callr   Noner   )r   s   "r   r   Super.__annotate__F   sF     
 
.
 ,
 *	

 (
  
 

r!   c                	   < W n         Wn        R V n        W0n        W@n        \
        SV `  VVP                  VP                  VP                  VP                  R7       R# )F)parentlineno
col_offset
end_linenoend_col_offsetN)typerF   _class_based_self_class_scopesuper__init__rO   rP   rQ   rR   )r$   rF   rG   rH   rI   rJ   	__class__s   &&&&&&r   rX   Super.__init__F   sZ     	&!%<<'''' // 	 	
r!   c                    V ^8  d   QhRRRR/# r(   r   )r   s   "r   r   rL   [   r,   r!   c              +  	   "   V x  R # 5ir.   r   r/   s   &&,r   r0   Super._infer[   r2   r3   c                <   \        V P                  \        P                  4      '       g   \	        RV R7      h\        V P
                  \        P                  4      '       d   RV n        V P
                  pMT\        V P
                  RR4      p\        V\        P                  \        P                  34      '       g   \	        RV R7      hVP                  4       pV P                  V9  d   \	        RV R7      hVP                  V P                  4      pW#^,           R # )zBGet the MRO which will be used to lookup attributes in this super.zIThe first argument to super must be a subtype of type, not {mro_pointer}.)super_Tr;   NzPThe second argument to super must be an instance or subtype of type, not {type}.)
isinstancerF   r   ClassDefr   rS   rT   r8   r	   Instancemroindex)r$   rG   rc   rd   s   &   r   	super_mroSuper.super_mro^   s    $**L,A,ABB+  dii!6!677 $DyyHtyy*d;Hh9N9N(OPP ?  lln3&;  		$**+19;r!   c                	Z    \        4       P                  pVP                  R 4      ^ ,          # rW   r6   r9   s   & r   r;   Super._proxied   s&    %'77##G,Q//r!   c                   V ^8  d   QhRR/# )r   r   zLiteral['builtins.super']r   )r   s   "r   r   rL      s        1  r!   c                	    R # )zbuiltins.superr   r#   s   &r   r%   Super.pytype   s    r!   c                   V ^8  d   QhRR/# r   r   strr   )r   s   "r   r   rL      s      c r!   c                	    R # )zSuper ofr   r#   s   &r   display_typeSuper.display_type   s    r!   c                .    V P                   P                  # )z Get the name of the MRO pointer.)rF   namer#   s   &r   rt   
Super.name   s     $$$r!   c                   V ^8  d   QhRR/# )r   r   zLiteral['super']r   )r   s   "r   r   rL      s      ' r!   c                	    R # rh   r   r#   s   &r   qnameSuper.qname   s    r!   c               $    V ^8  d   QhRRRRRR/# )r   rt   ro   r)   r*   r   Iterator[InferenceResult]r   )r   s   "r   r   rL      s.     UX UXUX"9UX	"UXr!   c           
   #    "   VR8X  d    V P                   P                  V4      x  R#  V P                  4       pRpT EF  pYP                  9  d   K  Rp\        P                  ! Ya,          .Y R	7       EFX  p\        T\        P                  4      '       g   Tx  K*  TP                  R
8X  d'   \        P                   ! YvT P                  R7      x  Ka  T P"                  P                  R
8X  d   TP                  R8X  d   Tx  K  T P$                  '       g   TP                  R8X  d   Tx  K  \        T\&        4      '       d*   TP(                  p TP+                  YR7       Rj  xL
  K  \        P2                  ! T4      '       d    TP+                  Y4       Rj  xL
  EK4  \        P                   ! YvT P                  R7      x  EK[  	  EK  	  T'       gR   YP                   9   dB   T P                   P                  T4      p	\        T	\4        P6                  4      '       g   T	x  R# T'       g   \	        YTR7      hR#   \         d!   p\	        RT TTTP
                  R7      ThRp?i\         d,   p\	        RT TTTP                  TP                  R7      ThRp?ii ; i EL@  \,         d    \.        P0                  x   EKX  i ; i EL0  \,         d    \.        P0                  x   EK  i ; i5i)z9Retrieve the inferred values of the given attribute name.rY   NzHLookup for {name} on {target!r} because super call {super!r} is invalid.)target	attributer)   r_   zJLookup for {name} on {target!r} failed because {cls!r} has an invalid MRO.)r}   r~   r)   mrosclsFT)frameclassmethod)original_callermethodstaticmethodcallerr)   )r}   r~   r)   )special_attributeslookupre   r   r   r_   r   r   r   localsr	   _infer_stmtsr`   r   FunctionDefrS   BoundMethodrV   rT   Propertyfunctioninfer_call_resultr   r
   Uninferable_is_propertyr   Unknown)
r$   rt   r)   rc   excfoundr   inferredr   special_attrs
   &&&       r   igetattrSuper.igetattr   s     ;))0066	.."C4 C::%E!..	{GPP!(L,D,DEE"N ==M1++H499UU[[%%68==H;T"N&&&(-->*I"N(33'00H/#+#=#=#' $> $  
 ''11/#+#=#=d#LLL  ++H499UU? Q P !8!882299$?LlL,@,@AA"")wWW M  
	)" zz	 	  	)# XXGG
 
	F * /".../
 M) /".../s   'K9I CK99K9J,)J)*J,.K9K!K"K&8K9AK98K9J&I--J&:J&;&J!!J&&K9)J,,K	K9KK9KK61K95K66K9c                   V ^8  d   QhRR/# )r   r)   r*   r   )r   s   "r   r   rL      s     : :%< :r!   c                	8    \        V P                  WR 7      4      # ))r)   )listr   )r$   rt   r)   s   &&&r   r8   Super.getattr   s    DMM$M899r!   )rT   rV   rU   rF   rS   r.   )r=   r>   r?   r@   rA   r   
SuperModelr   rX   r0   re   r   r;   r%   rq   propertyrt   rx   r   r8   rB   __classcell__rY   s   @r   rD   rD   7   sw    
 %//1
 
* B 0 0  % %UXn: :r!   rD   c                  *    ] tR t^tRt]R 4       tRtR# )ExceptionInstancezClass for instances of exceptions.

It has special treatment for some of the exceptions's attributes,
which are transformed at runtime into certain concrete objects, such as
the case of .args.
c                	    V P                  4       p\        P                  P                  V\        P                  4      pV! 4       ! V 4      # r.   )rx   r   BUILTIN_EXCEPTIONSgetExceptionInstanceModel)r$   rx   instances   &  r   r   $ExceptionInstance.special_attributes   s=    

1155;55
 z$r!   r   N)r=   r>   r?   r@   rA   r   r   rB   r   r!   r   r   r      s        r!   r   c                  <    ] tR t^tRt]P                  ! 4       tRtR# )DictInstancezSpecial kind of instances for dictionaries.

This instance knows the underlying object model of the dictionaries, which means
that methods such as .values or .items can be properly inferred.
r   N)	r=   r>   r?   r@   rA   r   	DictModelr   rB   r   r!   r   r   r      s     %..0r!   r   c                  n    ] tR tRt]P
                  P                  t]P
                  P                  tRtR# )	DictItemsi  r   N	r=   r>   r?   r@   r   NodeNG__str____repr__rB   r   r!   r   r   r     $    !!))G""++Hr!   r   c                  n    ] tR tRt]P
                  P                  t]P
                  P                  tRtR# )DictKeysi  r   Nr   r   r!   r   r   r     r   r!   r   c                  n    ] tR tRt]P
                  P                  t]P
                  P                  tRtR# )
DictValuesi  r   Nr   r   r!   r   r   r     r   r!   r   c                  R   a  ] tR tRtRtR	V 3R lltR
R V 3R llltR R ltRtV ;t	# )PartialFunctioni  zEA class representing partial function obtained via functools.partial.c           	     	  < \         SV `  VVV^ ^ VR7       VP                  R,          V n        VP                  V n        VP                  ^ ,          p\        VP                  4       4      p\        V\        4      '       dB   VP                  V P                  ,           V n        / VP
                  CV P
                  CV n        \        V P                  4      V n        R# )    )rO   rP   rR   rQ   rN   :   NNN)rW   rX   positional_argumentsfilled_argskeyword_argumentsfilled_keywordsnextinferr`   r   lenfilled_positionals)	r$   rJ   rt   rO   rP   rN   wrapped_functioninferred_wrapped_functionrY   s	   &&&&&&  r   rX   PartialFunction.__init__  s    ! 	 	
  44R8#5544Q7$()9)?)?)A$B!/AA8DDtGWGWWD$+;;$&&$D 
 #&d&6&6"7r!   c               $    V ^8  d   QhRRRRRR/# )r   r    SuccessfulInferenceResult | Noner)   r*   r   r{   r   )r   s   "r   r   PartialFunction.__annotate__5  s-     I I0I )I 
#	Ir!   c                	  < V'       d   VP                   '       g   Q R 4       hVP                   P                   UUu0 uF  w  r4VkK	  	  pppV P                  P                  4        F3  w  r6W59  g   K  VP                   P                  P	                  W634       K5  	  VP                   P
                  ;'       g    . pV P                  V,           VP                   n        \        SV `!  WR7      # u uppi )z6CallContext should be set before inferring call resultr   )	callcontextkeywordsr   itemsappendargsr   rW   r   )	r$   r   r)   keyword_current_passed_keywordsvaluecall_context_argsrY   s	   &&&     r   r   !PartialFunction.infer_call_result5  s    
 ###HGH# -4,?,?,H,H',HLW,H $ ' #'"6"6"<"<">9''00778HI #? !( 3 3 8 8 > >B'+'7'7:K'KG$w((HH's   C/c                   V ^8  d   QhRR/# rn   r   )r   s   "r   r   r   J  s     ' 's 'r!   c                	.    V P                   P                  # r.   )rY   r=   r#   s   &r   rx   PartialFunction.qnameJ  s    ~~&&&r!   )r   r   r   NNNNr.   )
r=   r>   r?   r@   rA   rX   r   rx   rB   r   r   s   @r   r   r     s!    O80I I*' 'r!   r   c                     a  ] tR tRtRtRV 3R llt]P                  ! 4       tRt	R R lt
RR R lltRR	 R
 lltRtV ;t# )r   iS  z%Class representing a Python property.c           	     	f   < Wn         \        SV `	  VVVVVP                  VP                  R 7       R# ))rO   rP   rN   rR   rQ   N)r   rW   rX   rR   rQ   )r$   r   rt   rO   rP   rN   rY   s   &&&&&&r   rX   Property.__init__V  s8     !#22** 	 	
r!   r   c                   V ^8  d   QhRR/# )r   r   zLiteral['builtins.property']r   )r   s   "r   r   Property.__annotate__d  s     # #4 #r!   c                	    R # )zbuiltins.propertyr   r#   s   &r   r%   Property.pytyped  s    "r!   c               $    V ^8  d   QhRRRRRR/# )r   r   r   r)   r*   r   r   r   )r   s   "r   r   r   g  s(     < <0< )< 
	<r!   c                	    \        R 4      h)zProperties are not callable)r   )r$   r   r)   s   &&&r   r   Property.infer_call_resultg  s    
 :;;r!   c               $    V ^8  d   QhRRRRRR/# )r   r)   r*   r+   r   r   zGenerator[Self]r   )r   s   "r   r   r   n  s$      .AD	r!   c              +  	   "   V x  R # 5ir.   r   r/   s   &&,r   r0   Property._infern  s      
r3   )r   r   r.   )r=   r>   r?   r@   rA   rX   r   PropertyModelr   rS   r%   r   r0   rB   r   r   s   @r   r   r   S  s5    /	
 %224D#< r!   r   )      )4rA   
__future__r   syscollections.abcr   r   	functoolsr   typingr   r   r   astroidr	   r
   astroid.contextr   astroid.exceptionsr   r   r   r   astroid.interpreterr   astroid.managerr   astroid.nodesr   r   astroid.typingr   r   version_infor   typing_extensionsBaseContainerr   r   rD   rb   r   r   Proxyr   r   r   r   r   Dict	__bases__r   r   r!   r   <module>r      s  
 # 
 / % ) )  ,  , * 4 Ew&4** 4s:L s:l   "15>> 1, ,
,u{{ ,
, ,
1'l.. 1'l  ,22LA   |'' r!   