
    Xh                     <   d dl Z d dlZd dlZd dlmZmZmZ d dlZddZej                  dk\  rej                  Zd dlmZ  G d de      Zn+d dlmZ  G d	 d edd
            Zd dlmZmZmZmZmZmZ d Zd Z
 G d de j,                        Z G d de      Zd Zy)    N)castAnyIteratorc                 0    | st        t        |            y)z
    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     D/var/www/html/myenv/lib/python3.12/site-packages/executing/_utils.pyassert_r   
   s     S\**     )      )Instructionc                       e Zd ZdZyr   N__name__
__module____qualname__lineno r   r   r   r          r   r   )
namedtuplec                       e Zd ZdZyr   r   r   r   r   r   r      r   r   z offset argval opname starts_line)HAVE_ARGUMENTEXTENDED_ARGhasconstopnamefindlinestartshasnamec              #   "  K   | j                   }t        t        |             }t        |      }d}d}||k  r|}||   }t	        |      }|j                  |      }	d }
|dz   }|t        k\  rt	        ||         t	        ||dz            dz  z   |z   }d}|dz   }|t        k(  r|dz  }|t        v r| j                  |   }
n3|t        v r| j                  |   }
nt        |   dk(  r| j                  |   }
t        ||
t        |   |	       ||k  ry y w)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QAQB^^A&FFAA]"DGs4A;'7#'==L E%#(5=L>\\%0F7][[/FBZ;.^^E2FfffRj&AA) !es   D
DDc              #      K   | j                   }t        |       D ]8  }t        t        |      }|j                  xs |}t        |       ||_        | : y w)N)co_firstlinenor:   r   EnhancedInstructionstarts_liner   r   )r/   r   insts      r   get_instructionsr@   D   sU     F!"% '.!!+V
s   AAc                       e Zd ZdZy)EnhancedASTN)r   r   r   parentr   r   r   rB   rB   Q   s    Fr   rB   c                       e Zd ZdZy)r=   N)r   r   r   _copiedr   r   r   r=   r=   V   s    Gr   r=   c                 `   t         j                  t         j                  t         j                  f}t	        | t         j
                        r| j                  }nt	        | t         j                        r| j                  }nt	        | t         j                        r-| j                  xs | j                  j                  d      d   }nt	        | |      r| j                  }nzt	        | t         j                        r| j                  sJ | j                  }nEt        j                  dk\  r't	        | t         j                         r| j                  }nt#        d      |j%                  d      r|j'                  d      s| j(                  | }}t	        |t         j                        r||j*                  vsGt-        |d      s	 |S |j(                  |}}t	        |t         j                        s8||j*                  vsG|j                  j/                  d      }|dk7  r||j0                  vrd|z   |z   S |S )	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__rC   _ )astFunctionDefClassDefAsyncFunctionDef
isinstance	AttributeattrNameidaliasasnamenamesplitExceptHandlersysversion_infoTypeVar	TypeError
startswithendswithrC   baseshasattrlstripdecorator_list)nodefunction_class_typesrW   rC   child
class_names         r   mangled_namerh   ]   s    //3<<9M9MN$&yy	D#((	#ww	D399	&{{5diiooc215	D.	/yy	D#++	,yyyyy			V	#
4(DYY+,,tT]]4%8[[ufS\\2uFLL7P6(+ K  v5F	 fS\\2uFLL7P {{))#.J2~%v/D/D"DZ'$.. Kr   )rK   )rL   rZ   distypingr   r   r   typesr   r[   r@   r:   r   _Instructioncollectionsr   r   r   r   r   r    r!   ASTrB   r=   rh   r   r   r   <module>ro      s    
 
 
 % % + v,,/l  'j0RS  [Z
B:#'' 
+ .r   