HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/mako/__pycache__/pyparser.cpython-310.pyc
o

%weu�@s�dZddlZddlZddlmZddlmZddlmZddlmZhd�Ze�	d�Z
e�e�dd
d�ZGdd
�d
ej
�ZGdd�dej
�ZGdd�dej
�ZGdd�d�ZdS)zyHandles parsing of Python code.

Parsing to AST is done via _ast on Python > 2.5, otherwise the compiler
module is used.
�N)�	_ast_util)�compat)�
exceptions)�util>�None�True�False�print�arg�execc
Ks\zt�|d|�WSty-}ztjdt��jjt��|dd�ffi|��|�d}~ww)zParse an expression into ASTz	<unknown>z(%s) %s (%r)r�2N)	r�parse�	Exceptionr�SyntaxExceptionr�exception_as�	__class__�__name__)�code�mode�exception_kwargs�e�r�F/home/arjun/projects/env/lib/python3.10/site-packages/mako/pyparser.pyr
 s"

�������r
c@steZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�FindIdentifierscKs$d|_d|_t�|_||_||_dS�NF)�in_function�in_assign_targets�set�local_ident_stack�listenerr��selfrrrrr�__init__2s

zFindIdentifiers.__init__cCs(|js|jj�|�dS|j�|�dS�N)rr�declared_identifiers�addr)r!�namerrr�
_add_declared9szFindIdentifiers._add_declaredcCs|�|j�dSr#)r'r&�r!�noderrr�visit_ClassDef?�zFindIdentifiers.visit_ClassDefcCs8|�|j�|j}d|_|jD]}|�|�q||_dS�NT)�visit�valuer�targets)r!r)�in_a�nrrr�visit_AssignBs

zFindIdentifiers.visit_AssigncCsF|jdur|�|j�|jdur|�|j�|jD]}|�|�qdSr#)r&r'�typer-�body�r!r)�	statementrrr�visit_ExceptHandlerNs


�z#FindIdentifiers.visit_ExceptHandlercGs|�|d�dSr,)�_visit_function)r!r)�argsrrr�visit_LambdaVr+zFindIdentifiers.visit_LambdacCs|�|j�|�|d�dSr)r'r&r8r(rrr�visit_FunctionDefY�z!FindIdentifiers.visit_FunctionDefccs0�|D]}t|tj�r|jEdHq|VqdSr#)�
isinstance�_ast�Tuple�elts)r!r9r
rrr�_expand_tuples]s��zFindIdentifiers._expand_tuplescCsj|j}d|_|j}|�dd�|�|jj�D��|_|r"|�|j�n|jD]}|�|�q%||_||_dS)NTcS�g|]}t|��qSr��arg_id��.0r
rrr�
<listcomp>p�z3FindIdentifiers._visit_function.<locals>.<listcomp>)rr�unionrAr9r-r4)r!r)�islambda�infrr1rrrr8ds�

zFindIdentifiers._visit_functioncCsH|�|j�|�|j�|jD]}|�|�q|jD]}|�|�qdSr#)r-�iter�targetr4�orelser5rrr�	visit_Forzs

�zFindIdentifiers.visit_ForcCsbt|jtj�r|�|j�dS|jtvr+|j|jjvr-|j|j	vr/|jj
�|j�dSdSdSdSr#)r=�ctxr>�Storer'�id�reservedrr$r�undeclared_identifiersr%r(rrr�
visit_Name�s
�zFindIdentifiers.visit_NamecCs>|jD]}|jdur|�|j�q|�|j�d�d�qdS)N�.r)�names�asnamer'r&�split�r!r)r&rrr�visit_Import�s


�zFindIdentifiers.visit_ImportcCsR|jD]#}|jdur|�|j�q|jdkr tj	di|j���|�|j�qdS)N�*��'import *' is not supported, since all identifier names must be explicitly declared.  Please use the form 'from <modulename> import <name1>, <name2>, ...' instead.)r])rWrXr'r&r�CompileExceptionrrZrrr�visit_ImportFrom�s


���z FindIdentifiers.visit_ImportFromN)r�
__module__�__qualname__r"r'r*r2r7r:r;rAr8rOrUr[r_rrrrr1s
rc@�eZdZdd�Zdd�ZdS)�	FindTuplecKs||_||_||_dSr#)rr�code_factory)r!rrdrrrrr"�s
zFindTuple.__init__cCsx|jD]6}|j|fi|j��}|jj�|�|jj�t|����|jj	}|�
|j	�|j_	|jj}|�
|j�|j_qdSr#)r@rdrr�codeargs�appendr9�ExpressionGeneratorr.r$rIrT)r!r)r1�p�ldi�luirrr�visit_Tuple�s
�
��zFindTuple.visit_TupleN)rr`rar"rkrrrrrc�srcc@rb)�	ParseFunccKs||_||_dSr#)rrr rrrr"�s
zParseFunc.__init__cCs�|j|j_dd�|jjD�}|jjr|�|jjj�dd�|jjD�}|jjr/|�|jjj�||j_	|jj
|j_
||j_|jj|j_
|jj|j_|jj|j_dS)NcSrBrrCrErrrrG�rHz/ParseFunc.visit_FunctionDef.<locals>.<listcomp>cSrBrrCrErrrrG�rH)r&r�funcnamer9�varargrfr
�
kwonlyargs�kwarg�argnames�defaults�
kwargnames�kw_defaults�
kwdefaults�varargs�kwargs)r!r)rqrsrrrr;�s
zParseFunc.visit_FunctionDefN)rr`rar"r;rrrrrl��rlc@rb)rgcCst�d�|_|j�|�dS)Nz    )r�SourceGenerator�	generatorr-)r!�astnoderrrr"�r<zExpressionGenerator.__init__cCsd�|jj�S)N�)�joinrz�result)r!rrrr.�szExpressionGenerator.valueN)rr`rar"r.rrrrrg�rxrg)r)�__doc__�operatorr>�makorrrrrS�
attrgetterrD�restore__astr
�NodeVisitorrrcrlrgrrrr�<module>s


v