%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /snap/core18/current/usr/lib/python3/dist-packages/jinja2/__pycache__/
Upload File :
Create Path :
Current File : //snap/core18/current/usr/lib/python3/dist-packages/jinja2/__pycache__/idtracking.cpython-36.pyc

3

��Y�#�@spddlmZddlmZdZdZdZdZddd	�Zdd
d�Z	Gdd
�d
e
�ZGdd�de�ZGdd�de�Z
dS)�)�NodeVisitor)�	iteritems�paramZresolve�aliasZ	undefinedNcCs.t|d�}t|�}x|D]}|j|�qW|S)N)�parent)�Symbols�FrameSymbolVisitor�visit)�nodes�parent_symbols�sym�visitor�node�r�3/usr/lib/python3/dist-packages/jinja2/idtracking.py�find_symbolss


rcCst|d�}|j|�|S)N)r)r�analyze_node)rrrrrr�symbols_for_nodes

rc@sxeZdZddd�Zdd�Zddd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)rNcCsD|dkr |dkrd}n
|jd}||_||_i|_i|_t�|_dS)Nr�)�levelr�refs�loads�set�stores)�selfrrrrr�__init__s
zSymbols.__init__cKst|�}|j|f|�dS)N)�RootVisitorr	)rr�kwargsr
rrrr'szSymbols.analyze_nodecCs.d|j|f}||j|<|dk	r*||j|<|S)Nzl_%d_%s)rrr)r�name�loadZidentrrr�_define_ref+s


zSymbols._define_refcCs.||jkr|j|S|jdk	r*|jj|�SdS)N)rr�	find_load)r�targetrrrr!2s


zSymbols.find_loadcCs.||jkr|j|S|jdk	r*|jj|�SdS)N)rr�find_ref)rrrrrr#8s


zSymbols.find_refcCs"|j|�}|dkrtd|��|S)NzITried to resolve a name to a reference that was unknown to the frame (%r))r#�AssertionError)rr�rvrrr�ref>s

zSymbols.refcCsBtj|j�}|jj|j�|jj�|_|jj�|_|jj�|_|S)N)	�object�__new__�	__class__�__dict__�updater�copyrr)rr%rrrr,EszSymbols.copycCs`|jj|�||jkr\|jdk	rJ|jj|�}|dk	rJ|j|t|fd�dS|j|tdfd�dS)N)r)r�addrrr#r �VAR_LOAD_ALIAS�VAR_LOAD_UNDEFINED)rrZ	outer_refrrr�storeMs

z
Symbols.storecCs|jj|�|j|tdfd�S)N)r)rr-r �VAR_LOAD_PARAMETER)rrrrr�declare_parameter_szSymbols.declare_parametercCs(|j|�}|dkr$|j|t|fd�dS)N)r)r#r �VAR_LOAD_RESOLVE)rrr"rrrrcs
zSymbols.loadc	Cs�i}x<|D]4}x.|jD]$}||jkr&q|j|d�d||<qWq
Wx6|D].}|jj|j�|jj|j�|jj|j�qHWxxt|�D]l\}}|t|�kr�q�|j|�}|dk	s�td��|j	dk	r�|j	j|�}|dk	r�t
|f|j|<q�t|f|j|<q�WdS)Nrrzshould not happen)r�getrr+rr�lenr#r$rr.r3)	rZbranch_symbolsr�branchr"rrZbranch_countZouter_targetrrr�
branch_updatehs*




zSymbols.branch_updatecCsFi}|}x8|dk	r@x$|jD]}||kr|j|�||<qW|j}q
W|S)N)rr#r)rr%rrrrr�dump_stores�s

zSymbols.dump_storescCsPt�}|}x@|dk	rJx,t|j�D]\}\}}|tkr |j|�q W|j}qW|S)N)rrrr1r-r)rr%rr"Zinstr�_rrr�dump_param_targets�s

zSymbols.dump_param_targets)NN)N)�__name__�
__module__�__qualname__rrr r!r#r&r,r0r2rr7r8r:rrrrrs


rc@sjeZdZdd�Zdd�ZeZZZZZ	Z
Zdd�Zdd�Z
d	d
�Zddd
�Zdd�Zdd�ZdS)rcCst|�|_dS)N)r�sym_visitor)r�symbolsrrrr�szRootVisitor.__init__cKs"x|j�D]}|jj|�q
WdS)N)�iter_child_nodesr>r	)rrr�childrrr�
_simple_visit�szRootVisitor._simple_visitcKs x|jD]}|jj|�qWdS)N)�bodyr>r	)rrrrArrr�visit_AssignBlock�szRootVisitor.visit_AssignBlockcKs&x |jdd�D]}|jj|�qWdS)N�call)Zexclude)rE)r@r>r	)rrrrArrr�visit_CallBlock�szRootVisitor.visit_CallBlockcKs x|jD]}|jj|�qWdS)N)rCr>r	)rrrrArrr�visit_OverlayScope�szRootVisitor.visit_OverlayScoperCcKs�|dkr"|jj|jdd�|j}nN|dkr2|j}n>|dkrh|jj|jdd�|jdk	rd|jj|j�dStd��x|pxfD]}|jj|�qzWdS)NrCT)�store_as_param�else�testzUnknown for branch)r>r	r"rC�else_rJ�RuntimeError)rrZ
for_branchrr6�itemrrr�	visit_For�s
zRootVisitor.visit_ForcKs<x|jD]}|jj|�qWx|jD]}|jj|�q$WdS)N)Ztargetsr>r	rC)rrrr"rArrr�
visit_With�szRootVisitor.visit_WithcOstd|jj��dS)NzCannot find symbols for %r)�NotImplementedErrorr)r;)rr�argsrrrr�
generic_visit�szRootVisitor.generic_visitN)rC)r;r<r=rrBZvisit_Template�visit_Block�visit_Macro�visit_FilterBlock�visit_Scope�visit_IfZvisit_ScopedEvalContextModifierrDrFrGrNrOrRrrrrr�s
rc@s�eZdZdZdd�Zd$dd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#S)%rzA visitor for `Frame.inspect`.cCs
||_dS)N)r?)rr?rrrr�szFrameSymbolVisitor.__init__FcKsT|s|jdkr|jj|j�n2|jdkr8|jj|j�n|jdkrP|jj|j�dS)z2All assignments to names go through this function.rr0rN)Zctxr?r2rr0r)rrrHrrrr�
visit_Name�s

zFrameSymbolVisitor.visit_NamecKs|jj|j�dS)N)r?rr)rrrrrr�visit_NSRef�szFrameSymbolVisitor.visit_NSRefcs^�j|jf���j����fdd�}||j�}||j�}||jpDf�}�jj|||g�dS)Ncs4�j��_}x|D]}�j|f��qW��_|S)N)r,r?r	)r
r%Zsubnode)r�original_symbolsrrr�inner_visit�s

z0FrameSymbolVisitor.visit_If.<locals>.inner_visit)r	rJr?rCZelif_rKr7)rrrr[Zbody_symbolsZelif_symbolsZelse_symbolsr)rrZrrrW�s

zFrameSymbolVisitor.visit_IfcKs|jj|j�dS)N)r?r0r)rrrrrrrT�szFrameSymbolVisitor.visit_MacrocKs |j|f|�|jj|j�dS)N)rRr?r0r")rrrrrr�visit_Import�szFrameSymbolVisitor.visit_ImportcKsJ|j|f|�x6|jD],}t|t�r6|jj|d�q|jj|�qWdS)Nr)rR�names�
isinstance�tupler?r0)rrrrrrr�visit_FromImport�s

z#FrameSymbolVisitor.visit_FromImportcKs$|j|jf|�|j|jf|�dS)z'Visit assignments in the correct order.N)r	rr")rrrrrr�visit_Assign�szFrameSymbolVisitor.visit_AssigncKs|j|jf|�dS)zqVisiting stops at for blocks.  However the block sequence
        is visited as part of the outer scope.
        N)r	�iter)rrrrrrrNszFrameSymbolVisitor.visit_ForcKs|j|jf|�dS)N)r	rE)rrrrrrrF	sz"FrameSymbolVisitor.visit_CallBlockcKs|j|jf|�dS)N)r	�filter)rrrrrrrUsz$FrameSymbolVisitor.visit_FilterBlockcKsx|jD]}|j|�qWdS)N)�valuesr	)rrrr"rrrrOszFrameSymbolVisitor.visit_WithcKs|j|jf|�dS)zStop visiting at block assigns.N)r	r")rrrrrrrDsz$FrameSymbolVisitor.visit_AssignBlockcKsdS)zStop visiting at scopes.Nr)rrrrrrrVszFrameSymbolVisitor.visit_ScopecKsdS)zStop visiting at blocks.Nr)rrrrrrrSszFrameSymbolVisitor.visit_BlockcKsdS)z!Do not visit into overlay scopes.Nr)rrrrrrrGsz%FrameSymbolVisitor.visit_OverlayScopeN)F)r;r<r=�__doc__rrXrYrWrTr\r`rarNrFrUrOrDrVrSrGrrrrr�s"
	r)N)N)Zjinja2.visitorrZjinja2._compatrr1r3r.r/rrr'rrrrrrr�<module>s

~4

Zerion Mini Shell 1.0