
    7g{                    P   U d Z ddlmZ ddlZddlZddlZddlmZm	Z	m
Z
mZ ddlmZmZmZ ddlmZmZmZmZ ddlmZ ddlmZmZ dd	lmZmZmZmZmZ dd
l m!Z! ddl"m#Z#m$Z$m%Z% er edejL                  ejN                        Z(dZ)ejT                  ejV                  ejX                  ejZ                  dZ.de/d<   d<dZ0d Z1d Z2d Z3d Z4d Z5d d d d d d d d d d  d! d" ejl                  d#Z7 e8e7js                               D ]  \  Z:Z;e;e7e:d$z   <    ejx                  	 	 	 	 	 	 	 	 	 	 	 	 	 	 d=d%       Z=	 	 	 	 	 	 	 	 	 	 d>d&Z>	 	 	 	 	 	 d?d'Z?ejx                  	 	 	 	 	 	 	 	 	 	 	 	 	 	 d@d(       Z@ejx                  	 	 	 	 	 	 	 	 	 	 	 	 	 	 dAd)       ZA	 d* ZBej                  	 	 	 dB	 	 	 	 	 	 	 	 	 dCd+       ZD	 	 	 dB	 	 	 	 	 	 	 	 	 dDd,ZE	 	 	 dB	 	 	 	 	 	 	 	 	 dEd-ZF	 	 	 	 	 	 dFd.ZG	 	 	 dB	 	 	 	 	 	 	 	 	 dGd/ZHej                  	 	 	 dB	 	 	 	 	 	 	 	 	 dHd0       ZI	 	 	 dB	 	 	 	 	 	 	 	 	 dId1ZJd2 ZKej                  	 	 	 dB	 	 	 	 	 	 	 	 	 dJd3       ZLd4 ZMej                  	 	 	 dB	 	 	 	 	 	 	 	 	 dKd5       ZNej                  	 	 dL	 	 	 	 	 	 	 	 	 dMd6       ZOejx                  	 	 	 dB	 	 	 	 	 	 	 	 	 dNd7       ZPejx                  	 	 dL	 	 	 	 	 	 	 	 	 dOd8       ZQejx                  	 	 dL	 	 	 	 	 	 	 	 	 dPd9       ZRejx                  	 	 dL	 	 	 	 	 	 	 	 	 dQd:       ZSejx                  	 	 dL	 	 	 	 	 	 	 	 	 dRd;       ZTy)SzcThis module contains a set of functions to handle python protocols for nodes
where it makes sense.
    )annotationsN)Callable	GeneratorIteratorSequence)TYPE_CHECKINGAnyTypeVar)bases
decoratorsnodesutil)Context)InferenceContextcopy_context)AstroidIndexErrorAstroidTypeErrorAttributeInferenceErrorInferenceError	NoDefault)node_classes)ConstFactoryResultInferenceResultSuccessfulInferenceResult_TupleListNodeTzcontextlib.contextmanager)+-~notzdict[str, Callable[[Any], Any]]_UNARY_OPERATORSc                d    | t         u r| }nt        |   } ||       }t        j                  |      S )z{Perform unary operation on `obj`, unless it is `NotImplemented`.

    Can raise TypeError if operation is unsupported.
    )NotImplementedr    r   const_factory)objopvaluefuncs       1lib/python3.12/site-packages/astroid/protocols.py_infer_unary_opr)   /   s5    
 n#S	u%%    c                @    t        t        | j                        |      S N)r)   tupleeltsselfr%   s     r(   tuple_infer_unary_opr1   <   s    5+R00r*   c                .    t        | j                  |      S r,   )r)   r.   r/   s     r(   list_infer_unary_opr3   @   s    499b))r*   c                @    t        t        | j                        |      S r,   )r)   setr.   r/   s     r(   set_infer_unary_opr6   D   s    3tyy>2..r*   c                .    t        | j                  |      S r,   )r)   r&   r/   s     r(   const_infer_unary_opr8   H   s    4::r**r*   c                @    t        t        | j                        |      S r,   )r)   dictitemsr/   s     r(   dict_infer_unary_opr<   L   s    4

+R00r*   c                    | |z   S r,    abs     r(   <lambda>rB   S       a!er*   c                    | |z
  S r,   r>   r?   s     r(   rB   rB   T   rC   r*   c                    | |z  S r,   r>   r?   s     r(   rB   rB   U   rC   r*   c                    | |z  S r,   r>   r?   s     r(   rB   rB   V       qAvr*   c                    | |z  S r,   r>   r?   s     r(   rB   rB   W   rC   r*   c                    | |z  S r,   r>   r?   s     r(   rB   rB   X   s    q!tr*   c                    | |z  S r,   r>   r?   s     r(   rB   rB   Y   rC   r*   c                    | |z  S r,   r>   r?   s     r(   rB   rB   Z   rC   r*   c                    | |z  S r,   r>   r?   s     r(   rB   rB   [   rC   r*   c                    | |z  S r,   r>   r?   s     r(   rB   rB   \   rC   r*   c                    | |z  S r,   r>   r?   s     r(   rB   rB   ]   rG   r*   c                    | |z	  S r,   r>   r?   s     r(   rB   rB   ^   rG   r*   )r   r   /z//***%&|^z<<z>>@=c              #    K   t        j                  t              }t        |t         j                        r|dk(  rct        | j                  t
        t        f      rCt        |j                  t
        t        f      r#| j                  dkD  s|j                  dkD  r| y 	 t        |   }	 t        j                   || j                  |j                               y y y t        | j                  t              r|dk(  rt        j                   y | y # t        $ r | Y Gt        $ r t        j                   Y dw xY w# t        $ r | Y y w xY ww)NrR   g     j@rS   )r   Constr"   
isinstancer&   intfloatBIN_OP_IMPLr#   	TypeError	Exceptionr   Uninferablestr)r0   opnodeoperatorothercontext_not_implementedimpls           r(   const_infer_binary_oprj   e   s     kk.1O%%4::U|45;;e5c!U[[3%6!!
	"x(D'))$tzz5;;*GHH
 ' &
 
DJJ	$S  &%% '&&&' 	"!!	"sT   BE	E )2D :EE"E $E>E  EE EEEEc                    | j                  |      }|dkD  rt        j                  g|_        |S fd| j                  D        }t	        |      |z  |_        |S )Nparentg    חAc              3     K   | ]F  }t        |t        j                        s*t        j                  |      xs t        j                   H y wr,   )r[   r   UninferableBase
safe_inferra   ).0eltrf   s     r(   	<genexpr>z'_multiply_seq_by_int.<locals>.<genexpr>   sB      C#t334 	W%9)9)99s   AA)	__class__r   ra   r.   list)r0   rc   r&   rf   nodefiltered_eltss      `  r(   _multiply_seq_by_intrx      s\     >>>(Ds{%%&	99M
 ]#e+DIKr*   c              #    K   | D ]~  }t        |t        j                        rt        j                          4|j                  |      D ]7  }t        |t        j                        s| "t        j                          9  y wr,   )r[   r   ro   r   Unknowninfer)r.   rf   rr   inferreds       r(   _filter_uninferable_nodesr}      sb      c4//0--/!IIg.!(D,@,@A"N--/)	 /	    BBc           	   #    K   ddl m} d|_        t        j                  t
              }t        || j                        rh|dk(  rc| j                  |      }t        t        j                  t        | j                  |      t        |j                  |                  |_        | yt        |t        j                        r?|dk(  r:t        |j                  t              s| yt        | ||j                  |       yt        |t         j"                        rk|dk(  rf|j%                  |      }	|	st&        j(                   yt        |	j                  t              st+        d      t        | ||	j                  |       y| yw)zInfer a binary operation on a tuple or list.

    The instance on which the binary operation is performed is a tuple
    or list. This refers to the left-hand side of the operation, so:
    'tuple() + 1' or '[] + A()'
    r   )helpersNr   rl   rQ   zPlease open a bug report.)astroidr   	boundnoder   rZ   r"   r[   rt   ru   	itertoolschainr}   r.   r&   r\   rx   r   Instanceclass_instance_as_indexr   ra   AssertionError)
r0   rc   rd   re   rf   methodr   rh   rv   as_indexs
             r(   tl_infer_binary_opr      s*       Gkk.1O%(X_~~V~,OO)$))W=)%**g>
	 
	E5;;	'HO%++s+!!"4gFF	E5>>	*x32259"""HNNC0 !<==&tVX^^WMMs   FF
c                &    |j                  | |      S r,   )infer_call_result)r0   rc   rd   re   rf   r   s         r(   instance_class_infer_binary_opr      s     ##D'22r*   c              #    K   |dd }|j                  d      }| D ]  }t        |t        j                        rt	        |d      s+	 |j                         }	 t        ||   t        j                  t        j                  f      r|g}|D ]r  }t        j                  |      }	 |j                  ||      }|s| 2t        |t        j                        r 	 t        |j!                  |      ||      E d{    t  y# t        $ r Y w xY w# t        $ r Y w xY w# t        t        t        f$ r Y w xY w7 A# t"        $ r Y  .w xY ww)z<Recursive function to resolve multiple assignments on loops.Nr   itered)popr[   r   ro   hasattrr   r_   r   rZ   Name
IndexErrorgetitemAttributeErrorr   r   _resolve_looppartr{   r   )	partsassign_pathrf   indexpartr   stmt
index_nodeassigneds	            r(   r   r      sN    a.KOOAEdD001tX&	[[]F	&-%++uzz)BC DU+J<<
G<  Hd&:&:;0 w/g   !    		
  		 #$46GH  & s   AED0DE#D 5#ED<8D:9D<=E	DEDE	DEDE D74E6D77E:D<<	E
E	E

Ec              #    K   t        | t        j                        st        | dd      r| |||dS |`| j                  j                  |      D ]A  }t        |t        j                  t        j                  f      s.|j                  E d {    C n.t        | j                  j                  |      ||      E d {    | |||dS 7 <7 w)Nis_asyncFrv   unknownr   rf   )
r[   r   AsyncForgetattriterr{   TupleListr.   r   )r0   rv   rf   r   lsts        r(   for_assigned_stmtsr     s      $'74U+K &	
 	
 99??7+C#UZZ8988## , %TYY__W%={GTTT"	  $Ts*   A9C<CC0C<C
=C
Cc                    |g }	 | j                   j                  |      }|j	                  d|       | j
                  j                  | ||      S # t        $ r}t        d| ||      |d }~ww xY w)Nz6Tried to retrieve a node {node!r} which does not existrv   r   rf   r   )rv   rf   r   )r.   r   
ValueErrorr   insertrm   assigned_stmts)r0   rv   rf   r   r   excs         r(   sequence_assigned_stmtsr   ;  s     		% q% ;;%%7 &    D#	

 	s   A 	A/A**A/c                <    | j                   j                  | |      S )N)rv   rf   )rm   r   r0   rv   rf   r   s       r(   assend_assigned_stmtsr   S  s     ;;%%4%AAr*   c              #  v  K   ddl m} | j                  st        j                   y | j                  D cg c])  }|j                  | j
                  | j                  fvs(|+ }}| j                  j                  }|rt        | j                  d   dd       |k(  r|dk7  r| j                  j                  j                         }t        |t        j                        xr |j                  dk(  }|j                  r:t        |j                  t        j                         r|j                  j"                  }|s|dk(  r| y |dk(  r|j%                          y |r|j&                  r|j&                  j(                  }	t+        |	d      r|	j"                  }	t+        |	d      rt        |	dd       | j                  j                  k(  rL|j-                  |j&                  |j.                        }
|
j1                  | j                  ||      E d {    y || j
                  k(  rvt        j2                  d	      }| |_        |sS| j                  j                  d
k(  r:| j                  j                  j                         }|j%                         g|_        | y || j                  k(  r!t        j2                  i       }| |_        | y 	 t7        |      }| j9                  |      j;                  |      E d {    t        j                   y c c}w 7 7 # t<        $ r t        j                   Y y w xY ww)Nr   	argumentsnamestaticmethod	metaclassclassmethodr   _proxiedr>   __init__)r   r   r   ra   r   varargkwargrm   typer   scoper[   r   ClassDefr   r   r   r   instantiate_classcallcontextcalleer   CallSiteextra_contextinfer_argumentr#   r.   r   default_valuer{   r   )r0   r   rf   r   argargsfunctypeclsis_metaclassr   	call_siter   r   s                r(   _arguments_infer_argnamer   \  s    
 ">>>>W>CSXXdkk4::=V-VC>DW{{H 	DNN1%vt4<&kk  &&(!#u~~6R388{;R G,=,=u~~!N##,,C8}4Ix''))7&&$$++fj)__F fj)664(DKK,<,<<!**7+>+>@U@UVI //T7KKKt{{$$R(((J6++$$**,C0023FKtzz##B'w'%%d+11':::a X6 L( 	; sa   4L9)L L$D=L9"A*L9LB:L9.L 6L7L L9L L63L95L66L9c                   ddl m} 	 |j                  }|rH|j                  r<|j                  j
                  }t        |d      r'|j                  }t        |d      rnt        | ||      S |rvt        |dd       |j                         j                  k(  rN|j                  }t        |      }d |_        |j                  ||      }|j                  | j                  ||      S t        | ||      S # t        $ r d }Y w xY w)Nr   r   r   r   rf   )r   r   r   r   r   r   r   r   r   r   framer   r   r   rm   )	r0   rv   rf   r   r   	node_namer   r   r   s	            r(   arguments_assigned_stmtsr     s     "II	 7&&$$++fj)__F fj) (iAA-1B1BB))w'"!!+w!?""4;;	7CC#D)W==%   	s   C0 0C>=C>c              #     K   |s| j                    y t        | j                   j                  |      ||      E d {    | |||dS 7 w)Nr   )r&   _resolve_assignment_partsr{   r   s       r(   assign_assigned_stmtsr     s]      jj(

!;  
 "	 	s   ;AA	Ac              #  d   K   t        | |||      D ]  }|t        j                   |  y wr,   )r   r   ra   )r0   rv   rf   r   r|   s        r(   assign_annassigned_stmtsr     s5      *$g{K"""N	 Ls   .0c              #    K   |dd }|j                  d      }| D ]  }d}t        |t        j                        r	 |j                  |   \  }}n4t        |d      r(t        j                  |      }	 |j                  ||      }|s y|s| rt        |t        j                        r y	 t        |j                  |      ||      E d{     y# t
        $ r Y  yw xY w# t        t        f$ r Y  yw xY w7 -# t        $ r Y  yw xY ww)z3Recursive function to resolve multiple assignments.Nr   r   )r   r[   r   Dictr;   r   r   rZ   r   r   r   r   ro   r   r{   r   )r   r   rf   r   r   r   rg   r   s           r(   r   r     s    a.KOOAEdEJJ'"jj/! T9%U+J<<
G<  N$"6"674NN7+['  ;    %&78   " s   8D	C"D	0C!'D	*C9	C7
C9D		CD	CD	!C40D	3C44D	7C99	DD	DD	c              #     K   ddl m} t        j                  | j                        D ]1  }t        |t        j                        r|j                  |      }| 3 | |||dS w)Nr   )objectsr   )	r   r   r   unpack_inferr   r[   r   r   ExceptionInstance)r0   rv   rf   r   r   r   s         r(   excepthandler_assigned_stmtsr     s_        --dii8h/00:H	 9 "	 s   A!A#c              #    K   	 t        |j                  |            }t	        |t
        j                        r|j                  }|j                  st        d|      |j                  j                  D ]R  }t        |j                  |      d       }t	        |t        j                        s:|j                         t        k(  sR n t        |      	 t        |j                                y t	        |t
        j                        r^	 t        |j                  d|            }t	        |t
        j"                        st        |      |j%                  | |      E d {    y t        |      # t        $ r}t        |      |d }~ww xY w# t        $ r}t        |      |d }~ww xY w# t        t         t        f$ r}	t        |      |	d }	~	ww xY w7 vw)Nr   )rv   z,No decorators found on inferred generator %s	__enter__)nextr{   StopIterationr   r[   r   r   rm   r   r   FunctionDefqname_CONTEXTLIB_MGRinfer_yield_typesr   igetattrr   BoundMethodr   )
r0   mgrrf   r|   er'   decorator_node	decoratorenterr   s
             r(   _infer_context_managerr     s    .		'	23 (EOO, >T  #oo33N^11'1BDII)U%6%67??$7	 4 !d++	3x11344 
Henn	-	9**;*HIE %!2!23 e,,**4999#&&A  .#&A-.(  	3 d+2	3  7G 	9 h/S8	9 	:s   GE6 BG.GGF 1GF2 );G$G%G6	F?FFG	F/F**F//G2GGGGc           
   #    K   	 t        fd| j                  D              }|t        | ||      E d{    nKt        | ||      D ];  }|}|D ].  }t	        |d      st        d| ||      	 |j                  |   }0 | = | ||dS # t        $ r Y yw xY w7 f# t        $ r}t        d| ||      |d}~wt        $ r}t        d| ||      |d}~ww xY ww)	a  Infer names and other nodes from a *with* statement.

    This enables only inference for name binding in a *with* statement.
    For instance, in the following code, inferring `func` will return
    the `ContextManager` class, not whatever ``__enter__`` returns.
    We are doing this intentionally, because we consider that the context
    manager result is whatever __enter__ returns and what it is binded
    using the ``as`` keyword.

        class ContextManager(object):
            def __enter__(self):
                return 42
        with ContextManager() as f:
            pass

        # ContextManager().infer() will return ContextManager
        # f.infer() will return 42.

    Arguments:
        self: nodes.With
        node: The target of the assignment, `as (a, b)` in `with foo as (a, b)`.
        context: Inference context used for caching already inferred objects
        assign_path:
            A list of indices, where each index specifies what item to fetch from
            the inference results.
    c              3  4   K   | ]  \  }}|k(  s|  y wr,   r>   )rq   r   varsrv   s      r(   rs   z&with_assigned_stmts.<locals>.<genexpr>d  s     E*;C3*s   Nr.   z0Wrong type ({targets!r}) for {node!r} assignment)rv   targetsr   rf   zCTried to infer a nonexistent target with index {index} in {node!r}.z1Tried to unpack a non-iterable value in {node!r}.r   )	r   r;   r   r   r   r   r.   r   r_   )	r0   rv   rf   r   r   resultr$   r   r   s	    `       r(   with_assigned_stmtsr   B  s0    BE$**EE )$W===,T3@FC$sF+(J! $$/ ' ((5/C %8 I? AB "	 K   	>  " ('! $$/ '  ! (K! $$/ ' sa   CB CB8C/B>C	BCBC	C'B88CCCCc              #     K   | j                   |k(  r%| j                  j                  |      E d{    yt        d| ||      7 w)z:Infer names and other nodes from an assignment expression.r   Nz$Cannot infer NamedExpr node {node!r}r   )targetr&   r{   r   r   s       r(   named_expr_assigned_stmtsr     sM      {{d::##G#4442#	
 	
 	5s   /AAAc              #   
  K   	 	 	 	 	 	 	 	 dfd| j                         }t        |t        j                  t        j                  f      st        d| |||      |
t               }t        |t        j                        r
|j                  }|j                  d   }t        |t        j                        st        j                   yt        d |j                  t        j                        D              dkD  rt        d| |||	      	 t        |j!                  |            }t        |t        j$                        st'        |d
      st        j                   y	 t)        j*                  |j-                               }t1        |j2                        D ]  \  }	}
t        |
t        j                        s|s n|j5                          5t)        j*                  t7        |j2                  |	d             }|D ]  }t        |t        j                        s|s |j9                          2t        j:                  t<        j>                  | |j@                  |jB                        }|jE                  tG        |             |    t        |t        j                        r	 t        |jH                  j!                  |            }t        |t        j$                        st'        |d
      st        j                   y	 |j-                         }|jJ                  }t        |t        jL                        st        d|      g } | ||       |st        d|      |d   \  }}||dz
  k(  }tO        ||rdn||z
        }|}|D ]  }d}t1        |      D ]C  \  }	}t'        |d
      s n2|	dz   tQ        |      u r|}n|d   }	 |j-                         }||   }|}E t        j:                  t<        j>                  | | j@                  | jB                        }|jE                  |xs g        |  y t        j                   yy# t
        t"        f$ r t        j                   Y yw xY w# t.        $ r t        j                   Y yw xY w# t
        t"        f$ r t        j                   Y yw xY w# t.        $ r t        j                   Y yw xY w# tR        $ r Y  	t.        $ r t        j                   Y   yw xY ww)aD  
    Arguments:
        self: nodes.Starred
        node: a node related to the current underlying Node.
        context: Inference context used for caching already inferred objects
        assign_path:
            A list of indices, where each index specifies what item to fetch from
            the inference results.
    c                   |j                         }t        |      D ]  \  }}t        |t        j                        rK|j
                  j                  | j
                  j                  k(  r|j                  |t        |      f        y t        |t        j                        s|j                  |t        |j                               f        | ||        y r,   )
r   	enumerater[   r   Starredr&   r   appendlenr   )starredr   lookupsr   r   element$_determine_starred_iteration_lookupss         r(   r  zDstarred_assigned_stmts.<locals>._determine_starred_iteration_lookups  s     '/NE77EMM2MM&&'--*<*<<s6{34'5;;/s7>>+;'<=>4WgwO 0r*   zDStatement {stmt!r} enclosing {node!r} must be an Assign or For node.)rv   r   r   rf   Nr   c              3      K   | ]  }d   yw)   Nr>   )rq   rg   s     r(   rs   z)starred_assigned_stmts.<locals>.<genexpr>  s     <;Qq;s   r  z=Too many starred arguments in the assignment targets {lhs!r}.)rv   r   r   rf   r   )ctxrm   lineno
col_offset)r.   r   z8Could not make sense of this, the target must be a tuplez5Could not make sense of this, needs at least a lookup)r   nodes.Starredr   znodes.Tupler   zlist[tuple[int, int]]returnNone)*	statementr[   r   AssignForr   r   r&   r   BaseContainerr   ra   sumnodes_of_classr   r   r{   r   ro   r   collectionsdequer   r_   r   r.   popleftreversedr   r   r   Storer  r  postinitru   r   r   r   slicer   r   )r0   rv   rf   r   r   r&   lhsrhsr.   r   	left_nodelhs_elts
right_nodepackedinferred_iterabler   r   r   last_element_indexlast_element_lengthis_starred_lastlookup_slicelast_lookupr  found_elementlookup
cur_lookupitered_inner_elementunpackedr  s                                @r(   starred_assigned_stmtsr*    s    $PP(3P>SP	P  >>DdU\\59956R
 	
 "$$%

ll1o#u223"""<#,,U]];<<q@ O 	u{{7+,C c4//0X8N"""	$$SZZ\2D !*#(( 3E9i7"((#((562B)CDH&
!*emm<HHJ ::"~~	 T$Z0! ' !42 $		"	 $TYY__W_%E F ')=)=>gxG
 """	&--/F
 &%++. J 
 *,,T67C GQX 
 3:"+//,1Dq1HI#D*=@R*R
 #G !M!*7!3vw119G,.9J "(J
,+2>>+;(2:>G %,M% "4( zzMM{{??	H =#6B7NQ T i #[ . 	"""	  	"""	N . 	"""	  	"""	h "   ***s   D
TQ (9T"#Q6 D#T)%R 9TR> B1T
SA0T!Q30T2Q33T6RTRT!R;8T:R;;T>STST	T(T,TT
TTc              #     K   ywzbReturn empty generator (return -> raises StopIteration) so inferred value
    is Uninferable.
    Nr>   r   s       r(   match_mapping_assigned_stmtsr-  j           c              #     K   ywr,  r>   r   s       r(   match_star_assigned_stmtsr1  x  r.  r/  c              #    K   t        | j                  t        j                        r_t        | j                  j                  t        j                        r0| j
                  #| j                  j                  j                   yyyyw)z}Infer MatchAs as the Match subject if it's the only MatchCase pattern
    else raise StopIteration to yield Uninferable.
    N)r[   rm   r   	MatchCaseMatchpatternsubjectr   s       r(   match_as_assigned_stmtsr7    sa      	4;;0t{{))5;;7LL kk  ((( ! 8 	1r~   c              #  :   K   t        j                  d       yw)zzHack. Return any Node so inference doesn't fail
    when evaluating __class_getitem__. Revert if it's causing issues.
    N)r   rZ   r   s       r(   generic_type_assigned_stmtsr9    s      ++d
s   )r$   r	   r%   rb   r
  r   )r0   znodes.Constrc   nodes.AugAssign | nodes.BinOprd   rb   re   r   rf   r   rg   r   r
  z4Generator[ConstFactoryResult | util.UninferableBase])
r0   r   rc   r:  r&   r\   rf   r   r
  r   )r.   zSequence[InferenceResult]rf   r   r
  z#Iterator[SuccessfulInferenceResult])r0   r   rc   r:  rd   rb   re   r   rf   r   r   r   r
  z?Generator[_TupleListNodeT | nodes.Const | util.UninferableBase])r0   znodes.ClassDefrc   r:  rd   rb   re   r   rf   r   r   r   r
  Generator[InferenceResult])NNN)
r0   znodes.For | nodes.Comprehensionrv   &node_classes.AssignedStmtsPossibleNoderf   InferenceContext | Noner   list[int] | Noner
  r	   )
r0   znodes.Tuple | nodes.Listrv   r<  rf   r=  r   r>  r
  r	   )
r0   z#nodes.AssignName | nodes.AssignAttrrv   r<  rf   r=  r   r>  r
  r	   )r   z
str | Nonerf   r   r
  r;  )
r0   znodes.Argumentsrv   r<  rf   r=  r   r>  r
  r	   )
r0   zBnodes.AugAssign | nodes.Assign | nodes.AnnAssign | nodes.TypeAliasrv   r<  rf   r=  r   r>  r
  r	   )
r0   znodes.AnnAssignrv   r<  rf   r=  r   r>  r
  r	   )
r0   znodes.ExceptHandlerrv   r<  rf   r=  r   r>  r
  r	   )
r0   z
nodes.Withrv   r<  rf   r=  r   r>  r
  r	   )NN)
r0   znodes.NamedExprrv   r<  rf   r=  r   r>  r
  r	   )
r0   r	  rv   r<  rf   r=  r   r>  r
  r	   )
r0   znodes.MatchMappingrv   nodes.AssignNamerf   r=  r   r  r
  Generator[nodes.NodeNG])
r0   znodes.MatchStarrv   r?  rf   r=  r   r  r
  r@  )
r0   znodes.MatchAsrv   r?  rf   r=  r   r  r
  r@  )
r0   z4nodes.TypeVar | nodes.TypeVarTuple | nodes.ParamSpecrv   r?  rf   r=  r   r  r
  r@  )U__doc__
__future__r   r  r   rd   operator_modcollections.abcr   r   r   r   typingr   r	   r
   r   r   r   r   r   astroid.constr   astroid.contextr   r   astroid.exceptionsr   r   r   r   r   astroid.nodesr   astroid.typingr   r   r   r   r   r   r   posneginvertnot_r    __annotations__r)   r1   r3   r6   r8   r<   matmulr^   ru   r;   _KEY_IMPLyes_if_nothing_inferredrj   rx   r}   r   r   r   raise_if_nothing_inferredr   r   r   r   r   r   r   r   r   r   r   r   r*  r-  r1  r7  r9  r>   r*   r(   <module>rU     s  
 #    C C . . 2 2 ! :  '  /ejjIO- 
									5 1 
&1*/+1 
		
	
				

			 ))+,KD%#Ks
 - ##!
!)! ! 	!
 ! !! :! $!H
)  	
 &*
#*.>*(* ##,
,), , 	,
 , &, E, $,^ ##3
3)3 3 	3
 3 &3  3 $3	&R %% 48'+$(	
)
0 % "	
 	 &< 48'+$(	
"
0 % "	
 	4 48'+$(	B
-B
0B %B "	B
 	B==%5==D 48'+$(	>
>
0> %> "	>
 	>> %% 48'+$(	
L
0 % "	
 	 &. 48'+$(	



0
 %
 "	

 	
%P %% 48'+$(	

0 % "	
 	 &*#'L %% 48'+$(	L
L
0L %L "	L
 	L &L^ %% (,$(	



0
 %
 "	

 	
 &
$ ## 48'+$(	A
A
0A %A "	A
 	A $AH ## (,	







 %

 	


 

 $

 ## (,	







 %

 	


 

 $

 ## (,	)
)
) %) 	)
 ) $)" ## (,		
>	
	 %	 		
 	 $	r*   