HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/jinja2/__pycache__/idtracking.cpython-310.pyc
o

�N�g;)�@s�ddlZddlmZddlmZejrddlZdZ	dZ
dZdZ	dd	ej
ejd
ejdddfd
d�Z	ddejd
ejdddfdd�ZGdd�d�ZGdd�de�ZGdd�de�ZdS)�N�)�nodes)�NodeVisitor�param�resolve�aliasZ	undefinedr�parent_symbols�Symbols�returncCs*t|d�}t|�}|D]}|�|�q|S�N)�parent)r	�FrameSymbolVisitor�visit)rr�sym�visitor�node�r�E/opt/saltstack/salt/lib/python3.10/site-packages/jinja2/idtracking.py�find_symbolss

rrcCst|d�}|�|�|Sr)r	�analyze_node)rrrrrr�symbols_for_nodes

rc	@sDeZdZ	d&dejddejeddfdd�Zdejdej	ddfd	d
�Z
	d'dedejejeejefdefd
d�Z
dedejej	fdd�Zdedejefdd�Zdedefdd�Zd(dd�Zdeddfdd�Zdedefdd�Zdeddfdd�Zdejdddfd d!�Zdejeeffd"d#�Zdejefd$d%�ZdS))r	Nr�levelr
cCsD|dur|durd}n|jd}||_||_i|_i|_t�|_dS)Nrr)rr�refs�loads�set�stores)�selfrrrrr�__init__"s
zSymbols.__init__r�kwargscKst|�}|j|fi|��dS�N)�RootVisitorr)rrrrrrrr1szSymbols.analyze_node�name�loadcCs2d|j�d|��}||j|<|dur||j|<|S)NZl_�_)rrr)rr!r"�identrrr�_define_ref5s


zSymbols._define_ref�targetcC�.||jvr
|j|S|jdur|j�|�SdSr)rr�	find_load)rr&rrrr(>�



zSymbols.find_loadcCr'r)rr�find_ref�rr!rrrr*Gr)zSymbols.find_refcCs&|�|�}|durtd|�d���|S)NzFTried to resolve a name to a reference that was unknown to the frame (�))r*�AssertionError)rr!�rvrrr�refPs
��zSymbols.ref�te.SelfcCsBt�|j�}|j�|j�|j��|_|j��|_|j��|_|Sr)	�object�__new__�	__class__�__dict__�updater�copyrr)rr.rrrr6YszSymbols.copycCsd|j�|�||jvr0|jdur%|j�|�}|dur%|j|t|fd�dS|j|tdfd�dSdS�N)r")r�addrrr*r%�VAR_LOAD_ALIAS�VAR_LOAD_UNDEFINED)rr!Z	outer_refrrr�storeas

�z
Symbols.storecCs|j�|�|j|tdfd�Sr7)rr8r%�VAR_LOAD_PARAMETERr+rrr�declare_parametersszSymbols.declare_parametercCs(|�|�dur|j|t|fd�dSdSr7)r*r%�VAR_LOAD_RESOLVEr+rrrr"ws�zSymbols.load�branch_symbolscCs�t�}|D]}|�|j�q|�|j�|D]}|j�|j�|j�|j�|j�|j�q|D]-}|�|�}|dus?Jd��|jdurV|j�|�}|durVt|f|j|<q0t	|f|j|<q0dS)Nzshould not happen)
rr5r�difference_updaterrr*rr9r>)rr?r�branchrr!r&Zouter_targetrrr�
branch_update{s$

�zSymbols.branch_updatecCsHi}|}|dur"t|j�D]
}||vr|�|�||<q
|j}|dus|Sr)�sortedrr*r)rr.rr!rrr�dump_stores�s��zSymbols.dump_storescCsNt�}|}|dur%|j��D]\}\}}|tkr|�|�q|j}|dus	|Sr)rr�itemsr<r8r)rr.rr&Zinstrr#rrr�dump_param_targets�s
��zSymbols.dump_param_targets)NNr)r
r0)�__name__�
__module__�__qualname__�t�Optional�intrr�Node�Anyr�strZTupler%r(r*r/r6r;r=r"�SequencerBZDictrD�SetrFrrrrr	!s8���
����
�			
	
c	@s�eZdZddd�Zdejdejddfd	d
�ZeZ	eZ
eZeZeZ
eZeZdejdejddfdd�Zdejdejddfd
d�Zdejdejddfdd�Z	ddejdedejddfdd�Zdejdejddfdd�Zdejdejdejddfdd�ZdS)r �symbolsr	r
NcCst|�|_dSr)r
�sym_visitor�rrRrrrr�szRootVisitor.__init__rrcKs|��D]}|j�|�qdSr�Ziter_child_nodesrSr�rrr�childrrr�
_simple_visit�s�zRootVisitor._simple_visitcK�|jD]}|j�|�qdSr��bodyrSrrVrrr�visit_AssignBlock��
�zRootVisitor.visit_AssignBlockcKs"|jdd�D]}|j�|�qdS)N)�call)ZexcluderUrVrrr�visit_CallBlock�s�zRootVisitor.visit_CallBlockcKrYrrZrVrrr�visit_OverlayScope�r]zRootVisitor.visit_OverlayScoper[�
for_branchcKs�|dkr|jj|jdd�|j}n'|dkr|j}n|dkr4|jj|jdd�|jdur2|j�|j�dStd��|rE|D]
}|j�|�q<dSdS)Nr[T)�store_as_param�else�testzUnknown for branch)rSrr&r[�else_rd�RuntimeError)rrrarrA�itemrrr�	visit_For�s 
�zRootVisitor.visit_ForcKs4|jD]}|j�|�q|jD]}|j�|�qdSr)�targetsrSrr[)rrrr&rWrrr�
visit_With�s


�zRootVisitor.visit_With�argscOstdt|�j����)NzCannot find symbols for )�NotImplementedError�typerG)rrrkrrrr�
generic_visit�szRootVisitor.generic_visit�rRr	r
N)r[)rGrHrIrrrMrJrNrXZvisit_Template�visit_Block�visit_Macro�visit_FilterBlock�visit_Scope�visit_IfZvisit_ScopedEvalContextModifier�AssignBlockr\�	CallBlockr_�OverlayScoper`�ForrOrh�Withrjrnrrrrr �s2
����
�$r c	@s�eZdZdZd*dd�Z	d+d	ejd
edej	ddfdd
�Z
d	ejdej	ddfdd�Zd	ej
dej	ddfdd�Zd	ejdej	ddfdd�Zd	ejdej	ddfdd�Zd	ejdej	ddfdd�Zd	ejdej	ddfdd�Zd	ejdej	ddfdd�Zd	ejdej	ddfdd�Zd	ejdej	ddfdd�Zd	ejdej	ddfd d!�Zd	ejdej	ddfd"d#�Z d	ej!dej	ddfd$d%�Z"d	ej#dej	ddfd&d'�Z$d	ej%dej	ddfd(d)�Z&dS),r
zA visitor for `Frame.inspect`.rRr	r
NcCs
||_dSr)rRrTrrrr�s
zFrameSymbolVisitor.__init__FrrbrcKs\|s|jdkr|j�|j�dS|jdkr|j�|j�dS|jdkr,|j�|j�dSdS)z2All assignments to names go through this function.rr;r"N)�ctxrRr=r!r;r")rrrbrrrr�
visit_Name�s

�zFrameSymbolVisitor.visit_NamecK�|j�|j�dSr)rRr"r!�rrrrrr�visit_NSRef��zFrameSymbolVisitor.visit_NSRefcst�j|jfi����j�dtjtjddf���fdd�}||j�}||j�}||j	p-d�}�j�
|||g�dS)Nrr
r	cs4����_}|D]}�j|fi���q	��_|Sr)r6rRr)rr.Zsubnode�rZoriginal_symbolsrrr�inner_visits
z0FrameSymbolVisitor.visit_If.<locals>.inner_visitr)rrdrRrJ�IterablerrMr[Zelif_rerB)rrrr�Zbody_symbolsZelif_symbolsZelse_symbolsrr�rrt�s"
	
zFrameSymbolVisitor.visit_IfcKr|r)rRr;r!r}rrrrqrzFrameSymbolVisitor.visit_MacrocKs$|j|fi|��|j�|j�dSr)rnrRr;r&r}rrr�visit_ImportszFrameSymbolVisitor.visit_ImportcKsJ|j|fi|��|jD]}t|t�r|j�|d�q|j�|�qdS)Nr)rn�names�
isinstance�tuplerRr;)rrrr!rrr�visit_FromImports

�z#FrameSymbolVisitor.visit_FromImportcKs,|j|jfi|��|j|jfi|��dS)z'Visit assignments in the correct order.N)rrr&r}rrr�visit_AssignszFrameSymbolVisitor.visit_AssigncK�|j|jfi|��dS)zqVisiting stops at for blocks.  However the block sequence
        is visited as part of the outer scope.
        N)r�iterr}rrrrh#szFrameSymbolVisitor.visit_ForcK�|j|jfi|��dSr)rr^r}rrrr_)�z"FrameSymbolVisitor.visit_CallBlockcKr�r)r�filterr}rrrrr,r�z$FrameSymbolVisitor.visit_FilterBlockcKs|jD]}|�|�qdSr)�valuesr)rrrr&rrrrj/s
�zFrameSymbolVisitor.visit_WithcKr�)zStop visiting at block assigns.N)rr&r}rrrr\3sz$FrameSymbolVisitor.visit_AssignBlockcK�dS)zStop visiting at scopes.Nrr}rrrrs7�zFrameSymbolVisitor.visit_ScopecKr�)zStop visiting at blocks.Nrr}rrrrp:r�zFrameSymbolVisitor.visit_BlockcKr�)z!Do not visit into overlay scopes.Nrr}rrrr`=r�z%FrameSymbolVisitor.visit_OverlayScopero)F)'rGrHrI�__doc__rr�Name�boolrJrNr{ZNSRefr~ZIfrtZMacrorqZImportr�Z
FromImportr�ZAssignr�rxrhrvr_ZFilterBlockrrryrjrur\ZScopersZBlockrprwr`rrrrr
�s6
����
�	r
r)�typingrJ�rrrZ
TYPE_CHECKINGZtyping_extensions�ter<r>r9r:r�rMrKrrr	r r
rrrr�<module>s:�
��
����
�: