
    Xh|                        U d dl m Z  d dlmZmZmZmZ d dlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZ d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dlmZmZ d dl m!Z!m"Z" d dl#m$Z$ d d	lm%Z%m&Z& ejN                  d
k  rd dl(m)Z) nd dlm)Z) e$ G d de             Z*e$ G d de             Z+e$ G d de             Z,e$ G d de             Z-ee,e-f   Z.de	dee	df   fdZ/e$e G d d                    Z0de1dee1   fdZ2de1dee1   de1fdZ3d Z4de5e6e1d f   e1z     de5e6e1d f      fd!Z7e$e G d" d#e0                    Z8 G d$ d%e      Z9e
d&   Z: G d' d(e      Z; G d) d*      Z< e<       Z=d+Z> e       Z? e@       ZA G d, d-eB      ZCd.e1d/e;fd0ZDej                  d1ej                  d2ej                  d3ej                  d4ej                  d5ej                  d6ej                  d7ej                  d8ej                  d9ej                  d:ej                  d;ej                  d<ej                  d=iZReSeTej0                     e6e1   f   eUd><   ej                  d?ej                  d@ej                  dAej                  dBej                  dCej                  dDej                  dEiZ]eSeTej                     e6e1d f   f   eUdF<   ej                  dGej                  dHej                  dIej                  dJiZceSeTej                     e6e1d f   f   eUdK<    G dL dM      Ze G dN dO      Zfdee6e1d f   df   fdPZgd/e;de0fdQZhdRe:dSeSdeifdTZjdUeej                  df   d/e;fdVZlde	dUej                  d/e;fdWZndXede	dUej                  d/e;fdYZodZe1d/e;fd[ZpdUej                  d/e;fd\Zqd] Zrh d^ZseSe1eteue6ej                  ej                  ej                  ej                  ej                  ej                  ej                  e9e<hZ}e5e+   eUd_<   dnd`Z~daZdbZ e5 ee5             e5 ee            z  Z eTi j	                               ZeTej                  j                     eUdc<   eeehZh et e~et      eS e~eSe      ej                  eu e~eue      e5 e~e5e      e e~e      ee1 e~e1      e6 e~e6      eeD  cg c]  }  e~|       D ]  }|  c}} ej                   e~ej                  e      ej                   e~ej                  e      ej                   e~ej                  e      ej                   e~ej                  e      ej                   e~ej                  e      ej                   e~ej                   ee1            ej                   e~ej                  e      ej                  j                  ej                  j                   Zh e}e5ee@eTeee!e"Ze5e.   eUdd<   h eZ e0dedfdfdfdf e5       dfdfg       e8e}esedhdihedededeej	       e0dededededededek      dlZg dmZyc c}} w )o    )copy)isclass	signature	Signature	getmodule)	AnnotatedAnyStrCallableLiteral
NamedTupleNewTypeOptionalProtocolSequence	TypeGuardUnionget_args
get_originis_typeddictN)cached_property)	dataclassfield)MethodDescriptorType
ModuleType)undoc)SelfLiteralString)      )TypeAliasTypec                       e Zd ZddZy)
HasGetItemNc                      y N selfkeys     M/var/www/html/myenv/lib/python3.12/site-packages/IPython/core/guarded_eval.py__getitem__zHasGetItem.__getitem__*           returnN)__name__
__module____qualname__r*   r%   r,   r)   r"   r"   (       +r,   r"   c                       e Zd ZdefdZy)InstancesHaveGetItemr.   c                      y r$   r%   )r'   argskwargss      r)   __call__zInstancesHaveGetItem.__call__/   r+   r,   N)r/   r0   r1   r"   r8   r%   r,   r)   r4   r4   -   s
    :::r,   r4   c                       e Zd ZddZy)
HasGetAttrNc                      y r$   r%   r&   s     r)   __getattr__zHasGetAttr.__getattr__4   r+   r,   r-   )r/   r0   r1   r<   r%   r,   r)   r:   r:   2   r2   r,   r:   c                       e Zd Zy)DoesNotHaveGetAttrN)r/   r0   r1   r%   r,   r)   r>   r>   7   s    r,   r>   funcr.   c                     t        | dd      }t        |      }t        | dd      }t        |dd      }||r|r|r||vrt        ||      S y)z}Get unbound method for given bound method.

    Returns None if cannot get unbound method, or method is already unbound.
    __self__Nr/   __dict__)getattrtype)r?   ownerowner_classnameinstance_dict_overridess        r)   _unbind_methodrI   @   sa    
 D*d+Eu+K4T*D%eZ>''D8O,O {D))r,   c                       e Zd ZU dZdZeed<   dZeed<   dZeed<   dZ	eed<   dZ
eed<   dZeed<   dZeed	<   dZeed
<    ee      Zee   ed<   d Zd Zddeedf   fdZd Zy)EvaluationPolicyz Definition of evaluation policy.Fallow_locals_accessallow_globals_accessallow_item_accessallow_attr_accessallow_builtins_accessallow_all_operationsallow_any_callsallow_auto_importdefault_factoryallowed_callsc                     | j                   S r$   )rN   )r'   valueitems      r)   can_get_itemzEvaluationPolicy.can_get_itemd       %%%r,   c                     | j                   S r$   )rO   )r'   rX   attrs      r)   can_get_attrzEvaluationPolicy.can_get_attrg   r[   r,   Ndunders.c                     | j                   ryy NT)rQ   )r'   r_   abs       r)   can_operatezEvaluationPolicy.can_operatej   s    $$ %r,   c                 v    | j                   ry|| j                  v ryt        |      }|r|| j                  v ryy y ra   )rR   rV   rI   )r'   r?   owner_methods      r)   can_callzEvaluationPolicy.can_calln   sC    4%%%%d+LD,>,>> ?<r,   r$   )r/   r0   r1   __doc__rL   bool__annotations__rM   rN   rO   rP   rQ   rR   rS   r   setrV   r
   rZ   r^   tuplestrrd   rg   r%   r,   r)   rK   rK   U   s     + %%!&$&#t##t#"'4'!&$&!OT!#t##(#=M3x==&&5c? 
r,   rK   module_nameaccess_pathc                     	 t         j                  |    }|D ]  }t        ||      } |S # t        t        f$ r= dj                  | g|      }|t         j                  v rt         j                  |   cY S  w xY w)a  Get value from external module given a dotted access path.

    Only gets value if the module is already imported.

    Raises:
    * `KeyError` if module is removed not found, and
    * `AttributeError` if access path does not match an exported object
    .)sysmodulesrC   KeyErrorAttributeErrorjoin)rn   ro   member_typer]   module_paths        r)   _get_externalry   {   s~    kk+. 	5D!+t4K	5n% hh:k:;#++%;;{++s   '* AA64A6method_namec                    |t         j                  vr'dj                  |g|      }|t         j                  vry	 t        ||      }t	        |       }t	        |       |k(  ryt        |t              r@t        |      }|r|j                  sy|j                  j                  |j                        ry|dk(  ryt        |t              s.t        | |      r!t        ||d       }t        ||d       }	|	|k(  ryy y y # t        t        f$ r Y yw xY w)Nrq   FT__getattribute__)rr   rs   rv   ry   rD   
isinstancer   r   r/   
startswithrC   ru   rt   )
rX   rn   ro   rz   full_module_pathrw   
value_typevalue_modulemethodmember_methods
             r)   _has_original_dunder_externalr      s    #++%88[$?;$?@3;;.#K=%[
;+%k:.$Z0L|'<'<$$//0D0DE,, +z2z%7UZd;F#KdCM& ' 8V2
 H% s)   %C6 !)C6 %C6 1C6 7;C6 6DDc                     t        |       }||v ryt        ||d       }|y ||v ry|D ]  ^}}t        | |||      s y y)NTF)rD   rC   r   )	rX   allowed_typesallowed_methodsallowed_externalrz   r   r   rn   ro   s	            r)   _has_original_dunderr      se    
 eJ ]"Zd3F~ %5 !k([+V r,   
allow_list.c                     | D ch c].  }t        |t              r|nt        |j                  d            0 c}S c c}w )z<Replace dotted paths on the provided allow-list with tuples.rq   )r}   rl   split)r   paths     r)   _coerce_path_to_tuplesr      s?      4'U4::c?-CC  s   3;c                      e Zd ZU  ee      Zee   ed<    ee      Zee	e
df   e
z     ed<    ee      Zee   ed<    ee      Zee	e
df   e
z     ed<    ee      Zeed<    ee      Zee	e
df   e
z     ed<    eed	
      Zee
ee   f   ed<   d Zd Zdde	e
df   fdZde
dee   fdZedee   fd       Zedee   fd       Zedee   fd       Zdee   fdZy)SelectivePolicyrT   allowed_getitem.allowed_getitem_externalallowed_getattrallowed_getattr_externalallowed_operationsallowed_operations_externalF)rU   init_operation_methods_cachec                    t        | j                        }t        || j                  | j                  |d      }t        || j                  | j
                  |d      }d}||rd}n|xr |}|rwt        |      }t        ||      syt        ||      }t        |t              }	|	syt        |      | j                  v ry|D ]#  ^}
}	 t        |
|      }t        ||      }||k(  c S  y# t        t        f$ r Y  yw xY w)Nr|   r   r   r   rz   r<   FT)r   r   r   r   _getattribute_methods_getattr_methodsrD   hasattrrC   r}   propertyry   rt   ru   )r'   rX   r]   r   has_original_attributehas_original_attracceptvalue_classclass_attr_valis_propertyrn   ro   external_classexternal_class_attr_vals                 r)   r^   zSelectivePolicy.can_get_attr   s8   #9$:W:W#X !5.. 665*"
 1.. 115%
  $)?F 'A+AF u+K;-$[$7N$^X>K E{d222 .F A)k!%2;%LN.5nd.K+ &)@@@A 	 !.1 ! !s   C''C:9C:c                 t    t        | j                        }t        || j                  | j                  |d      S )zTAllow accessing `__getiitem__` of allow-listed instances unless it was not modified.r*   r   )r   r   r   r   _getitem_methods)r'   rX   rY   r   s       r)   rZ   zSelectivePolicy.can_get_item!  s;    #9$:W:W#X #.. 115%
 	
r,   Nr_   c                     t        | j                        }|g}||j                  |       t        |D cg c]2  }|D ]+  }t	        || j
                  | j                  |      ||      - 4 c}}      S c c}}w )Nr   )r   r   appendallr   r   _operator_dunder_methods)r'   r_   rb   rc   r   objectsdunderobjs           r)   rd   zSelectivePolicy.can_operate,  s    &<,,'
# #=NN1 &
 "
  %"&"9"9$($A$A&$I%@ &


 	

s   7A5
r   r.   c                     || j                   vr)| j                  | j                  |      | j                   |<   | j                   |   S r$   )r   _safe_get_methodsr   )r'   r   s     r)   r   z(SelectivePolicy._operator_dunder_methodsA  sI    666484J4J''5D))&1 ,,V44r,   c                 :    | j                  | j                  d      S )Nr*   )r   r   r'   s    r)   r   z SelectivePolicy._getitem_methodsH      %%d&:&:MJJr,   c                 :    | j                  | j                  d      S )Nr<   r   r   r   s    r)   r   z SelectivePolicy._getattr_methodsL  r   r,   c                 :    | j                  | j                  d      S )Nr|   r   r   s    r)   r   z%SelectivePolicy._getattribute_methodsP  s    %%d&:&:<NOOr,   c           	      P    |D ch c]  }t        ||d       }|r| c}}S c c}}w r$   )rC   )r'   classesrG   class_r   s        r)   r   z!SelectivePolicy._safe_get_methodsT  s5     "
"646 
 	
 
s   "r$   )r/   r0   r1   r   rk   r   r4   rj   r   rl   rm   r   MayHaveGetattrr   r   r   dictr   r
   r^   rZ   rd   r   r   r   r   r   r   r%   r,   r)   r   r      sw    27s1KOS-.K;@QT;Uc%S/C"78U+0+EOS(E;@QT;Uc%S/C"78U#C88>CTW>XU38_s%:!;X9>5:d3H#56 6p	

5c? 
*5s 5s8} 5 K#h- K K K#h- K K Ps8} P P
#h- 
r,   r   c                       e Zd ZdZy)_DummyNamedTuplez<Used internally to retrieve methods of named tuple instance.Nr/   r0   r1   rh   r%   r,   r)   r   r   ]  s    Fr,   r   )	forbiddenminimallimitedunsafe	dangerousc                   p    e Zd ZU eed<   eed<   dZeed<   dZeed<   dZ	e
ee   ef   dz  ed<   i Zeed	<   y)
EvaluationContextlocalsglobalsr   
evaluationFin_subscriptNauto_importpolicy_overrides)r/   r0   r1   r   rj   r   EvaluationPolicyNamer   ri   r   r
   listrm   r   r   r%   r,   r)   r   r   d  sK    LM'2J$2 L$:>K$s)Z/047>dr,   r   c                       e Zd ZdZd Zy)_IdentitySubscriptz<Returns the key itself when item is requested via subscript.c                     |S r$   r%   r&   s     r)   r*   z_IdentitySubscript.__getitem__w  s    
r,   N)r/   r0   r1   rh   r*   r%   r,   r)   r   r   t  s
    Fr,   r   __SUBSCRIPT_SENTINEL__c                       e Zd ZdZy)GuardRejectionz7Exception raised when guard rejects evaluation attempt.Nr   r%   r,   r)   r   r     s    Ar,   r   codecontextc                    |j                   }|j                  dk(  rt        d      |j                  rW| s
t	               S |j                         }t        |t        <   t        dz   | z   dz   } t        d	i i |j                         d|i}|j                  dk(  r!t        | |j                  |j                         S t        j                  | d      }t        ||      S )
a7  Evaluate provided code in the evaluation context.

    If evaluation policy given by context is set to ``forbidden``
    no evaluation will be performed; if it is set to ``dangerous``
    standard :func:`eval` will be used; finally, for any other,
    policy :func:`eval_node` will be called on parsed AST.
    r   zForbidden mode[]r   r   eval)moder%   )r   r   r   r   rl   r   IDENTITY_SUBSCRIPTSUBSCRIPT_MARKERr   _asdictr   r   astparse	eval_node)r   r   locals_
expressions       r)   guarded_evalr     s     nnG[(-..
 
 7N,,.$6 !#%,s2#S&R):&Rx>Q&RS[(D'//7>>::4f-JZ))r,   )__add__)__sub__)__mul__)__truediv__)__floordiv__)__mod__)__pow__)
__lshift__)
__rshift__)__or__)__xor__)__and__)
__matmul__BINARY_OP_DUNDERS)__eq__)__ne__r   )__lt____gt__)__le____ge__)r   r   )r   r   )__contains__COMP_OP_DUNDERS)__neg__)__pos__)
__invert____inv__)__not__UNARY_OP_DUNDERSc                       e Zd ZdZy)ImpersonatingDuckzXA dummy class used to create objects of other classes without calling their ``__init__``Nr   r%   r,   r)   r  r    s    br,   r  c                   v     e Zd ZdZddee   dee   fdZdefdZdefdZ	 fdZ
d	efd
Zd	efdZd Z xZS )_DuckzHA dummy class used to create objects pretending to have given attributes
attributesitemsc                 0    |xs i | _         |xs i | _        y r$   r  r  )r'   r  r  s      r)   __init__z_Duck.__init__  s    $*[b
r,   r]   c                      | j                   |   S r$   r  r'   r]   s     r)   r<   z_Duck.__getattr__  s    t$$r,   c                     || j                   v S r$   r  r  s     r)   __hasattr__z_Duck.__hasattr__  s    t&&r,   c                 >    g t        t              | j                  S r$   )dirsuperr  )r'   	__class__s    r)   __dir__z_Duck.__dir__  s    .U.doo..r,   r(   c                      | j                   |   S r$   r  r&   s     r)   r*   z_Duck.__getitem__      zz#r,   c                      | j                   |   S r$   r  r&   s     r)   __hasitem__z_Duck.__hasitem__  r  r,   c                 6    | j                   j                         S r$   )r  keysr   s    r)   _ipython_key_completions_z_Duck._ipython_key_completions_  s    zz  r,   )NN)r/   r0   r1   rh   r   r   r	  rm   r<   r  r  r*   r  r  __classcell__)r  s   @r)   r  r    s[    R!8D> !$ !% %' '/s s !r,   r  c                 X    d }|j                         D ]  \  }}t        | |      s|} |S r$   )r  r}   )node_opr_   r   opcandidate_dunders        r)   _find_dunderr!    s8    F ' &gr"%F& Mr,   c                     t        t        | j                           }| j                  j	                         D ]  \  }}t        ||      st        |||       ! |S r$   )r   EVALUATION_POLICIESr   r   r  r   setattr)r   policyr(   rX   s       r)   
get_policyr&    sW    %g&8&89:F..446 (
U63FC'( Mr,   policy_namer   c                     t         |    }d}|j                         D ]0  \  }}t        ||      rt        j                  d|d| d       d}2 |S )NTz	Override z is not valid with z evaluation policyF)r#  r  r   warningswarn)r'  r   r%  all_goodr(   rX   s         r)   _validate_policy_overridesr,     sg     !-FH&,,. 
Uvs#MMC7"5k_DVW H Or,   nodec                 (   t              }| yt        | t        j                        rt	        | j
                        S t        | t        j                        rt	        | j                        }t	        | j                        }t        | j                  t              }|rP|j                  |||      r t        ||d         |      S t        d| dt        |      dj                    d      t        | t        j"                        r`t	        | j                        }d}d}t%        | j&                  | j(                        D ]   \  }}t	        |      }d}	t        |t*              }|smt        |t        j,                        rt*        t        j.                     }d}t        |t        j0                        rd	}	t        |t        j2                        rd	}	d}|	s|r|d   }	|	ru|	d
k(  r||fn||f\  }
}|	d	k(  s|r6|j                  ||
|      r# t        t4        |	      |
|      }|r| }|sd}|}t        d|	 dt        |      dj                    d      t7        d|	 d       |S t        | t        j8                        r| j:                  S t        | t        j<                        rt?        fd| j@                  D              S t        | t        jB                        r$| j@                  D cg c]  }t	        |       c}S t        | t        jD                        r$| j@                  D ch c]  }t	        |       c}S t        | t        jF                        rYtI        t%        | jJ                  D cg c]  }t	        |       c}| jL                  D cg c]  }t	        |       c}            S t        | t        jN                        rItQ        t	        | jR                        t	        | jT                        t	        | jV                              S t        | t        jX                        rt	        | jZ                        }t        | j                  t\              }|rO|j                  ||      r	  t        ||d                S t        d| dt        |      dj                    d      t        | t        jb                        rgt	        | j:                        }t	        | jP                        }|je                  ||      r||   S t        dt        |      dj                    d      t        | t        jf                        rti        | jj                        S t        | t        jl                        rlt	        | j:                        }|jo                  || jp                        rt        || jp                        S t        dt        |      dj                    d      t        | t        jr                        rDt	        | jt                        }|rt	        | j
                        S t	        | jv                        S t        | t        jx                        rt	        | jz                        }|j}                  |      r4| j~                  s(| j                  D cg c]  }t	        |       }} || S t        |      r,t        |j                  |       }|t        ur|S t        |      S t        ||       }|t        ur|S t        d|dj                    d      t7        dt        j                  |             c c}w c c}w c c}w c c}w # t^        $ r% ta        d| j                   dt        |             w xY wc c}w )a  Evaluate AST node in provided context.

    Applies evaluation restrictions defined in the context. Currently does not support evaluation of functions with keyword arguments.

    Does not evaluate actions that always have side effects:

    - class definitions (``class sth: ...``)
    - function definitions (``def sth: ...``)
    - variable assignments (``x = 1``)
    - augmented assignments (``x += 1``)
    - deletions (``del x``)

    Does not evaluate operations which do not return values:

    - assertions (``assert x``)
    - pass (``pass``)
    - imports (``import x``)
    - control flow:

        - conditionals (``if x:``) except for ternary IfExp (``a if x else b``)
        - loops (``for`` and ``while``)
        - exception handling

    The purpose of this function is to guard against unwanted side-effects;
    it does not give guarantees on protection from malicious code execution.
    Nr   zOperation (`z`) forznot allowed in  modeTFis_r   zComparison (`zComparison `z` not supportedc              3   6   K   | ]  }t        |        y wr$   )r   ).0er   s     r)   	<genexpr>zeval_node.<locals>.<genexpr>g  s     >qYq'*>s   zbad operand type for unary z: z$Subscript access (`__getitem__`) forz not allowed in z$Attribute access (`__getattr__`) forzCall forzUnhandled node)Gr&  r}   r   
Expressionr   bodyBinOpleftrightr!  r  r   rd   rC   r   rD   r   Comparezipopscomparatorsr   NotInInIsIsNotoperator
ValueErrorConstantrX   Tuplerl   eltsListSetDictr   r  valuesSliceslicelowerupperstepUnaryOpoperandr   ru   	TypeError	SubscriptrZ   Name_eval_node_nameid	Attributer^   r]   IfExptestorelseCallr?   rg   keywordsr6   r   _eval_return_type__new__NOT_EVALUATED_create_duck_for_heap_typedump)r-  r   r%  r8  r9  r_   all_truenegater  r   rb   rc   resultr3  kvrX   slice_rY  r?   argr6   overridden_return_typereturn_types    `                      r)   r   r     s   6  F|$'G,,$		"G,$**g.tww(9:!!'470wtWQZ077$"7)62J%g&8&8%9? 
 $$G,TXXt'7'78 !	IBeW-EF"27Gb#)),-cff5G!Fb#&&)"Fb#)),"F!Fg (..(@t}tUm1U?g&2D2DWaQR2S6WXv6q!<F%+!#( D('xv6T
)'*<*<)=UC  !"6(/: ?!	D $%zz$		">DII>>>$!/3yy9!	!W%99$ /3yy9!	!W%99$!04		:11g&:04<11g&<
 	
 $		"djj'*djj'*dii)
 	

 $$$,,0tww(89!!'51575'!*577 %"7)62K%g&8&8%9? 
 $&$**g.4::w/uf-= 2Kw112%8
 	

 $!tww00$&$**g.udii05$)),,2Kg0017
 	

 $		"G,TYY00T[['22$!G,??4 7;yyAIc7+ADA;4=
 &7t||T7%S"%]:---d33+D$@K-/""g0017
 	

 %sxx~
66g :9 ;<  & #5dggYbeN P Bs*   3]
1]9]]<] (^.^c                     	 t        |       }|j                  t        j
                  u}|rt        |j                  || ||      S t        S # t        $ r	 t        }Y Nw xY w)zyEvaluate return type of a given callable function.

    Returns the built-in type, a duck or NOT_EVALUATED sentinel.
    )r   rC  UNKNOWN_SIGNATUREreturn_annotationr   empty_resolve_annotationr_  )r?   r-  r   sig	not_emptys        r)   r]  r]    s^    
 o
 %%Y__<I"3#8#8#tT7SS    s   A
 
AArp  c                 2   t        | t              rt        | |      n| } t        |       }| t        u rt        |d      r|j                  S |t        u rt        |       }t        |      dk(  r|d   S y| t        u ry| t        u r{d}t        |j                  j                               D ]  \  }\  }	}
|
j                  t        u s|} n |2|t        |j                         k  rt#        |j                   |   |      S yy|t$        u ry|t&        u rVt        |       D cg c]!  }t)        t+        |||||            D ]  }| # }}}t-        t.        j1                  |            S t3        |       rjt-        t.        j1                  t)        t/                           | j4                  j                         D ci c]  \  }}|t+        |||||       c}}      S t        | d	      r(t-        t.        j1                  t)        |                   S |t6        u rt        |       d   }t+        |||||      S t        | t8              rt;        | j<                  ||      S t        | t>              rt;        | j@                  ||      S t;        | ||      S c c}}w c c}}w )
zKResolve annotation created by user with `typing` module and custom objects.rA      r    NFr  r  _is_protocol)!r}   rm   rU  r   r   r   rA   r   r   lenr   r	   	enumerate
parametersr  
annotationr6   r   r   r   r  ro  r  r   fromkeysr   rj   r   r   _eval_or_create_duck__supertype__r    	__value__)ry  rp  r?   r-  r   origin	type_argsindexir(   rX   type_argr]   r  re  rf  s                   r)   ro  ro    s    j#& 	
G, 
 
#FTgdJ7}}	7	Z(	y>QQ< 	}	$	v	()=)=)?@ 	OA|U6)	 TYY!7TYYu-w77 "8	9		5 %Z0
/#tT7ST
  


 

 j 9::	j	!}}S[1 '66<<>Aq &q#tT7CC
 	
 
^	,c*o >??	9	J'*"8S$gFF	J	(#J$<$<dGLL	J	.#J$8$8$HH#Jg>>1
s   &J6Jnode_idc                    t        |      }|j                  r| |j                  v r|j                  |    S |j                  r| |j                  v r|j                  |    S |j
                  r t        t        |       rt        t        |       S |j                  r|j                  r|j                  |       S |j                  s%|j                  st        d|j                   d      t        |  d      )Nz Namespace access not allowed in r/  z+ not found in locals, globals, nor builtins)r&  rL   r   rM   r   rP   r   builtinsrC   rS   r   r   r   	NameError)r  r   r%  s      r)   rU  rU    s     F!!g&?~~g&&""w'//'Aw''##'(Bx))G$7$7""7++&&v/I/I.w/A/A.B%H
 	
 7)#NOPPr,   c                     t        |      }|j                  |       r4|j                  s(|j                  D cg c]  }t	        ||       }} | | S t        |       S c c}w r$   )r&  rg   r\  r6   r   r`  )	duck_typer-  r   r%  rh  r6   s         r)   r{  r{    sW     Fy!$--3799=C	#w'==$%i00 >s   Ac                 R    t               }	 | |_        |S # t        $ r Y t        S w xY w)zCreate an imitation of an object of a given type (a duck).

    Returns the duck or NOT_EVALUATED sentinel if duck could not be created.
    )r  r  rR  r_  )r  ducks     r)   r`  r`  )  s5    
 D" s    	&&>   numpyvoidr  ndarraypandascoreindexing_LocIndexerr  r  r  _iLocIndexerr  Seriesr  	DataFrameBUILTIN_GETITEMc                 Z    |r|n
t        |       D cg c]  }t        | |       c}S c c}w )z=For use on immutable objects or with methods returning a copy)r  rC   )clssourcere  s      r)   _list_methodsr  T  s$    06fCHFGCOFFFs   ()r   r  rJ  r  )r   r  count	dict_keysBUILTIN_GETATTRTF)rP   rL   rM   rN   rO   rV   rR   rQ   r  r  )	r   r   r   r   r   rP   rL   rM   rV   )rP   rL   rM   rO   rN   rR   rQ   )r   r   r   )r   r   r   r   rI   r$   )r   inspectr   r   r   r   typingr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r  collectionsrB  rr   r)  	functoolsr   dataclassesr   r   typesr   r   IPython.utils.decoratorsr   r   r   version_infotyping_extensionsr    r"   r4   r:   r>   r   rI   rK   rm   ry   r   r   rk   rl   r   r   r   r   r   r   r   r   rl  objectr_  	Exceptionr   r   AddSubMultDivFloorDivModPowLShiftRShiftBitOrBitXorBitAndMatMultr   r   rD   rj   EqNotEqLtLtEGtGtEr?  r   cmpopUSubUAddInvertNotr   unaryopr  r  r!  r&  ri   r,  ASTr   r[  r]  ro  rU  r{  r`  SUPPORTED_EXTERNAL_GETITEMbytesr   defaultdictdequeOrderedDictChainMapUserDictUserList
UserStringr  r  dict_non_mutating_methodslist_non_mutating_methodsr  	frozensetset_non_mutating_methodsr  r  abcKeysViewintfloatcomplexNUMERICS
isdisjointrangeCounterelementsmost_commonALLOWED_CALLSr  BUILTIN_OPERATIONSr#  __all__)numeric_clsr   s   00r)   <module>r     s    < <         
  % ( 2 * 'g/$ , , , ;8 ; ; , , , 	 	 	
 z#556 eHdN&; * 
! !  !Hs # .   #  	 F4E#s(Oc)*sCx 

& 
  
DGz G WX  
     () + K 	Y 	!*s !*%6 !*J GG\GG\HHlGGLL#GG\GG\JJJJII{JJJJKK; 4S\\*E#J67 " FFKII#FF GG!FF GG!FF	;d399ouS#X67 	 HHlHHlJJ)GG\> $tCKK(%S/9: c c! !4eE#s(OT,A&B ) .> %9=	m7E#''4-( m73D m7`H CHH ?P "9?	9? 9? ((	9?
 9?xQS Q+< Q&1#(( 1=N 1  			.)* $G
 @ 6 s3x=3s9~+>>  -1O	4(() ; #	#5# 	# 423	#
 # 	# 423# # 301# # 9# 
# # 3# 
#  5!#" ##$ !)R}[7QRVfRfR%#& '#( ;$$&?@)#* +#, ;**,EF-#. /#0 ;**,EF1#2 3#4 ;'')BC5#6 7#8 ;'')BC9#: ;#< ;))3s84=#> ?#@ ;&&(ABA#B   C#D ##E#J
(
(
( 
( 	
(
 	
( 
( 
( 
( 
(^$ 
 ('   "!"e"	 '!;' $ "

 ." !# " !!5# LQ Ss   ;Y