
    yIf{                    l   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j&        ej'                  Z(dZ)ej*        ej+        ej,        ej-        dZ.de/d<   dodZ0d Z1d Z2d Z3d Z4d Z5d d d d  d! d" d# d$ d% d& d' d( ej6        d)Z7 e8e79                                          D ]\  Z:Z;e;e7e:d*z   <   ej<        dpd7            Z=dqd:Z>drd>Z?ej<        dsdA            Z@ej<        dtdD            ZA	 dE ZBejC        	 	 	 dudvdL            ZD	 	 	 dudwdNZE	 	 	 dudxdPZFdydSZG	 	 	 dudzdUZHejC        	 	 	 dud{dW            ZI	 	 	 dud|dYZJdZ ZKejC        	 	 	 dud}d\            ZLd] ZMejC        	 	 	 dud~d_            ZNejC        	 	 ddda            ZOej<        	 	 	 duddc            ZPej<        	 	 dddh            ZQej<        	 	 dddj            ZRej<        	 	 dddl            ZSej<        	 	 dddn            ZTdS )zcThis 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_OPERATORSobjr	   opstrreturnr   c                r    | 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)r!   r"   valuefuncs       E/var/www/piapp/venv/lib/python3.11/site-packages/astroid/protocols.py_infer_unary_opr+   /   s>    
 n#S		u%%%    c                F    t          t          | j                  |          S N)r+   tupleeltsselfr"   s     r*   tuple_infer_unary_opr3   <   s    5++R000r,   c                ,    t          | j        |          S r.   )r+   r0   r1   s     r*   list_infer_unary_opr5   @   s    49b)))r,   c                F    t          t          | j                  |          S r.   )r+   setr0   r1   s     r*   set_infer_unary_opr8   D   s    3ty>>2...r,   c                ,    t          | j        |          S r.   )r+   r(   r1   s     r*   const_infer_unary_opr:   H   s    4:r***r,   c                F    t          t          | j                  |          S r.   )r+   dictitemsr1   s     r*   dict_infer_unary_opr>   L   s    4
++R000r,   c                    | |z   S r.    abs     r*   <lambda>rD   S   
    a!e r,   c                    | |z
  S r.   r@   rA   s     r*   rD   rD   T   rE   r,   c                    | |z  S r.   r@   rA   s     r*   rD   rD   U   rE   r,   c                    | |z  S r.   r@   rA   s     r*   rD   rD   V   
    qAv r,   c                    | |z  S r.   r@   rA   s     r*   rD   rD   W   rE   r,   c                    | |z  S r.   r@   rA   s     r*   rD   rD   X   s
    q!t r,   c                    | |z  S r.   r@   rA   s     r*   rD   rD   Y   rE   r,   c                    | |z  S r.   r@   rA   s     r*   rD   rD   Z   rE   r,   c                    | |z  S r.   r@   rA   s     r*   rD   rD   [   rE   r,   c                    | |z  S r.   r@   rA   s     r*   rD   rD   \   rE   r,   c                    | |z  S r.   r@   rA   s     r*   rD   rD   ]   rI   r,   c                    | |z	  S r.   r@   rA   s     r*   rD   rD   ^   rI   r,   )r   r   /z//***%&|^z<<z>>@=r2   nodes.Constopnodenodes.AugAssign | nodes.BinOpoperatorotherr   contextr   _r   @Generator[ConstFactoryResult | util.UninferableBase, None, None]c              #    K   t          j        t                    }t          |t           j                  r|dk    r^t          | j        t
          t          f          r=t          |j        t
          t          f          r| j        dk    s|j        dk    r|V  d S 	 t          |         }	 t          j         || j        |j                            V  d S # t          $ r |V  Y nt          $ r t          j        V  Y nw xY wd S d S # t          $ r |V  Y d S w xY wt          | j        t                    r|dk    rt          j        V  d S |V  d S )NrT   g     j@rU   )r   Constr&   
isinstancer(   intfloatBIN_OP_IMPLr'   	TypeError	Exceptionr   Uninferabler#   )r2   r\   r^   r_   r`   ra   not_implementedimpls           r*   const_infer_binary_oprn   e   s      k.11O%%% 4:U|44 5;e55  c!!U[3%6%6!!!!F
	"x(D')$$tz5;*G*GHHHHHHH & & &%%%%%% ' ' '&&&&&&' &%&& 	" 	" 	"!!!!!!!	"	DJ	$	$ Ss<   D )*C C?#D %C?<D >C??D DDr(   rf   c                    |                      |          }|dk    rt          j        g|_        |S fd| j        D             }t	          |          |z  |_        |S )Nparentg    חAc              3     K   | ]?}t          |t          j                  t          j        |          pt          j        V  @d S r.   )re   r   UninferableBase
safe_inferrk   ).0eltr`   s     r*   	<genexpr>z'_multiply_seq_by_int.<locals>.<genexpr>   s^        #t344W%%9)9     r,   )	__class__r   rk   r0   list)r2   r\   r(   r`   nodefiltered_eltss      `  r*   _multiply_seq_by_intr|      sx     >>>((Ds{{%&	   9  M
 ]##e+DIKr,   r0   Sequence[InferenceResult]#Iterator[SuccessfulInferenceResult]c              #    K   | D ]~}t          |t          j                  rt          j                    V  2|                    |          D ]6}t          |t          j                  s|V  !t          j                    V  7d S r.   )re   r   rs   r   Unknowninfer)r0   r`   rv   inferreds       r*   _filter_uninferable_nodesr      s        * *c4/00 	*-//!!!!IIg.. * *!(D,@AA *"NNNN-//))))	*	* *r,   methodKGenerator[_TupleListNodeT | nodes.Const | util.UninferableBase, None, None]c           	   #  2  K   ddl m} d|_        t          j        t
                    }t          || j                  ro|dk    ri|                     |          }t          t          j
        t          | j        |          t          |j        |                              |_        |V  dS t          |t          j                  rA|dk    r;t          |j        t                    s|V  dS t          | ||j        |          V  dS t          |t           j                  rq|dk    rk|                    |          }	|	st&          j        V  dS t          |	j        t                    st+          d          t          | ||	j        |          V  dS |V  dS )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   rp   rS   zPlease open a bug report.)astroidr   	boundnoder   rd   r&   re   rx   ry   	itertoolschainr   r0   r(   rf   r|   r   Instanceclass_instance_as_indexr   rk   AssertionError)
r2   r\   r^   r_   r`   r   r   rl   rz   as_indexs
             r*   tl_infer_binary_opr      s        Gk.11O%(( X__~~V~,,O)$)W==)%*g>> 
 
	 




	E5;	'	' HOO%+s++ 	!!!!F"4gFFFFFFF	E5>	*	* x322599 	N""""""HNC00 	N !<===&tVX^WMMMMMMMr,   nodes.ClassDef&Generator[InferenceResult, None, None]c                .    |                     | |          S r.   )infer_call_result)r2   r\   r^   r_   r`   r   s         r*   instance_class_infer_binary_opr      s     ##D'222r,   c              #    K   |dd         }|                     d          }| D ]C}t          |t          j                  rt	          |d          s/	 |                                }n# t          $ r Y Qw xY w	 t          ||         t          j        t          j	        f          r|g}n# t          $ r Y nw xY w|D ]}t          j        |          }	 |                    ||          }n# t          t          t          f$ r Y Gw xY w|s|V  Rt          |t          j                  r n=	 t          |                    |          ||          E d{V  # t"          $ r Y  nw xY wEdS )z<Recursive function to resolve multiple assignments on loops.Nr   itered)popre   r   rs   hasattrr   ri   r   rd   Name
IndexErrorgetitemAttributeErrorr   r   _resolve_looppartr   r   )	partsassign_pathr`   indexpartr   stmt
index_nodeassigneds	            r*   r   r      s     aaa.KOOAE " "dD011 	tX&& 		[[]]FF 	 	 	H		&-%+uz)BCC   	 	 	D	 	 	DU++J<<
G<<"$46GH     Hd&:;; 
0 w//g            &   EEC" "sH   A))
A65A6:/B**
B76B7C**DD+*E
E$#E$nodes.For | nodes.Comprehensionrz   &node_classes.AssignedStmtsPossibleNodeInferenceContext | Noner   list[int] | Nonec              #  |  K   t          | t          j                  st          | dd          r| |||dS |Q| j                            |          D ]5}t          |t          j        t          j        f          r|j        E d {V  6n/t          | j                            |          ||          E d {V  | |||dS )Nis_asyncFrz   unknownr   r`   )
re   r   AsyncForgetattriterr   TupleListr0   r   )r2   rz   r`   r   lsts        r*   for_assigned_stmtsr     s       $'' 
74U+K+K 
 &	
 
 	
 9??7++ 	$ 	$C#UZ899 $8#######	$ %TY__W%=%={GTTTTTTTTT"	  r,   nodes.Tuple | nodes.Listc                    |g }	 | j                             |          }n&# t          $ r}t          d| ||          |d }~ww xY w|                    d|           | j                            | ||          S )Nz6Tried to retrieve a node {node!r} which does not existrz   r   r`   r   )rz   r`   r   )r0   r   
ValueErrorr   insertrq   assigned_stmts)r2   rz   r`   r   r   excs         r*   sequence_assigned_stmtsr   ;  s     	%%   D#	
 
 

 	 q%   ;%%7 &   s   ! 
A?A#nodes.AssignName | nodes.AssignAttrc                :    | j                             | |          S )N)rz   r`   )rq   r   r2   rz   r`   r   s       r*   assend_assigned_stmtsr   S  s     ;%%4%AAAr,   name
str | Nonec              #  n   K   ddl m}  j        st          j        V  d S  fd j        D             } j        j        }|rt           j        d         dd           |k    r|dk    r j        j                                        }t          |t          j
                  o
|j        dk    }|j        r+t          |j        t          j                  r|j        j        }|s|dk    r|V  d S |dk    r|                                V  d S |r|j        r|j        j        }t%          |d	          r|j        }t%          |d	          t          |dd            j        j        k    rD|                    |j        |j                  }	|	                     j        ||          E d {V  d S | j        k    rkt          j        d
          }
 |
_        |sH j        j        dk    r8 j        j                                        }|                                g|
_        |
V  d S | j        k    r!t          j        i           } |_        |V  d S 	 t7          |          }                     |                              |          E d {V  t          j        V  d S # t<          $ r t          j        V  Y d S w xY w)Nr   	argumentsc                >    g | ]}|j         j        j        fv|S r@   )r   varargkwarg)ru   argr2   s     r*   
<listcomp>z,_arguments_infer_argname.<locals>.<listcomp>g  s.    WWWCSXdk4:=V-V-VC-V-V-Vr,   r   staticmethod	metaclassclassmethodr   _proxiedr@   __init__)r   r   r   rk   rq   typer   scopere   r   ClassDefr   r   r   r   instantiate_classcallcontextcalleer   r   CallSiteextra_contextinfer_argumentr   r'   r0   r   r   default_valuer   r   )r2   r   r`   r   argsfunctypeclsis_metaclassr   	call_siter   r   s   `           r*   _arguments_infer_argnamer   \  s!     
 "!!!!!> WWWW4>WWWD{H 	DN1%vt44<<&&k &&((!#u~66R38{;R  	-G,=u~!N!N 	-#,C 	8}44IIIFx'')))))F 7& $+fj)) 	%_F fj)) 	%664((DK,<<<!**7+>@UVVI //T7KKKKKKKKKFt{$R(( 	4(J66+$**,,C00223FKtz#B''w''%%d++11':::::::::   s   AJ J43J4nodes.Argumentsc                   ddl m} 	 |j        }n# t          $ r d }Y nw xY w|r;|j        r4|j        j        }t          |d          r|j        }t          |d          nt          | ||          S |r|t          |dd           |
                                j        k    rP|j        }t          |          }d |_        |                    ||          }|                    | j        ||          S t          | ||          S )Nr   r   r   r   r`   )r   r   r   r   r   r   r   r   r   r   framer   r   r   rq   )	r2   rz   r`   r   r   	node_namer   r   r   s	            r*   arguments_assigned_stmtsr     s8    "!!!!!I		    			
  B7& B$+fj)) 	%_F fj)) 	% (iAAA D--1BBB)w''"!!+w!??""4;	7CCC#D)W===s    Bnodes.AugAssign | nodes.Assign | nodes.AnnAssign | nodes.TypeAliasc              #     K   |s| j         V  d S t          | j                             |          ||          E d {V  | |||dS )Nr   )r(   _resolve_assignment_partsr   r   s       r*   assign_assigned_stmtsr     s        jt(
!!;        
 "	  r,   nodes.AnnAssignc              #  ^   K   t          | |||          D ]}|t          j        V  |V  d S r.   )r   r   rk   )r2   rz   r`   r   r   s        r*   assign_annassigned_stmtsr     sR       *$g{KK  """""NNNN	 r,   c              #  H  K   |dd         }|                     d          }| D ]}d}t          |t          j                  r$	 |j        |         \  }}ng# t
          $ r Y  dS w xY wt          |d          rEt          j        |          }	 |                    ||          }n# t          t          f$ r Y  dS w xY w|s dS |s|V  t          |t          j                  r dS 	 t          |                    |          ||          E d{V  # t          $ r Y  dS w xY wdS )z3Recursive function to resolve multiple assignments.Nr   r   )r   re   r   Dictr=   r   r   rd   r   r   r   r   rs   r   r   r   )r   r   r`   r   r   r   ra   r   s           r*   r   r     s     aaa.KOOAE ! !dEJ'' 	"j/!!    T9%% 	U++J<<
G<<$&78     	FF 	 NNNN$"677 
	FF4NN7++['          "   A! !s6   A
A#"A#B""B87B8%*D
DDnodes.ExceptHandlerc              #     K   ddl m} t          j        | j                  D ]5}t          |t          j                  r|                    |          }|V  6| |||dS )Nr   )objectsr   )	r   r   r   unpack_inferr   re   r   r   ExceptionInstance)r2   rz   r`   r   r   r   s         r*   excepthandler_assigned_stmtsr     s         -di88  h// 	;00::H"	  r,   c              #  "  K   	 t          |                    |                    }n## t          $ r}t          |          |d }~ww xY wt	          |t
          j                  r|j        }|j        st          d|          |j        j	        D ]_}t          |                    |          d           }t	          |t          j
                  r|                                t          k    r n`t          |          	 t          |                                          V  d S # t          $ r}t          |          |d }~ww xY wt	          |t
          j                  r	 t          |                    d|                    }n0# t          t           t          f$ r}	t          |          |	d }	~	ww xY wt	          |t
          j                  st          |          |                    | |          E d {V  d S t          |          )Nr   )rz   z,No decorators found on inferred generator %s	__enter__)nextr   StopIterationr   re   r   r   rq   r   r   FunctionDefqname_CONTEXTLIB_MGRinfer_yield_typesr   igetattrr   BoundMethodr   )
r2   mgrr`   r   er)   decorator_node	decoratorenterr   s
             r*   _infer_context_managerr    sM     .		'	2233 . . .#&&&A-.(EO,, ' 	 >T    #o3 	, 	,N^11'1BBDIII)U%677 ??$$77E !d++++	3x11334444444 	3 	3 	3 d+++2	3 
Hen	-	- 	'	9**;*HHIIEE 7G 	9 	9 	9 h///S8	9%!233 	- e,,,,**499999999999#&&&&sD   #( 
AAA#D& &
E0EE$$F	 	F6 F11F6
nodes.Withc           
   #    K   	 t          fd| j        D                       }n# t          $ r Y dS w xY w|t          | ||          E d{V  nt          | ||          D ]}|}|D ]}}t	          |d          st          d| ||          	 |j        |         }5# t          $ r}t          d| ||          |d}~wt          $ r}t          d| ||          |d}~ww xY w|V  | ||dS )	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  .   K   | ]\  }}|k    |V  d S r.   r@   )ru   r   varsrz   s      r*   rw   z&with_assigned_stmts.<locals>.<genexpr>d  s+      EE;C3EEr,   Nr0   z0Wrong type ({targets!r}) for {node!r} assignment)rz   targetsr   r`   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   r0   r   ri   )	r2   rz   r`   r   r   resultr!   r   r   s	    `       r*   with_assigned_stmtsr  B  s     BEEEE$*EEEEE   tt)$W==========,T3@@ 	 	FC$  sF++ (J! $$/ '   (5/CC!   ('! $$/ '    !   (K! $$/ '    IIII"	  s0    & 
44B
C#'B<<C#	CC#nodes.NamedExprc              #     K   | j         |k    r#| j                            |          E d{V  dS t          d| ||          )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    si       {d:##G#444444444442#	
 
 
 	
r,   nodes.Starredc              #  `
  K   dfd	|                                  }t          |t          j        t          j        f          st          d
| |||          |t                      }t          |t          j                  r]|j        }|j        d         }t          |t          j	                  st          j        V  dS t          d |                    t          j                  D                       dk    rt          d| |||          	 t          |                    |                    }n&# t
          t"          f$ r t          j        V  Y dS w xY wt          |t          j                  st'          |d          st          j        V  dS 	 t)          j        |                                          }n# t.          $ r t          j        V  Y dS w xY wt1          |j                  D ]\  }	}
t          |
t          j                  s|s n|                                 8t)          j        t7          |j        |	d                             }|D ]}t          |t          j                  s|s ni|                                 5t          j        t<          j        | |j         |j!                  }|"                    tG          |                     |V   t          |t          j                  r3	 t          |j$                            |                    }n&# t
          t"          f$ r t          j        V  Y dS w xY wt          |t          j                  st'          |d          st          j        V  dS 	 |                                }n# t.          $ r t          j        V  Y dS w xY w|j%        }t          |t          j&                  st          d|          g } | ||           |st          d|          |d         \  }}||dz
  k    }tO          ||rdn||z
            }|}|D ]}d}t1          |          D ]\  }	}t'          |d          s nl|	dz   tQ          |          u r|}n|d         }	 |                                }||         }|}V# tR          $ r Y  n t.          $ r t          j        V  Y   dS w xY wt          j        t<          j        | | j         | j!                  }|"                    |pg            |V   dS t          j        V  dS dS )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.
    starredr  r  nodes.Tuplelookupslist[tuple[int, int]]r$   Nonec                   |                                 }t          |          D ]\  }}t          |t          j                  rA|j        j        | j        j        k    r'|                    |t          |          f            d S t          |t          j	                  rC|                    |t          |                                           f            | ||           d S r.   )
r   	enumeratere   r   Starredr(   r   appendlenr   )r  r  r  r   r   element$_determine_starred_iteration_lookupss         r*   r  zDstarred_assigned_stmts.<locals>._determine_starred_iteration_lookups  s     '// 		P 		PNE77EM22M&'-*<<<s6{{3444'5;// Ps7>>+;+;'<'<=>>>44WgwOOO		P 		Pr,   zDStatement {stmt!r} enclosing {node!r} must be an Assign or For node.)rz   r   r   r`   Nr   c              3     K   | ]}d V  dS )   Nr@   )ru   ra   s     r*   rw   z)starred_assigned_stmts.<locals>.<genexpr>  s"      <<Qq<<<<<<r,   r  z=Too many starred arguments in the assignment targets {lhs!r}.)rz   r	  r   r`   r   )ctxrq   lineno
col_offset)r0   r   z8Could not make sense of this, the target must be a tuplez5Could not make sense of this, needs at least a lookup)r  r  r  r  r  r  r$   r  )*	statementre   r   AssignForr   r   r(   r	  BaseContainerr   rk   sumnodes_of_classr  r   r   r   rs   r   collectionsdequer   ri   r  r0   popleftreversedr   r   r   Storer!  r"  postinitry   r   r  r   slicer  r   )r2   rz   r`   r   r   r(   lhsrhsr0   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_stmtsrB    sI     $P P P P P P  >>DdU\59566 
R
 
 
 	
 "$$$%% =
l1o#u233 	""""F<<#,,U];;<<<<<q@@ O   	u{{7++,,CC. 	 	 	""""FF	 c4/00 	X8N8N 	""""F	$SZZ\\22DD 	 	 	""""FF	 !*#( 3 3 	 	E9i77  E"(#(5662B)C)CDDH&  
!*em<<  HHJJJ :"~	   T$ZZ000$	"" T	 $TY__W_%E%E F F. 	 	 	""""FF	 ')=>> 	gxG
 G
 	 """"F	&--//FF 	 	 	""""FF	 &%+.. 	 J   
 *,,,T67CCC 	 GQX   
 3:"+//,1Dq1HI#SDD*=@R*R
 
 # (	 (	G !M!*7!3!3 , ,vw11 E19G,,.9JJ "(J
,+2>>+;+;(2:>G %,MM "   EE    ****FFFF zM{?	  H =#6B777NNNFFiT Ts`   "D3 3EE&F; ;GG<(L% %MMN N76N7R&&
S3SSnodes.MatchMappingnodes.AssignNamer  #Generator[nodes.NodeNG, None, None]c              #  
   K   dS zbReturn empty generator (return -> raises StopIteration) so inferred value
    is Uninferable.
    Nr@   r   s       r*   match_mapping_assigned_stmtsrH  j         Fr,   nodes.MatchStarc              #  
   K   dS rG  r@   r   s       r*   match_star_assigned_stmtsrL  x  rI  r,   nodes.MatchAsc              #     K   t          | j        t          j                  r@t          | j        j        t          j                  r| j        | j        j        j        V  dS dS dS dS )z}Infer MatchAs as the Match subject if it's the only MatchCase pattern
    else raise StopIteration to yield Uninferable.
    N)re   rq   r   	MatchCaseMatchpatternsubjectr   s       r*   match_as_assigned_stmtsrS    sw       	4;00)t{)5;77) L k (((((() ) ) ) ! r,   4nodes.TypeVar | nodes.TypeVarTuple | nodes.ParamSpecc              #  
   K   dS rG  r@   r   s       r*   generic_type_assigned_stmtsrV    rI  r,   )r!   r	   r"   r#   r$   r   )r2   r[   r\   r]   r^   r#   r_   r   r`   r   ra   r   r$   rb   )
r2   r   r\   r]   r(   rf   r`   r   r$   r   )r0   r}   r`   r   r$   r~   )r2   r   r\   r]   r^   r#   r_   r   r`   r   r   r   r$   r   )r2   r   r\   r]   r^   r#   r_   r   r`   r   r   r   r$   r   )NNN)
r2   r   rz   r   r`   r   r   r   r$   r	   )
r2   r   rz   r   r`   r   r   r   r$   r	   )
r2   r   rz   r   r`   r   r   r   r$   r	   )r   r   r`   r   r$   r   )
r2   r   rz   r   r`   r   r   r   r$   r	   )
r2   r   rz   r   r`   r   r   r   r$   r	   )
r2   r   rz   r   r`   r   r   r   r$   r	   )
r2   r   rz   r   r`   r   r   r   r$   r	   )
r2   r  rz   r   r`   r   r   r   r$   r	   )NN)
r2   r  rz   r   r`   r   r   r   r$   r	   )
r2   r  rz   r   r`   r   r   r   r$   r	   )
r2   rC  rz   rD  r`   r   r   r  r$   rE  )
r2   rJ  rz   rD  r`   r   r   r  r$   rE  )
r2   rM  rz   rD  r`   r   r   r  r$   rE  )
r2   rT  rz   rD  r`   r   r   r  r$   rE  )U__doc__
__future__r   r*  r   r^   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+   r3   r5   r8   r:   r>   matmulrh   ry   r=   _KEY_IMPLyes_if_nothing_inferredrn   r|   r   r   r   r   raise_if_nothing_inferredr   r   r   r   r   r   r   r   r   r  r  r  rB  rH  rL  rS  rV  r@   r,   r*   <module>rk     sF  
   # " " " " "             C C C C C C C C C C C C . . . . . . . . . . 2 2 2 2 2 2 2 2 2 2 2 2 ! ! ! ! ! ! : : : : : : : :              ' & & & & &           Jg/ejIIO- 
						5 5     
& 
& 
& 
&1 1 1* * */ / /+ + +1 1 1 
					

		

								



		  4))++,, $ $KD%#Ks
 #! ! ! $#!H   &* * * * #, , , $#,^ #3 3 3 $#3	& & &R % 48'+$(	    &%< 48'+$(	    4 48'+$(	B B B B B= = = =D 48'+$(	> > > > >> % 48'+$(	    &%. 48'+$(	
 
 
 
 
% % %P % 48'+$(	    &%*#' #' #'L % 48'+$(	L L L L &%L^ % (,$(	
 
 
 
 &%
$ # 48'+$(	A A A A $#AH # (,	

 

 

 

 $#

 # (,	

 

 

 

 $#

 # (,	) ) ) ) $#)" # (,	

 

 

 

 $#

 

 

r,   