https://t.me/RX1948
Server : Apache
System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User : dh_edsupp ( 6597262)
PHP Version : 8.2.26
Disable Function : NONE
Directory :  /lib/python3/dist-packages/genshi/template/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/genshi/template/__pycache__/astutil.cpython-310.pyc
o

!�b�k�@sPdZddlmZmZmZmZmZdZdd�Z	Gdd�de
�ZGdd	�d	e
�Zd
S)z?Support classes for generating code from abstract syntax trees.�)�ast�
_ast_Constant�
IS_PYTHON2�isstring�
_ast_Ellipsiszrestructuredtext encCst|d|tj�S)N�)�compile�_ast�
PyCF_ONLY_AST)�source�mode�r
�9/usr/lib/python3/dist-packages/genshi/template/astutil.py�parse�rc@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	e	Z
e	Zdd�Zdd�Z
es0dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�ZeZd2d3�Z d4d5�Z!d6d7�Z"d8d9�Z#d:d;�Z$d<d=�Z%d>d?�Z&d@dA�Z'dBdC�Z(dDdE�Z)dFdG�Z*dHdI�Z+dJdK�Z,e-j.dLe-j/dMiZ0e,dNdO��Z1e-j2dPe-j3dQe-j4dRe-j5dSe-j6dTe-j7dUe-j8dVe-j9dWe-j:dXe-j;dYe-j<dZe-j=d[iZ>e,d\d]��Z?e-j@d^e-jAd_e-jBdPe-jCdQiZDd`da�ZEe,dbdc��ZFe,ddde��ZGdfdg�ZHdhdi�ZIdjdk�ZJdldm�ZKe-jLdne-jMdoe-jNdpe-jOdqe-jPdre-jQdse-jRdte-jSdue-jTdve-jUdwi
ZVe,dxdy��ZWdzd{�ZXd|d}�ZYd~d�ZZd�d��Z[d�d��Z\e�sKd�d��Z]d�d��Z^d�d��Z_d�d��Z`d�d��Zad�d��Zbd�d��Zcd�S)��ASTCodeGeneratorz�General purpose base class for AST transformations.

    Every visitor method can be overridden to return an AST node that has been
    altered or replaced in some way.
    cCspg|_d|_d|_d|_d|_d|_g|_|�|�|j��r0|j|jd7_|j�	|j�d|_d|_dS)Nrr�
)
�
lines_info�	line_info�code�line�last�indent�blame_stack�visit�strip�append)�self�treer
r
r�__init__s


zASTCodeGenerator.__init__cCs|j|7_dS�N)r)r�deltar
r
r�_change_indent.szASTCodeGenerator._change_indentcCsx|jdur|j|jd7_|j�|j�d|j|_t|j�dkr+g|_d|_dSd|jdfg|_|jd|_dS)Nrz    r���)	rrrrrr�lenrr�rr
r
r�	_new_line1s

zASTCodeGenerator._new_linecCs�t|�dkrdSt|j�dkr$|jdur#d|_|j�t|j�|jf�n|j|jdkr>|jd|_|j�t|j�|jf�|j|7_dS)Nrr#)r$rrrrr)r�sr
r
r�_write=s
�zASTCodeGenerator._writecs�|durdSt|�turt�fdd�|D��Sz�j�|j|jf�d}Wnty0d}Ynwt|tt	t
ttf�r?t
|�}t�d|jjd�}|durUtdt|���||�}|r`�j��|S)Nc�g|]}��|��qSr
�r��.0�nr%r
r�
<listcomp>N�z*ASTCodeGenerator.visit.<locals>.<listcomp>TF�visit_%szUnhandled node type %r)�type�tuplerr�lineno�
col_offset�AttributeError�
isinstance�bool�bytes�float�int�strr�getattr�	__class__�__name__�	Exception�pop)r�node�info�visitor�retr
r%rrJs&�
zASTCodeGenerator.visitcCs|jD]}|�|�qdSr )�bodyr)rrAr-r
r
r�visit_Module`s
�zASTCodeGenerator.visit_ModulecCs|��|�|j�Sr )r&rrE�rrAr
r
r�visit_Expressionfsz!ASTCodeGenerator.visit_Expressioncs���fdd��dg���fdd�}||j|j�t|dd�r8����d�t|j�r2��|j�n��|j�t|dd�rE||j|j�t|d	d�rh����d
�t|j	�r`��|j	�dS��|j	�dSdS)Ncs"�dr
d�d<dS��d�dS)NrF�, �r(r
)�_firstrr
r�write_possible_commarsz>ASTCodeGenerator.visit_arguments.<locals>.write_possible_commaTcsnt|�t|�}t|�D](\}}����|�||}|dkr4||dur4��d���|||�qdS)Nr�=)r$�	enumeraterr()�args�defaults�no_default_count�i�arg�default_idx)rrLr
r�
write_argsys

��z4ASTCodeGenerator.visit_arguments.<locals>.write_args�vararg�*�
kwonlyargs�kwarg�**)
rOrPr<r(rrVrrX�kw_defaultsrY)rrArUr
)rKrrLr�visit_argumentsqs&




�z ASTCodeGenerator.visit_argumentscC�|�|j�dSr )r(rSrGr
r
r�	visit_arg�rzASTCodeGenerator.visit_argcCs|�d�|�|j�dS)NrW�r(r�valuerGr
r
r�
visit_Starred�s
zASTCodeGenerator.visit_StarredcCs�d}t|d�r
t|d�}nt|dd�}|D]}|��|�d�|�|�q|��|�d|jd�|�|j�|�d�|�d�|jD]}|�|�qG|�d	�dS)
Nr
�decorator_list�
decorators�@zdef �(z):�r#)	�hasattrr<r&r(r�namerOr"rE)rrA�
decaratorsrc�	decorator�	statementr
r
r�visit_FunctionDef�s 




z"ASTCodeGenerator.visit_FunctionDefcCs�|��|�d|j�|jr5|�d�|�|jd�|jdd�D]}|�d�|�|�q#|�d�|�d�|�d�|jD]}|�|�qB|�d�dS)	Nzclass rerrfrI�)�:r#)r&r(rh�basesrr"rE)rrA�baserkr
r
r�visit_ClassDef�s





zASTCodeGenerator.visit_ClassDefcCs<|��|�d�t|dd�r|�d�|�|j�dSdS)N�returnr`� )r&r(r<rr`rGr
r
r�visit_Return�s

�zASTCodeGenerator.visit_ReturncC�N|��|�d�|�|jd�|jdd�D]}|�d�|�|�qdS)Nzdel rrfrI)r&r(r�targets�rrA�targetr
r
r�visit_Delete��

�zASTCodeGenerator.visit_DeletecCs8|��|jD]}|�|�|�d�q|�|j�dS)Nz = )r&rvrr(r`rwr
r
r�visit_Assign�s


zASTCodeGenerator.visit_AssigncCs@|��|�|j�|�d|j|jjd�|�|j�dS)Nrsz= )r&rrxr(�binary_operators�opr=r`rGr
r
r�visit_AugAssign�sz ASTCodeGenerator.visit_AugAssigncCs�|��|�d�t|dd�r&|�d�|�|j�t|dd�r%|�d�n|�d�t|dd�rM|�|jd�|jdd�D]}|�d�|�|�q@|jsW|�d	�dSdS)
N�print�destz >> �valuesrIrsrrf�,)r&r(r<rr�r��nl)rrAr`r
r
r�visit_Print�s"


�

�zASTCodeGenerator.visit_PrintcCs�|��|�d�|�|j�|�d�|�|j�|�d�|�d�|jD]}|�|�q'|�d�t|dd�rZ|��|�d�|�d�|jD]}|�|�qK|�d�dSdS)Nzfor � in rnrfr#�orelse�else:)	r&r(rrx�iterr"rEr<r��rrArkr
r
r�	visit_For�s$








�zASTCodeGenerator.visit_ForcC�|��|�d�|�|j�|�d�|�d�|jD]}|�|�q|�d�t|dd�rO|��|�d�|�d�|jD]}|�|�q@|�d�dSdS)Nzwhile rnrfr#r�r��r&r(r�testr"rEr<r�r�r
r
r�visit_While� 







�zASTCodeGenerator.visit_WhilecCr�)Nzif rnrfr#r�r�r�r�r
r
r�visit_Ifr�zASTCodeGenerator.visit_IfcCs�|��|�d�t|dd�}d}|dur|g}|D]"}|s#|�d�d}|�|j�t|dd�r<|�d�|�|j�q|�d�|�d	�|jD]}|�|�qJ|�d
�dS)Nzwith �itemsTrIF�
optional_vars� as rnrfr#)r&r(r<r�context_exprr�r"rE)rrAr��first�itemrkr
r
r�
visit_With1s(


�


zASTCodeGenerator.visit_WithcCs�|��|�d�tr=|jsdS|�d�|�|j�|js dS|�d�|�|j�|js0dS|�d�|�|j�dS|jsBdS|�d�|�|j�|jsRdS|�d�|�|j�dS)N�raisersrIz from )	r&r(rr1r�inst�tback�exc�causerGr
r
r�visit_RaiseGs.





zASTCodeGenerator.visit_RaisecCs�|��|�d�|�d�|jD]}|�|�q|�d�t|dd�r/|jD]}|�|�q'|��t|dd�rU|�d�|�d�|jD]}|�|�qF|�d�dSdS)N�try:rfr#�handlersr�r�)r&r(r"rErr<r�r��rrArk�handlerr
r
r�visit_TryExceptbs"







�z ASTCodeGenerator.visit_TryExceptcCs�|��|�d�t|dd�r|�d�|�|j�t|dd�r+|�d�|�|j�|�d�|�d�|jD]}|�|�q8|�d�dS)	N�exceptr1rsrhrIrnrfr#)r&r(r<rr1rhr"rEr�r
r
r�visit_ExceptHandlerus





z$ASTCodeGenerator.visit_ExceptHandlercCs�|��|�d�|�d�|jD]}|�|�q|�d�t|dd�rD|��|�d�|�d�|jD]}|�|�q5|�d�dSdS)Nr�rfr#�	finalbody�finally:)r&r(r"rErr<r�r�r
r
r�visit_TryFinally�s






�z!ASTCodeGenerator.visit_TryFinallycCs�|��|�d�|�d�|jD]}|�|�q|�d�t|dd�r/|jD]}|�|�q'|��t|dd�rS|�d�|�d�|jD]}|�|�qF|�d�t|dd�ry|��|�d�|�d�|jD]}|�|�qj|�d�dSdS)	Nr�rfr#r�r�r�r�r�)	r&r(r"rErr<r�r�r�r�r
r
r�	visit_Try�s0











�zASTCodeGenerator.visit_TrycCsH|��|�d�|�|j�t|dd�r"|�d�|�|j�dSdS)Nzassert �msgrI)r&r(rr�r<r�rGr
r
r�visit_Assert�s

�zASTCodeGenerator.visit_AssertcCs6|�|j�t|dd�r|�d�|�|j�dSdS)N�asnamer�)r(rhr<r�rGr
r
r�visit_alias�s

�zASTCodeGenerator.visit_aliascCru)Nzimport rrfrI�r&r(r�names�rrArhr
r
r�visit_Import�rzzASTCodeGenerator.visit_ImportcCsz|��|�d�|jr|�d|j�|�|j�|�d�|�|jd�|jdd�D]}|�d�|�|�q.dS)Nzfrom �.z import rrfrI)r&r(�level�modulerr�r�r
r
r�visit_ImportFrom�s


�z!ASTCodeGenerator.visit_ImportFromcCsb|��|�d�|�|j�|jsdS|�d�|�|j�|js$dS|�d�|�|j�dS)Nzexec rI)r&r(rrE�globals�localsrGr
r
r�
visit_Exec�s


zASTCodeGenerator.visit_ExeccCru)Nzglobal rrfrIr�r�r
r
r�visit_Global�rzzASTCodeGenerator.visit_GlobalcCs|��|�|j�dSr )r&rr`rGr
r
r�
visit_Expr�szASTCodeGenerator.visit_ExprcC�|��|�d�dS)N�pass�r&r(rGr
r
r�
visit_Pass��zASTCodeGenerator.visit_PasscCr�)N�breakr�rGr
r
r�visit_Break�r�zASTCodeGenerator.visit_BreakcCr�)N�continuer�rGr
r
r�visit_Continue�r�zASTCodeGenerator.visit_Continuecs�fdd�}|S)Ncs"|�d��||�|�d�dS)NrermrJrG��fr
r�_fs

z(ASTCodeGenerator.with_parens.<locals>._fr
)r�r�r
r�r�with_parensszASTCodeGenerator.with_parens�and�orcCsRd|j|jjd}|�|jd�|jdd�D]}|�|�|�|�qdS)Nrsrrf)�bool_operatorsr}r=rr�r()rrA�joinerr`r
r
r�visit_BoolOps
�zASTCodeGenerator.visit_BoolOp�+�-rW�/�%rZz<<z>>�|�^�&z//cCs8|�|j�|�d|j|jjd�|�|j�dS�Nrs)r�leftr(r|r}r=�rightrGr
r
r�visit_BinOp$szASTCodeGenerator.visit_BinOp�~�notcCs(|�|j|jjd�|�|j�dSr�)r(�unary_operatorsr}r=r�operandrGr
r
r�
visit_UnaryOp2szASTCodeGenerator.visit_UnaryOpcCs0|�d�|�|j�|�d�|�|j�dS)Nzlambda �: )r(rrOrErGr
r
r�visit_Lambda7s

zASTCodeGenerator.visit_LambdacCs<|�|j�|�d�|�|j�|�d�|�|j�dS)N� if z else )rrEr(r�r�rGr
r
r�visit_IfExp?s


zASTCodeGenerator.visit_IfExpcCsX|�d�t|j|j�D]\}}|�|�|�d�|�|�|�d�q|�d�dS)N�{r�rI�})r(�zip�keysr�r)rrA�keyr`r
r
r�
visit_DictHs



zASTCodeGenerator.visit_DictcC�||�d�|�|j�|jD](}|�d�|�|j�|�d�|�|j�|jD]}|�d�|�|�q)q|�d�dS)N�[� for r�r��]�r(r�elt�
generatorsrxr��ifs�rrA�	generator�ifexprr
r
r�visit_ListCompR�





�zASTCodeGenerator.visit_ListCompcCr�)Nrer�r�r�rmr�r�r
r
r�visit_GeneratorExpar�z#ASTCodeGenerator.visit_GeneratorExpcCs4|�d�t|dd�r|�d�|�|j�dSdS)N�yieldr`rs)r(r<rr`rGr
r
r�visit_Yieldps


�zASTCodeGenerator.visit_Yieldz==z!=�<z<=�>z>=�iszis not�inznot incCsL|�|j�t|j|j�D]\}}|�d|j|jd�|�|�q
dSr�)rr�r��ops�comparatorsr(�comparision_operatorsr=)rrAr}�
comparatorr
r
r�
visit_Compare�s
�zASTCodeGenerator.visit_ComparecCs
|�|j�|�d�d}|jD]}|s|�d�d}|�|�q|jD]%}|s-|�d�d}|js8|�d�n|�|j�|�d�|�|j�q$t|dd�rd|sW|�d�d}|�d�|�|j�t|d	d�r~|sq|�d�d}|�d�|�|j	�|�d
�dS)NreTrIFrZrM�starargsrW�kwargsrm)
r�funcr(rO�keywordsrSr`r<r�r)rrAr�rS�keywordr
r
r�
visit_Call�s<









zASTCodeGenerator.visit_CallcCs$|�d�|�|j�|�d�dS)N�`r_rGr
r
r�
visit_Repr�s
zASTCodeGenerator.visit_ReprcC�|�t|j��dSr )r(�reprr-rGr
r
r�	visit_Num��zASTCodeGenerator.visit_NumcCrr �r(rr'rGr
r
r�	visit_Str�r
zASTCodeGenerator.visit_StrcCrr )r(rr`rGr
r
r�visit_Constant�r
zASTCodeGenerator.visit_ConstantcCrr rrGr
r
r�visit_Bytes�r
zASTCodeGenerator.visit_BytescCs&|�|j�|�d�|�|j�dS)Nr�)rr`r(�attrrGr
r
r�visit_Attribute�s
z ASTCodeGenerator.visit_Attributecs:��|j���d��fdd�}||j���d�dS)Nr�cs�t|t�r��d�dSt|tj�rDt|dd�r��|j���d�t|dd�r/��|j�t|dd�rB��d���|j	�dSdSt|tj
�rR��|j�dSt|tj�rv��|j
d�|j
dd�D]}��d	���|�qgdS��|�dS)
Nz...�lower�Nonern�upper�steprrfrI)r6rr(r	�Slicer<rrrr�Indexr`�ExtSlice�dims)rA�dimr%r
r�_process_slice�s*


�
�z8ASTCodeGenerator.visit_Subscript.<locals>._process_slicer�)rr`r(�slice)rrArr
r%r�visit_Subscript�s


z ASTCodeGenerator.visit_SubscriptcCr]r )r(�idrGr
r
r�
visit_Name�rzASTCodeGenerator.visit_NamecCsX|jdur|�d�dS|jdur|�d�dS|jdur$|�d�dStd|jf��)NrT�TrueF�FalsezUnknown NameConstant %r)r`r(r?rGr
r
r�visit_NameConstant�s


z#ASTCodeGenerator.visit_NameConstantcCs8|�d�|jD]}|�|�|�d�q|�d�dS)Nr�rIr��r(�eltsr�rrAr�r
r
r�
visit_List�s



zASTCodeGenerator.visit_ListcCsJ|�d�|jD]}|dur|�|�n|�d�|�d�q|�d�dS)NrerrIrmr"r$r
r
r�visit_Tuples

�zASTCodeGenerator.visit_TupleN)dr>�
__module__�__qualname__�__doc__rr"r&r(rrF�visit_Interactive�visit_SuiterHr\rr^rarlrqrtryr{r~r�r�r�r�r�r�r�r��visit_excepthandlerr�r�r�r�r�r�r�r�r�r�r�r�r�r	�And�Orr�r��Add�Sub�Mult�Div�Mod�Pow�LShift�RShift�BitOr�BitXor�BitAnd�FloorDivr|r��Invert�Not�UAdd�USubr�r�r�r�r�r�r�r��Eq�NotEq�Lt�LtE�Gt�GtE�Is�IsNot�In�NotInr�r�rrr	rr
rrrrr!r%r&r
r
r
rrs�
$		
	
�
�


�
&rc@s�eZdZdZdd�Zdd�ZeZeZeZeZ	eZ
eZeZeZ
eZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZ eZ!eZ"eZ#eZ$eZ%eZ&eZ'eZ(eZ)eZ*eZ+eZ,eZ-eZ.eZ/eZ0eZ1eZ2eZ3eZ4eZ5eZ6eZ7eZ8eZ9[dS)�ASTTransformerz�General purpose base class for AST transformations.
    
    Every visitor method can be overridden to return an AST node that has been
    altered or replaced in some way.
    csV|durdSt|�turt�fdd�|D��St�d|jjd�}|dur'|S||�S)Ncr)r
r*r+r%r
rr.r/z(ASTTransformer.visit.<locals>.<listcomp>r0)r1r2r<r=r>)rrArCr
r%rrszASTTransformer.visitc	s�|��}t|dd�D]}zt||t||��Wq
ty Yq
w|jD]C}zt||�}Wn	ty6Yq$w|dur<n%t|t�rK�fdd�|D�}nt|t�r\t�fdd�|D��}n��|�}t|||�q$|S)N�_attributesr
cr)r
r*�r,�xr%r
rr.1r/z)ASTTransformer._clone.<locals>.<listcomp>c3s�|]}��|�VqdSr r*rKr%r
r�	<genexpr>3s�z(ASTTransformer._clone.<locals>.<genexpr>)	r=r<�setattrr5�_fieldsr6�listr2r)rrA�clonerhr`r
r%r�_clone!s,�
�


zASTTransformer._cloneN):r>r'r(r)rrRrFr*rHr+rlrqrtryr{r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr!r%r&�visit_comprehensionr,r\�
visit_keywordr��visit_Slice�visit_ExtSlice�visit_Indexr
r
r
rrIsr
rIN)
r)�
genshi.compatrr	rrrr�
__docformat__r�objectrrIr
r
r
r�<module>s
|

https://t.me/RX1948 - 2025