
    ^h                     @   S SK r S SKrS SKrS SKJrJrJr  S SKrSS jr\R                  S:  a  \R                  rS SKJr   " S S\5      rO+S SKJr   " S	 S\" SS
5      5      rS SKJrJrJrJrJrJr  S rS r
 " S S\ R,                  5      r " S S\5      rS rg)    N)castAnyIteratorc                 :    U (       d  [        [        U5      5      eg)zy
Like an assert statement, but unaffected by -O
:param condition: value that is expected to be truthy
:type message: Any
N)AssertionErrorstr)	conditionmessages     J/home/james-whalen/.local/lib/python3.13/site-packages/executing/_utils.pyassert_r   
   s     S\**     )      )Instructionc                       \ rS rSrSrSrg)r      N __name__
__module____qualname____firstlineno__lineno__static_attributes__r   r   r   r   r          r   r   )
namedtuplec                       \ rS rSrSrSrg)r      Nr   r   r   r   r   r   r      r   r   z offset argval opname starts_line)HAVE_ARGUMENTEXTENDED_ARGhasconstopnamefindlinestartshasnamec              #   *  #    U R                   n[        [        U 5      5      n[        U5      nSnSnXC:  a  UnX   n[	        U5      nUR                  U5      n	S n
US-   nU[        :  a  [	        X   5      [	        XS-      5      S-  -   U-   nSnUS-   nU[        :X  a  US-  nU[        ;   a  U R                  U   n
O6U[        ;   a  U R                  U   n
O[        U   S:X  a  U R                  U   n
[        Xj[        U   U	5      v   XC:  a  M  g g 7f)Nr            i   	LOAD_FAST)co_codedictr#   lenordgetr   r    r!   	co_constsr$   co_namesr"   co_varnamesr   )cocode
linestartsniextended_argoffsetcopr   argvalopargs               r   _get_instructionsr=   '   s    zz.,-
IeFAQB^^A&FFAA]"DGs4A;'7#'==L E%#(5=L>\\%0F7][[/FBZ;.^^E2FffRj&AA) es   DDDc              #      #    U R                   n[        U 5       H=  n[        [        U5      nUR                  =(       d    Un[        U5        Xl        Uv   M?     g 7f)N)co_firstlinenor=   r   EnhancedInstructionstarts_liner   r   )r2   r   insts      r   get_instructionsrC   D   sM     F!"%'.!!+V
 &s   AAc                       \ rS rSrSrSrg)EnhancedASTQ   Nr   )r   r   r   r   parentr   r   r   r   rE   rE   Q   s    Fr   rE   c                       \ rS rSrSrSrg)r@   V   Nr   )r   r   r   r   _copiedr   r   r   r   r@   r@   V   s    Gr   r@   c                    [         R                  [         R                  [         R                  4n[	        U [         R
                  5      (       a  U R                  nGO$[	        U [         R                  5      (       a  U R                  nO[	        U [         R                  5      (       a2  U R                  =(       d    U R                  R                  S5      S   nO[	        X5      (       a  U R                  nO[	        U [         R                  5      (       a   U R                  (       d   eU R                  nOK[        R                  S:  a,  [	        U [         R                   5      (       a  U R                  nO[#        S5      eUR%                  S5      (       a  UR'                  S5      (       d  U R(                  U pC[	        U[         R                  5      (       a  XCR*                  ;  dS  [-        US5      (       d   U$ UR(                  UpC[	        U[         R                  5      (       d  MB  XCR*                  ;  d  MS  UR                  R/                  S5      nUS:w  a  XCR0                  ;  a  SU-   U-   $ U$ )	z

Parameters:
    node: the node which should be mangled
    name: the name of the node

Returns:
    The mangled name of `node`
.r   )r      zno node to mangle__rG   _ )astFunctionDefClassDefAsyncFunctionDef
isinstance	AttributeattrNameidaliasasnamenamesplitExceptHandlersysversion_infoTypeVar	TypeError
startswithendswithrG   baseshasattrlstripdecorator_list)nodefunction_class_typesr\   rG   child
class_names         r   mangled_namerm   ]   s    //3<<9M9MN$&&yy	D#((	#	#ww	D399	&	&{{5diiooc215	D	/	/yy	D#++	,	,yyyyy			V	#
4(D(DYY+,,tT]]4%8%8[[ufS\\22uLL7P6(++ K  v5	 fS\\22uLL7P {{))#.J2~%/D/D"DZ'$.. Kr   )rP   )rQ   r_   distypingr   r   r   typesr   r`   rC   r=   r   _Instructioncollectionsr   r   r    r!   r"   r#   r$   ASTrE   r@   rm   r   r   r   <module>rt      s    
 
 
 % % + v,,/l  'j0RS  [Z
B:#'' 
+ .r   