
    ^ha                     :   % S SK JrJr  S SKJrJrJrJrJrJ	r	J
r
JrJrJrJr  S SKrS SKrS SKrS SKrS SKrS SKJr  S SKJrJr  S SKJrJr  S SKJr  S SKJr  \(       d  \(       a  S S	K J!r!  O\"r!\ " S
 S\!5      5       r#\ " S S\!5      5       r$\ " S S\!5      5       r%\ " S S\!5      5       r&\\%\&4   r'S\S\\S4   4S jr(\\ " S S5      5       5       r)S\*S\\*   4S jr+S\*S\\*   S\*4S jr,S r-\\ " S S\)5      5       5       r. " S S \
5      r/ " S! S"\
5      r0 " S# S$5      r1\1" 5       r2S%r3\" 5       r4 " S& S'\55      r6S(\*S)\04S* jr7\Rp                  S+\Rr                  S,\Rt                  S-\Rv                  S.\Rx                  S/\Rz                  S0\R|                  S1\R~                  S2\R                  S3\R                  S4\R                  S5\R                  S6\R                  S70rE\\\R$                     \	\*   4   \FS8'   \R                  S9\R                  S:\R                  S;\R                  S<\R                  S=\R                  S>\R                  S?0rN\\\R                     \	\*S@4   4   \FSA'   \R                  SB\R                  SC\R                  SD\R                  SE0rT\\\R                     \	\*S@4   4   \FSF'    " SG SH5      rVS\\	\*S@4   S4   4SI jrWSJ\\R                  S4   S)\04SK jrY1 SLkrZ\[\*\\\]\^\R                  \R                  \R                  \R                  \R                  \R                  \R                  \/\11rf\\$   \FSM'   S\SN jrgSOrhSPri\j" \k" \j5      5      \j" \k" \l5      5      -  rm\n" 0 R                  5       5      rp\\R                  R                     \FSQ'   \s\t\u1rv1 \\i\g" \\5      k\[i\g" \[\h5      k\pR                  i\]i\g" \]\i5      k\ji\g" \j\m5      k\li\g" \l5      k\xi\*i\g" \*5      k\^i\g" \^5      k\vk\v V Vs/ s H  n \g" U 5        H  oPM     M     snn k\R                  i\g" \R                  \i5      k\R                  i\g" \R                  \h5      k\R                  i\g" \R                  \h5      k\R                  i\g" \R                  \h5      k\R                  i\g" \R                  \i5      k\R                  i\g" \R                  \k" \*5      5      k\R                  i\g" \R                  \h5      k\R                  R                  i\R                  R                  ir|1 \fk\ji\li\"i\ni\vk\pi\i\ir}\\'   \FSR'   1 \}kr~\)" SSSTSTSTST\j" 5       STSTSU9\." \f\Z\}SVSW1\~SSSSSS\|SX9	\)" SSSSSSSSSSSSSSSY9SZ.r/ S[Qrgs  snn f )]    )	signature	Signature)AnyCallableDictSetSequenceTuple
NamedTupleTypeLiteralUnionTYPE_CHECKINGN)cached_property)	dataclassfield)MethodDescriptorType
ModuleType)GENERATING_DOCUMENTATION)undoc)Protocolc                       \ rS rSrSS jrSrg)
HasGetItem#   Nc                     g N selfkeys     S/home/james-whalen/.local/lib/python3.13/site-packages/IPython/core/guarded_eval.py__getitem__HasGetItem.__getitem__%           r   returnN)__name__
__module____qualname____firstlineno__r"   __static_attributes__r   r%   r!   r   r   #       r%   r   c                   "    \ rS rSrS\4S jrSrg)InstancesHaveGetItem)   r'   c                     g r   r   )r   argskwargss      r!   __call__InstancesHaveGetItem.__call__+   r$   r%   r   N)r(   r)   r*   r+   r   r4   r,   r   r%   r!   r/   r/   )   s    : r%   r/   c                       \ rS rSrSS jrSrg)
HasGetAttr/   Nc                     g r   r   r   s     r!   __getattr__HasGetAttr.__getattr__1   r$   r%   r   r&   )r(   r)   r*   r+   r:   r,   r   r%   r!   r7   r7   /   r-   r%   r7   c                       \ rS rSrSrg)DoesNotHaveGetAttr5   r   N)r(   r)   r*   r+   r,   r   r%   r!   r=   r=   5   s    r%   r=   funcr'   c                     [        U SS5      n[        U5      n[        U SS5      n[        USS5      nUb%  U(       a  U(       a  U(       a  X4;  a  [        X#5      $ g)zuGet 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   >   s\    
 D*d+Eu+K4T*D%eZ>''D,O {))r%   c                       \ rS rSr% SrSr\\S'   Sr\\S'   Sr	\\S'   Sr
\\S'   Sr\\S'   Sr\\S	'   Sr\\S
'   \" \S9r\\   \S'   S rS rSS\\S4   4S jjrS rSrg)EvaluationPolicyS   z 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default_factoryallowed_callsc                     U R                   $ r   )rO   r   valueitems      r!   can_get_itemEvaluationPolicy.can_get_itema       %%%r%   c                     U R                   $ r   )rP   )r   rY   attrs      r!   can_get_attrEvaluationPolicy.can_get_attrd   r]   r%   Ndunders.c                 (    U R                   (       a  gg NT)rR   )r   rb   abs       r!   can_operateEvaluationPolicy.can_operateg   s    $$ %r%   c                     U R                   (       a  gXR                  ;   a  g[        U5      nU(       a  X R                  ;   a  gg g rd   )rS   rV   rI   )r   r?   owner_methods      r!   can_callEvaluationPolicy.can_callk   s?    %%%%d+L,>,>> ?<r%   r   r   )r(   r)   r*   r+   __doc__rM   bool__annotations__rN   rO   rP   rQ   rR   rS   r   setrV   r   r   r[   r`   r
   strrg   rk   r,   r   r%   r!   rK   rK   S   s     + %%!&$&#t##t#"'4'!&$&!OT!#(#=M3x==&&5c? 
r%   rK   module_nameaccess_pathc                 T    [         R                  U    nU H  n[        X#5      nM     U$ )zGet value from external module given a dotted access path.

Raises:
* `KeyError` if module is removed not found, and
* `AttributeError` if acess path does not match an exported object
)sysmodulesrC   )rr   rs   member_typer_   s       r!   _get_externalrx   x   s,     ++k*Kk0 r%   method_namec                    U[         R                  ;  a  g [        X5      n[        U 5      n[        U 5      U:X  a  gUS:X  a  g[	        X5      (       a  [        XSS 5      n[        XCS 5      nXv:X  a  gg g ! [        [        4 a     gf = f)NFT__getattribute__)ru   rv   rx   rD   
isinstancerC   AttributeErrorKeyError)rY   rr   rs   ry   rw   
value_typemethodmember_methods           r!   _has_original_dunder_externalr      s     #++%#K=%[
;+%,, e))Zd;F#KdCM& ' *
 H% s   %A4 A4 -A4 4BBc                     [        U 5      nXQ;   a  g[        XTS 5      nUc  g Xb;   a  gU H  tpx[        XX5      (       d  M    g   g)NTF)rD   rC   r   )	rY   allowed_typesallowed_methodsallowed_externalry   r   r   rr   rs   s	            r!   _has_original_dunderr      sW    
 eJ "Zd3F~ %5!([VV &6 r%   c                      \ rS rSr% \" \S9r\\   \	S'   \" \S9r
\\\S4      \	S'   \" \S9r\\   \	S'   \" \S9r\\\S4      \	S'   \" \S9r\\	S'   \" \S9r\\\S4      \	S	'   \" \S
S9r\\\\   4   \	S'   S rS rSS\\S4   4S jjrS\S\\   4S jr\S\\   4S j5       r\S\\   4S j5       r\S\\   4S j5       rS\\   4S jrSrg)SelectivePolicy   rT   allowed_getitem.allowed_getitem_externalallowed_getattrallowed_getattr_externalallowed_operationsallowed_operations_externalF)rU   init_operation_methods_cachec                 0   [        UU R                  U R                  U R                  SS9n[        UU R                  U R                  U R                  SS9nSnUc
  U(       a  SnOU=(       a    UnU(       a  [        U5      n[        Xb5      (       d  g[        Xb5      n[        U[        5      nU(       d  g[        U5      U R                  ;   a  gU R                   H  tp [        X5      n[        X5      nX|:H  s  $    g! [        [        4 a       gf = f)Nr{   r   r   r   ry   r:   FT)r   r   _getattribute_methodsr   _getattr_methodsrD   hasattrrC   r|   propertyrx   r~   r}   )r   rY   r_   has_original_attributehas_original_attracceptvalue_classclass_attr_valis_propertyrr   rs   external_classexternal_class_attr_vals                r!   r`   SelectivePolicy.can_get_attr   s(   !5.. 66!::*"
 1.. 11!::%
  $)?F 'A+AF u+K;--$[7N$^X>K E{d222 .2-J-J)!%2;%LN.5n.K+ &@@ .K 	 !.1 ! !s   "DDDc                 X    [        UU R                  U R                  U R                  SS9$ )zTAllow accessing `__getiitem__` of allow-listed instances unless it was not modified.r"   r   )r   r   _getitem_methodsr   rX   s      r!   r[   SelectivePolicy.can_get_item   s0    #.. 11!::%
 	
r%   Nrb   c                     U/nUb  UR                  U5        [        U VVs/ s H=  nU  H3  n[        UU R                  U R	                  U5      U R
                  US9PM5     M?     snn5      $ s  snnf )Nr   )appendallr   r   _operator_dunder_methodsr   )r   rb   re   rf   objectsdunderobjs          r!   rg   SelectivePolicy.can_operate
  s    #=NN1 &
 &F"C %"&"9"9$($A$A&$I%)%E%E & # &

 	

s   AA.
r   r'   c                     XR                   ;  a)  U R                  U R                  U5      U R                   U'   U R                   U   $ r   )r   _safe_get_methodsr   )r   r   s     r!   r   (SelectivePolicy._operator_dunder_methods  sG    666484J4J''5D))&1 ,,V44r%   c                 :    U R                  U R                  S5      $ )Nr"   )r   r   r   s    r!   r    SelectivePolicy._getitem_methods#      %%d&:&:MJJr%   c                 :    U R                  U R                  S5      $ )Nr:   r   r   r   s    r!   r    SelectivePolicy._getattr_methods'  r   r%   c                 :    U R                  U R                  S5      $ )Nr{   r   r   s    r!   r   %SelectivePolicy._getattribute_methods+  s    %%d&:&:<NOOr%   c           	      b    U VVs1 s H  n[        X2S 5      nU(       d  M  UiM     snn$ s  snnf r   )rC   )r   classesrG   class_r   s        r!   r   !SelectivePolicy._safe_get_methods/  s8     "
!"66 !
 	
 
s   ++r   r   ) r(   r)   r*   r+   r   rp   r   r   r/   ro   r   r
   rq   r   MayHaveGetattrr   r   r   dictr   r   r   r`   r[   rg   r   r   r   r   r   r   r,   r   r%   r!   r   r      se    27s1KOS-.K5:35Oc%S/2O+0+EOS(E5:35Oc%S/2O#C888=c8RU38_!5R9>5:d3H#56 4l

5c? 
$5s 5s8} 5 K#h- K K K#h- K K Ps8} P P
#h- 
r%   r   c                       \ rS rSrSrSrg)_DummyNamedTuplei8  z<Used internally to retrieve methods of named tuple instance.r   Nr(   r)   r*   r+   rm   r,   r   r%   r!   r   r   8  s    Fr%   r   c                   L    \ rS rSr% \\S'   \\S'   Sr\S   \S'   Sr\	\S'   S	r
g
)EvaluationContexti<  localsglobals	forbidden)r   minimallimitedunsafe	dangerous
evaluationFin_subscriptr   N)r(   r)   r*   r+   r   ro   r   r   r   rn   r,   r   r%   r!   r   r   <  s1    LM 	 @ 
 L$r%   r   c                       \ rS rSrSrS rSrg)_IdentitySubscriptiJ  z<Returns the key itself when item is requested via subscript.c                     U$ r   r   r   s     r!   r"   _IdentitySubscript.__getitem__M  s    
r%   r   N)r(   r)   r*   r+   rm   r"   r,   r   r%   r!   r   r   J  s
    Fr%   r   __SUBSCRIPT_SENTINEL__c                       \ rS rSrSrSrg)GuardRejectioniV  z7Exception raised when guard rejects evaluation attempt.r   Nr   r   r%   r!   r   r   V  s    Ar%   r   codecontextc                    UR                   nUR                  S:X  a  [        S5      eUR                  (       a\  U (       d
  [	        5       $ UR                  5       n[        U[        '   [        S-   U -   S-   n [        S	0 0 UR                  5       ESU0ED6nUR                  S:X  a   [        XR                  UR                   5      $ [        R                  " U SS9n[        X15      $ )
a#  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   tuplecopy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                       \ rS rSrSrSrg)Ducki  zXA dummy class used to create objects of other classes without calling their ``__init__``r   Nr   r   r%   r!   r  r    s    br%   r  c                 d    S nUR                  5        H  u  p4[        X5      (       d  M  UnM     U$ r   )itemsr|   )node_oprb   r   opcandidate_dunders        r!   _find_dunderr	    s1    F 'g""%F !0 Mr%   nodec                   ^ [         TR                     nU c  g[        U [        R                  5      (       a  [        U R                  T5      $ [        U [        R                  5      (       a  [        U R                  T5      n[        U R                  T5      n[        U R                  [        5      nU(       aS  UR                  XSU5      (       a  [        X5S   5      " U5      $ [        SU S3[!        U5      STR                   S35      e[        U [        R"                  5      (       Ga  [        U R                  T5      nSnSn[%        U R&                  U R(                  5       GHY  u  p[        UT5      nSn	[        U[*        5      nU(       d|  [        U[        R,                  5      (       a  [*        [        R.                     nSn[        U[        R0                  5      (       a  S	n	[        U[        R2                  5      (       a  S	n	SnU	(       d  U(       a  US   n	U	(       a  U	S
:X  a  XC4OX44u  pU	S	:X  d  U(       aI  UR                  XZU5      (       a2  [        [4        U	5      " X5      nU(       a  U(       + nU(       d  SnUnGM%  [        SU	 S3[!        U5      STR                   S35      e[7        SU	 S35      e   U$ [        U [        R8                  5      (       a  U R:                  $ [        U [        R<                  5      (       a  [?        U4S jU R@                   5       5      $ [        U [        RB                  5      (       a'  U R@                   Vs/ s H  n[        UT5      PM     sn$ [        U [        RD                  5      (       a'  U R@                   Vs1 s H  n[        UT5      iM     sn$ [        U [        RF                  5      (       a_  [I        [%        U RJ                   Vs/ s H  n[        UT5      PM     snU RL                   Vs/ s H  n[        UT5      PM     sn5      5      $ [        U [        RN                  5      (       aI  [Q        [        U RR                  T5      [        U RT                  T5      [        U RV                  T5      5      $ [        U [        RX                  5      (       a  [        U RZ                  T5      n[        U R                  [\        5      nU(       aS  UR                  UU5      (       a  [        UUS   5      " 5       $ [        SU S3[!        U5      STR                   S35      e[        U [        R^                  5      (       al  [        U R:                  T5      n[        U RP                  T5      nURa                  UU5      (       a  UU   $ [        S[!        U5      STR                   S35      e[        U [        Rb                  5      (       Ga%  URd                  (       a3  U Rf                  TRh                  ;   a  TRh                  U Rf                     $ URj                  (       a3  U Rf                  TRl                  ;   a  TRl                  U Rf                     $ URn                  (       a9  [q        [r        U Rf                  5      (       a  [        [r        U Rf                  5      $ URj                  (       d*  URd                  (       d  [        STR                   S35      e[u        U Rf                   S35      e[        U [        Rv                  5      (       aq  [        U R:                  T5      nURy                  UU Rz                  5      (       a  [        UU Rz                  5      $ [        S[!        U5      STR                   S35      e[        U [        R|                  5      (       aI  [        U R~                  T5      nU(       a  [        U R                  T5      $ [        U R                  T5      $ [        U [        R                  5      (       Ga\  [        U R                  T5      nUR                  U5      (       a<  U R                  (       d+  U R                   Vs/ s H  n[        UT5      PM     nnU" U6 $  [        U5      nUR                  [        R                  Ln[        UR                  [        5      (       + nU(       a  U(       a  [        5       nUR                  UR                  5      (       aF  U R                  (       d5  U R                   Vs/ s H  n[        UT5      PM     nnUR                  " U6 $  UR                  UlM        U$ [        SUSTR                   S35      e[7        S[        R                  " U 5      5      es  snf s  snf s  snf s  snf s  snf ! [6         a
    [        n GN4f = fs  snf ! [         a     N|f = f)aG  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 z modeTFis_r   zComparison (`zComparison `z` not supportedc              3   <   >#    U  H  n[        UT5      v   M     g 7fr   )r   ).0er   s     r!   	<genexpr>eval_node.<locals>.<genexpr>  s     >IqYq'**Is   z$Subscript access (`__getitem__`) forz not allowed in z Namespace access not allowed in z+ not found in locals, globals, nor builtinsz$Attribute access (`__getattr__`) forzCall forzUnhandled node)PEVALUATION_POLICIESr   r|   r   
Expressionr   bodyBinOpleftrightr	  r  r   rg   rC   r   rD   Comparezipopscomparatorsr   NotInInIsIsNotoperator
ValueErrorConstantrY   r
   r   eltsListr   r   r   keysvaluesSliceslicelowerupperstepUnaryOpoperandr  	Subscriptr[   NamerM   idr   rN   r   rQ   r   builtins	NameError	Attributer`   r_   IfExptestorelseCallr?   rk   keywordsr2   r   UNKNOWN_SIGNATUREreturn_annotationr   emptyrq   r  	__class__	TypeErrordump)r
  r   policyr  r  rb   all_truenegater  r   re   rf   resultr  kvrY   slice_r5  r?   argr2   sig	not_emptynot_stringizedducks    `                        r!   r   r     s   6 !!3!34F|$''G,,$		""G,$**g.tww(9:!!'77tQZ077$"7)62J%g&8&8%9? 
 $$$G,TXXt'7'78IBeW-EF"27Gb#)),,-cff5G!Fb#&&))"Fb#)),,"F!Fg (..(@}tmU?g&2D2DWQR2S2S$Xv6q<F%+!#( D('xv6T
)'*<*<)=UC  !"6(/: ? 9D $%%zz$		"">DII>>>$!!/3yy9y!	!W%y99$  /3yy9y!	!W%y99$!!04		:	11g&	:04<11g&<
 	
 $		""djj'*djj'*dii)
 	

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

 $!!%%$''W^^*C>>$''**&&477goo+E??477++''GHdgg,F,F8TWW--**63M3M 273E3E2FeL  twwi'RSTT$&&$**g.udii005$)),,2Kg0017
 	

 $		""G,TYY00T[['22$!!G,??4  7;yyAyIc7+yDA;	$D/C
 ))@	'(=(=sCC6Ds4455dmm;?99E9C	#w/9E,,d33 "%!6!6 g0017
 	

 %sxx~
66E :9 ;<~ B  	$#C	$ F  sH   f/#f43f9f>>gg 9g!g$ gg$
g10g1>   numpyvoidrL  ndarraypandasSeriesrQ  	DataFramerQ  coreindexing_LocIndexerrQ  rV  rW  _iLocIndexerBUILTIN_GETITEMc                 h    U(       a  UO
[        U 5       Vs/ s H  n[        X5      PM     sn$ s  snf )z=For use on immutable objects or with methods returning a copy)dirrC   )clssourcerC  s      r!   _list_methodsr`    s+    06fCH&DF&DGCO&DFFFs   /)r   r%  r&  r  )r   indexcount	dict_keysBUILTIN_GETATTRTF)rQ   rM   rN   rO   rP   rV   rS   rR   rS  rP  )	r   r   r   r   r   rQ   rM   rN   rV   )rQ   rM   rN   rP   rO   rS   rR   )r   r   r   )r   r   r   r   rI   r   )inspectr   r   typingr   r   r   r   r	   r
   r   r   r   r   r   r   r1  collectionsr   ru   	functoolsr   dataclassesr   r   typesr   r   IPython.utils.docsr   IPython.utils.decoratorsr   typing_extensionsr   objectr   r/   r7   r=   r   rI   rK   rq   rx   r   r   r   r   r   r   r   r   r9  	Exceptionr   r   AddSubMultDivFloorDivModPowLShiftRShiftBitOrBitXorBitAndMatMultr   ro   EqNotEqLtLtEGtGtEr  r   cmpopUSubUAddInvertNotr  unaryopr  r	  ASTr   SUPPORTED_EXTERNAL_GETITEMr   byteslistr   defaultdictdequeOrderedDictChainMapUserDictUserList
UserStringr[  r`  dict_non_mutating_methodslist_non_mutating_methodsrp   r]  	frozensetset_non_mutating_methodsrD   r%  rc  abcKeysViewintfloatcomplexNUMERICS
isdisjointrangeCounterelementsmost_commonALLOWED_CALLSrd  BUILTIN_OPERATIONSr  __all__)numeric_clsr   s   00r!   <module>r     s   ( (        
 % ( 2 7 * ,* H   
 8  
   
 	 	 	
 z#556 eHdN&; * 
      F
s 
# 
 # 	64 
y
& y
  y
xGz G
   () + 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eE#s(OT,A&B {7E#''4-( {73D {7|  			.)* $G
 @ 6 s3x=3s9~+>>  -1O	4(() ; #	#5# 	# 423	#
 # 	# 423# # 301# # 9# 
# # 3# 
#  5!#" ##$ !)R}[7QVf7Qf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   V