
    ei                     @   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n1d 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dS )    N)castAnyIterator c                 B    | st          t          |                    dS )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     `/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/executing/_utils.pyassert_r   
   s*      +S\\***+ +    )      )Instructionc                       e Zd ZdZdS r   N__name__
__module____qualname__lineno r   r   r   r              r   r   )
namedtuplec                       e Zd ZdZdS 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	          |          }|                    |          }	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	        |         }
n5|t          v r| j        |         }
nt          |         dk    r| j        |         }
t          ||
t          |         |	          V  ||k     d S d S )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;   '   sM     z.,,--
II!eeFQAQB^^A&&FFAA]""DGs4A;'7'7#'==L E%%#(5=L>>\%0FF7]][/FFBZ;..^E2FfffRj&AAAAA) !eeeeeer   c              #      K   | j         }t          |           D ]:}t          t          |          }|j        p|}t          |           ||_        |V  ;d S )N)co_firstlinenor;   r   EnhancedInstructionstarts_liner   r   )r0   r   insts      r   get_instructionsrA   D   si      F!"%%  '..!+V



 r   c                       e Zd ZdZdS )EnhancedASTN)r   r   r   parentr   r   r   rC   rC   Q   s        FFFr   rC   c                       e Zd ZdZdS )r>   N)r   r   r   _copiedr   r   r   r>   r>   V   s        GGGr   r>   c                    t           j        t           j        t           j        f}t	          | t           j                  r| j        }nt	          | t           j                  r| j        }nt	          | t           j	                  r(| j
        p| j                            d          d         }nt	          | |          r| j        }nlt	          | t           j                  r| j        sJ | j        }nAt          j        dk    r"t	          | t           j                  r| j        }nt#          d          |                    d          r|                    d          s| j        | }}t	          |t           j                  r	||j        vs=t-          |d          sn]|j        |}}t	          |t           j                  4||j        v=|j                            d          }|dk    r||j        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__rD   _r   )astFunctionDefClassDefAsyncFunctionDef
isinstance	AttributeattrNameidaliasasnamenamesplitExceptHandlersysversion_infoTypeVar	TypeError
startswithendswithrD   baseshasattrlstripdecorator_list)nodefunction_class_typesrW   rD   child
class_names         r   mangled_namerh   ]   s    /3<9MN$&& -y	D#(	#	# -w	D39	&	& 
-{5diooc2215	D.	/	/ -y	D#+	,	, -yy		V	#	#
4(D(D	#Y+,,,t /T]]4%8%8 /[ufS\22 	/uFL7P7P6(++ v5F	 fS\22 	/uFL7P7P {))#..J2~~%v/D"D"DZ'$.. Kr   )r   )rL   rZ   distypingr   r   r   typesr   r[   rA   r;   r   _Instructioncollectionsr   r   r   r   r    r!   r"   ASTrC   r>   rh   r   r   r   <module>ro      s   



 



 



 % % % % % % % % % % + + + + v,//////    l     '&&&&&    jj0RSS    [ZZZZZZZZZZZZZZZ
B B B:      #'   
    +   . . . . .r   