HOME


Mini Shell 1.0
DIR: /lib/python3/dist-packages/jinja2/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/jinja2/__pycache__/idtracking.cpython-312.pyc
�

��+b�)���ddlZddlmZddlmZdZdZdZdZ		dd	ejejd
ejdddfd
�Z
	ddejd
ejdddfd�ZGd�d�ZGd�de�ZGd�de�Zy)�N�)�nodes)�NodeVisitor�param�resolve�alias�	undefinedr�parent_symbols�Symbols�returnc�d�t|��}t|�}|D]}|j|��|S�N)�parent)r�FrameSymbolVisitor�visit)rr
�sym�visitor�nodes     �3/usr/lib/python3/dist-packages/jinja2/idtracking.py�find_symbolsrs8����
(�C� ��%�G�����
�
�d����J�rc�@�t|��}|j|�|Sr)r�analyze_node)rr
rs   r�symbols_for_noders!����
(�C����T���Jrc	�(�eZdZ	ddejddejeddfd�Zdejdejddfd�Z
	dd	ed
ejejeejefdefd�Z
dedejejfd
�Zd	edejefd�Zd	edefd�Zdd�Zd	eddfd�Zd	edefd�Zd	eddfd�Zdej*dddfd�Zdej.eeffd�Zdej2efd�Zy)rNr�levelrc��|�|�d}n|jdz}||_||_i|_i|_t	�|_y)Nrr)rr�refs�loads�set�stores)�selfrrs   r�__init__zSymbols.__init__sF���=��~������q�(����
����&(��	�)+��
�"%�%��rr�kwargsc�@�t|�}|j|fi|��y�N)�RootVisitorr)r"rr$rs    rrzSymbols.analyze_node.s���d�#����
�
�d�%�f�%r�name�loadc�j�d|j�d|��}||j|<|�||j|<|S)N�l_�_)rrr)r"r(r)�idents    r�_define_refzSymbols._define_ref2s@���T�Z�Z�L��$��(����	�	�$���� $�D�J�J�u���r�targetc��||jvr|j|S|j�|jj|�Syr&)rr�	find_load)r"r/s  rr1zSymbols.find_load;s?���T�Z�Z���:�:�f�%�%��;�;�"��;�;�(�(��0�0�rc��||jvr|j|S|j�|jj|�Syr&)rr�find_ref�r"r(s  rr3zSymbols.find_refDs>���4�9�9���9�9�T�?�"��;�;�"��;�;�'�'��-�-�rc�J�|j|�}|�td|�d���|S)NzFTried to resolve a name to a reference that was unknown to the frame (�))r3�AssertionError)r"r(�rvs   r�refzSymbols.refMs:��
�]�]�4�
 ��
�:� �*�*.���4��
��	rc�H�tj|j�}|jj	|j�|j
j
�|_|jj
�|_|jj
�|_|Sr&)	�object�__new__�	__class__�__dict__�updater�copyrr!)r"r8s  rr@zSymbols.copyVsg��
�^�^�D�N�N�
+��
�����4�=�=�)��)�)�.�.�"����:�:�?�?�$����K�K�$�$�&��	��	rc��|jj|�||jvr]|j�7|jj	|�}|�|j|t|f��y|j|tdf��yy�N)r))r!�addrrr3r.�VAR_LOAD_ALIAS�VAR_LOAD_UNDEFINED)r"r(�	outer_refs   r�storez
Symbols.store^s�����������t�y�y� ��{�{�&� �K�K�0�0��6�	��(��$�$�T���0K�$�L��
���T�);�T�(B��C�!rc�j�|jj|�|j|tdf��SrB)r!rCr.�VAR_LOAD_PARAMETERr4s  r�declare_parameterzSymbols.declare_parameterps.�������������,>��+E��F�Frc�Z�|j|��|j|t|f��yyrB)r3r.�VAR_LOAD_RESOLVEr4s  rr)zSymbols.loadts/���=�=���&����T�)9�4�(@��A�'r�branch_symbolsc��i}|D]:}|jD])}||jvr�|j|d�dz||<�+�<|D]q}|jj|j�|jj|j�|jj|j��s|j�D]�\}}|t
|�k(r�|j|�}|�Jd��|j�3|jj|�}|�t|f|j|<�nt|f|j|<��y)Nrrzshould not happen)r!�getrr?r�items�lenr3rrDrL)	r"rMr!�branchr/rr(�branch_count�outer_targets	         r�
branch_updatezSymbols.branch_updatexs=��#%��$�	;�F� �-�-�
;���T�[�[�(��!'���F�A�!6��!:��v��
;�	;�"�	+�C��I�I���S�X�X�&��J�J���c�i�i�(��K�K���s�z�z�*�	+�
#)�,�,�.�	:��D�,��s�>�2�2���]�]�4�(�F��%�:�':�:�%��{�{�&�#�{�{�3�3�D�9���+�*8�,�)G�D�J�J�v�&��"2�D�!9�D�J�J�v��	:rc��i}|}|�Bt|j�D]}||vs�|j|�||<�|j}|��B|Sr&)�sortedr!r3r)r"r8rr(s    r�dump_storeszSymbols.dump_stores�s]��!��&*�����t�{�{�+�
3���r�>�#�}�}�T�2�B�t�H�
3��;�;�D����	rc��t�}|}|�O|jj�D]#\}\}}|tk(s�|j	|��%|j
}|��O|Sr&)r rrPrIrCr)r"r8rr/�instrr,s      r�dump_param_targetszSymbols.dump_param_targets�sg��
�U��&*����&*�j�j�&6�&6�&8�
#�"��
����.�.��F�F�6�N�
#��;�;�D����	r)NNr&)rr)�__name__�
__module__�__qualname__�t�Optional�intr#r�Node�Anyr�str�Tupler.r1r3r9r@rGrJr)�SequencerU�DictrX�Setr[�rrrrsv��MQ�
(��j�j��+�
(�;<�:�:�c�?�
(�	
�
(�&����&�q�u�u�&��&�
LP���� �z�z�!�'�'�#�q�z�z�#��2F�*G�H��	������
�
�1�5�5�(9���S��Q�Z�Z��_��������D�#�D�$�D�$G�c�G�c�G�B��B��B�:�A�J�J�y�,A�:�d�:�6�Q�V�V�C��H�-���A�E�E�#�J�rc	���eZdZdd�Zdej
dejddfd�ZeZ	eZ
eZeZeZ
eZeZdej dejddfd�Zdej$dejddfd�Zdej(dejddfd	�Z	ddej,d
edejddfd�Zdej2dejddfd�Zdej
d
ejdejddfd�Zy)r'rNc�$�t|�|_yr&)r�sym_visitor�r"�symbolss  rr#zRootVisitor.__init__�s��-�g�6��rrr$c�d�|j�D]}|jj|��yr&��iter_child_nodesrlr�r"rr$�childs    r�
_simple_visitzRootVisitor._simple_visit�s.���*�*�,�	*�E����"�"�5�)�	*rc�\�|jD]}|jj|��yr&��bodyrlrrrs    r�visit_AssignBlockzRootVisitor.visit_AssignBlock��)���Y�Y�	*�E����"�"�5�)�	*rc�h�|jd��D]}|jj|��y)N)�call)�excluderprrs    r�visit_CallBlockzRootVisitor.visit_CallBlock�s3���*�*�9�*�=�	*�E����"�"�5�)�	*rc�\�|jD]}|jj|��yr&rvrrs    r�visit_OverlayScopezRootVisitor.visit_OverlayScope�ryr�
for_branchc��|dk(r4|jj|jd��|j}n{|dk(r
|j}ni|dk(rY|jj|jd��|j
�%|jj|j
�yt
d��|r#|D]}|jj|��yy)NrwT)�store_as_param�else�testzUnknown for branch)rlrr/rw�else_r��RuntimeError)r"rr�r$rR�items      r�	visit_ForzRootVisitor.visit_For�s���������"�"�4�;�;�t�"�D��Y�Y�F�
�6�
!��Z�Z�F�
�6�
!����"�"�4�;�;�t�"�D��y�y�$�� � �&�&�t�y�y�1���3�4�4���
-��� � �&�&�t�,�
-�rc��|jD]}|jj|��|jD]}|jj|��yr&)�targetsrlrrw)r"rr$r/rss     r�
visit_WithzRootVisitor.visit_With�sP���l�l�	+�F����"�"�6�*�	+��Y�Y�	*�E����"�"�5�)�	*r�argsc�D�tdt|�j����)NzCannot find symbols for )�NotImplementedError�typer\)r"rr�r$s    r�
generic_visitzRootVisitor.generic_visit�s ��!�$<�T�$�Z�=P�=P�<S�"T�U�Ur�rnrrN)rw)r\r]r^r#rrbr_rcrt�visit_Template�visit_Block�visit_Macro�visit_FilterBlock�visit_Scope�visit_If�visit_ScopedEvalContextModifier�AssignBlockrx�	CallBlockr}�OverlayScoper�Forrdr��Withr�r�rirrr'r'�sA��7�*�%�*�*�*����*�$�*�#�N��K��K�%���K��H�&3�#�*�e�&7�&7�*�1�5�5�*�T�*�*�E�O�O�*�q�u�u�*��*�*�u�'9�'9�*�Q�U�U�*�t�*�
28�-��I�I�-�+.�-�CD�5�5�-�	
�-�(*�u�z�z�*�Q�U�U�*�t�*�V�%�*�*�V�Q�U�U�V�a�e�e�V�PT�Vrr'c	��eZdZdZdd�Z	ddejdedejddfd�Z
dejdejddfd	�Zdejdejddfd
�Zdejdejddfd�Zdej"dejddfd�Zdej&dejddfd
�Zdej*dejddfd�Zdej.dejddfd�Zdej2dejddfd�Zdej6dejddfd�Zdej:dejddfd�Zdej>dejddfd�Z dejBdejddfd�Z"dejFdejddfd�Z$dejJdejddfd�Z&y)rzA visitor for `Frame.inspect`.rNc��||_yr&)rnrms  rr#zFrameSymbolVisitor.__init__�s	����rrr�r$c�F�|s|jdk(r&|jj|j�y|jdk(r&|jj	|j�y|jdk(r&|jj|j�yy)z2All assignments to names go through this function.rrGr)N)�ctxrnrJr(rGr))r"rr�r$s    r�
visit_NamezFrameSymbolVisitor.visit_Name�sq���T�X�X��0��L�L�*�*�4�9�9�5�
�X�X��
 ��L�L���t�y�y�)�
�X�X��
��L�L���d�i�i�(� rc�N�|jj|j�yr&)rnr)r(�r"rr$s   r�visit_NSRefzFrameSymbolVisitor.visit_NSRef�s�������$�)�)�$rc�b�����j|jfi����j�dtjt
jddf���fd�}||j�}||j�}||jxsd�}�jj|||g�y)Nrrrc�x���j�x�_}|D]}�j|fi������_|Sr&)r@rnr)rr8�subnoder$�original_symbolsr"s   ���r�inner_visitz0FrameSymbolVisitor.visit_If.<locals>.inner_visitsH��� 0� 5� 5� 7�7�D�L�2� �
.����
�
�7�-�f�-�
.�,�D�L��Irri)rr�rnr_�Iterablerrbrw�elif_r�rU)r"rr$r��body_symbols�elif_symbols�else_symbolsr�s` `    @rr�zFrameSymbolVisitor.visit_If�s������
�
�4�9�9�'��'��<�<��	�q�z�z�%�*�*�5�	�)�	�#�4�9�9�-��"�4�:�:�.��"�4�:�:�#3��4�����"�"�L�,��#M�Nrc�N�|jj|j�yr&)rnrGr(r�s   rr�zFrameSymbolVisitor.visit_Macros�������4�9�9�%rc�t�|j|fi|��|jj|j�yr&)r�rnrGr/r�s   r�visit_ImportzFrameSymbolVisitor.visit_Imports-������4�*�6�*������4�;�;�'rc���|j|fi|��|jD]L}t|t�r|jj|d��2|jj|��Ny)Nr)r��names�
isinstance�tuplernrG)r"rr$r(s    r�visit_FromImportz#FrameSymbolVisitor.visit_FromImports\������4�*�6�*��J�J�	)�D��$��&����"�"�4��7�+����"�"�4�(�		)rc�x�|j|jfi|��|j|jfi|��y)z'Visit assignments in the correct order.N)rrr/r�s   r�visit_AssignzFrameSymbolVisitor.visit_Assigns0����
�
�4�9�9�'��'���
�
�4�;�;�)�&�)rc�>�|j|jfi|��y)zqVisiting stops at for blocks.  However the block sequence
        is visited as part of the outer scope.
        N)r�iterr�s   rr�zFrameSymbolVisitor.visit_For#s��	��
�
�4�9�9�'��'rc�>�|j|jfi|��yr&)rr{r�s   rr}z"FrameSymbolVisitor.visit_CallBlock)s����
�
�4�9�9�'��'rc�>�|j|jfi|��yr&)r�filterr�s   rr�z$FrameSymbolVisitor.visit_FilterBlock,s����
�
�4�;�;�)�&�)rc�H�|jD]}|j|��yr&)�valuesr)r"rr$r/s    rr�zFrameSymbolVisitor.visit_With/s!���k�k�	�F��J�J�v��	rc�>�|j|jfi|��y)zStop visiting at block assigns.N)rr/r�s   rrxz$FrameSymbolVisitor.visit_AssignBlock3s����
�
�4�;�;�)�&�)rc��y)zStop visiting at scopes.Nrir�s   rr�zFrameSymbolVisitor.visit_Scope7��rc��y)zStop visiting at blocks.Nrir�s   rr�zFrameSymbolVisitor.visit_Block:r�rc��y)z!Do not visit into overlay scopes.Nrir�s   rrz%FrameSymbolVisitor.visit_OverlayScope=r�rr�)F)'r\r]r^�__doc__r#r�Name�boolr_rcr��NSRefr��Ifr��Macror��Importr��
FromImportr��Assignr�r�r�r�r}�FilterBlockr�r�r�r�rx�Scoper��Blockr�r�rrirrrr�s$��(��8=�	)��J�J�	)�04�	)�HI���	)�	
�	)�%����%�q�u�u�%��%�O�U�X�X�O����O�4�O�$&����&�q�u�u�&��&�(����(����(�4�(�)�U�%5�%5�)����)�4�)�*����*����*�4�*�
(�e�i�i�(�1�5�5�(�T�(�(�E�O�O�(�q�u�u�(��(�*�e�&7�&7�*�1�5�5�*�T�*��u�z�z��Q�U�U��t��*�e�&7�&7�*�1�5�5�*�T�*�'����'�q�u�u�'��'�'����'�q�u�u�'��'�0�u�'9�'9�0�Q�U�U�0�t�0rrr&)�typingr_�rrrrIrLrDrEr�rbr`rrrr'rrirr�<module>r�s����� ������� ��LP���:�:�e�j�j�!��34�:�:�i�3H����?C��
�*�*��&'�j�j��&;����M�M�`7V�+�7V�tV0��V0r