HEX
Server: LiteSpeed
System: Linux standart9.isimtescil.net 3.10.0-962.3.2.lve1.5.26.7.el7.x86_64 #1 SMP Wed Oct 2 07:53:12 EDT 2019 x86_64
User: karalev (5310)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/mako/__pycache__/parsetree.cpython-37.opt-1.pyc
B

�C]�K�@stdZddlZddlmZddlmZddlmZddlmZddlmZGdd	�d	e�Z	Gd
d�de	�Z
Gdd
�d
e	�ZGdd�de	�ZGdd�de	�Z
Gdd�de	�ZGdd�de	�ZGdd�de�ZGdd�de�ee	��ZGdd�de�ZGdd�de�ZGdd�de�ZGd d!�d!e�ZGd"d#�d#e�ZGd$d%�d%e�ZGd&d'�d'e�ZGd(d)�d)e�ZGd*d+�d+e�ZdS),z5defines the parse tree components for Mako templates.�N)�ast)�compat)�
exceptions)�filters)�utilc@s4eZdZdZdd�Zedd��Zdd�Zdd	�Zd
S)�Nodez(base class for a Node in the parse tree.cCs||_||_||_||_dS)N)�source�lineno�pos�filename)�selfrr	r
r�r
�?/opt/alt/python37/lib/python3.7/site-packages/mako/parsetree.py�__init__sz
Node.__init__cCs|j|j|j|jd�S)N)rr	r
r)rr	r
r)rr
r
r�exception_kwargsszNode.exception_kwargscCsgS)Nr
)rr
r
r�get_children%szNode.get_childrencs,�fdd�}t�d|jj|�}||�dS)Ncs x|��D]}|���q
WdS)N)r�accept_visitor)Znode�n)�visitorr
r�traverse)sz%Node.accept_visitor.<locals>.traverseZvisit)�getattr�	__class__�__name__)rrr�methodr
)rrr(szNode.accept_visitorN)	r�
__module__�__qualname__�__doc__r�propertyrrrr
r
r
rrs
	rcs0eZdZdZ�fdd�Zdd�Zdd�Z�ZS)�TemplateNodez?a 'container' node that stores the overall collection of nodes.cs&tt|��ddd|�g|_i|_dS)N�r)�superrr�nodes�page_attributes)rr)rr
rr5szTemplateNode.__init__cCs|jS)N)r!)rr
r
rr:szTemplateNode.get_childrencCsdt�|j�|jfS)NzTemplateNode(%s, %r))r�sorted_dict_reprr"r!)rr
r
r�__repr__=s
zTemplateNode.__repr__)rrrrrrr$�
__classcell__r
r
)rrr1srcsLeZdZdZdZ�fdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
�ZS)�ControlLinez�defines a control line, a line-oriented python line or end tag.

    e.g.::

        % if foo:
            (markup)
        % endif

    Fcsltt|�jf|�||_||_||_|dk|_g|_|jrHg|_g|_	n t
j|f|j�}|j
|_|j|_	dS)N)�for�if�while�try�with)r r&r�text�keyword�isendZ
is_primaryr!�_declared_identifiers�_undeclared_identifiersrZPythonFragmentr�declared_identifiers�undeclared_identifiers)rr-r.r,�kwargs�code)rr
rrRs
zControlLine.__init__cCs|jS)N)r!)rr
r
rraszControlLine.get_childrencCs|jS)N)r/)rr
r
rr1dsz ControlLine.declared_identifierscCs|jS)N)r0)rr
r
rr2gsz"ControlLine.undeclared_identifierscCs0|tddg�tddg�tdg�d��|jg�kS)zRreturn true if the given keyword is a ternary keyword
        for this ControlLine�else�elif�except�finally)r(r*r')�set�getr-)rr-r
r
r�
is_ternaryjs


zControlLine.is_ternarycCsd|j|j|j|j|jffS)NzControlLine(%r, %r, %r, %r))r-r,r.r	r
)rr
r
rr$ts
zControlLine.__repr__)rrrrZhas_loop_contextrrr1r2r;r$r%r
r
)rrr&Ds

r&cs(eZdZdZ�fdd�Zdd�Z�ZS)�Textz#defines plain text in the template.cstt|�jf|�||_dS)N)r r<r�content)rr=r3)rr
rr�sz
Text.__init__cCsd|j|j|jffS)NzText(%r, %r))r=r	r
)rr
r
rr$�sz
Text.__repr__)rrrrrr$r%r
r
)rrr<}sr<cs8eZdZdZ�fdd�Zdd�Zdd�Zdd	�Z�ZS)
�Codez�defines a Python code block, either inline or module level.

    e.g.::

        inline:
        <%
            x = 12
        %>

        module level:
        <%!
            import logger
        %>

    cs4tt|�jf|�||_||_tj|f|j�|_dS)N)	r r>rr,�ismoduler�
PythonCoderr4)rr,r?r3)rr
rr�sz
Code.__init__cCs|jjS)N)r4r1)rr
r
rr1�szCode.declared_identifierscCs|jjS)N)r4r2)rr
r
rr2�szCode.undeclared_identifierscCsd|j|j|j|jffS)NzCode(%r, %r, %r))r,r?r	r
)rr
r
rr$�sz
Code.__repr__)	rrrrrr1r2r$r%r
r
)rrr>�s
r>cs(eZdZdZ�fdd�Zdd�Z�ZS)�Commentz6defines a comment line.

    # this is a comment

    cstt|�jf|�||_dS)N)r rArr,)rr,r3)rr
rr�szComment.__init__cCsd|j|j|jffS)NzComment(%r, %r))r,r	r
)rr
r
rr$�szComment.__repr__)rrrrrr$r%r
r
)rrrA�srAcs8eZdZdZ�fdd�Zdd�Zdd�Zdd	�Z�ZS)
�
Expressionz/defines an inline expression.

    ${x+y}

    csFtt|�jf|�||_||_tj|f|j�|_tj	|f|j�|_
dS)N)r rBrr,�escapesr�ArgumentListr�escapes_coder@r4)rr,rCr3)rr
rr�s
zExpression.__init__cCsgS)Nr
)rr
r
rr1�szExpression.declared_identifierscCs,|jj�|jj�ttj������|jj	�S)N)
r4r2�unionrE�
differencer9r�DEFAULT_ESCAPES�keysr1)rr
r
rr2�sz!Expression.undeclared_identifierscCsd|j|jj|j|jffS)NzExpression(%r, %r, %r))r,rE�argsr	r
)rr
r
rr$�szExpression.__repr__)	rrrrrr1r2r$r%r
r
)rrrB�s
rBcs,eZdZdZiZ�fdd�Zdd�Z�ZS)�_TagMetazImetaclass to allow Tag to produce a subclass according to
    its keywordcs4t|dd�dk	r||j|j<tt|��|||�dS)N�__keyword__)r�	_classmaprLr rKr)�clsZclsname�basesZdict_)rr
rr�sz_TagMeta.__init__c
Ks�d|kr*|�d�\}}tjt|||f|�Sytj|}Wn<tk
rttjd||d|d|d|dd��YnXtj|||f|�S)N�:zNo such tag: '%s'rr	r
r)rr	r
r)	�split�type�__call__�CallNamespaceTagrKrM�KeyErrorr�CompileException)rNr-�
attributesr3�ns�defnamer
r
rrS�sz_TagMeta.__call__)rrrrrMrrSr%r
r
)rrrK�srKcsTeZdZdZdZ�fdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Z�ZS)�Tagz�abstract base class for tags.

    e.g.::

        <%sometag/>

        <%someothertag>
            stuff
        </%someothertag>

    Ncsxtt��jf|�|�_|�_��||��fdd�|D�}t|�rhtjdd�	dd�|D��f�j
��d�_g�_dS)aVconstruct a new Tag instance.

        this constructor not called directly, and is only called
        by subclasses.

        :param keyword: the tag keyword

        :param attributes: raw dictionary of attribute key/value pairs

        :param expressions: a set of identifiers that are legal attributes,
         which can also contain embedded expressions

        :param nonexpressions: a set of identifiers that are legal
         attributes, which cannot contain embedded expressions

        :param \**kwargs:
         other arguments passed to the Node superclass (lineno, pos)

        csg|]}|�jkr|�qSr
)�parsed_attributes)�.0�r)rr
r�
<listcomp>0sz Tag.__init__.<locals>.<listcomp>zMissing attribute(s): %s�,cSsg|]}t|��qSr
)�repr)r\�mr
r
rr^4sN)
r rZrr-rW�_parse_attributes�lenrrV�joinr�parentr!)rr-rW�expressions�nonexpressionsZrequiredr3Zmissing)r)rrrszTag.__init__cCs
|jdkS)N)re)rr
r
r�is_root:szTag.is_rootcCs|jS)N)r!)rr
r
rr=szTag.get_childrenc	CsBt�}i|_�x(|jD�]}||kr�g}x�t�dtj��|j|�D]j}t�dtj��|�}|r�tj	|�
d���f|j�}|�
|j�}|�d|�
d��qD|rD|�t|��qDWd�|�p�td�|j|<q||k�rt�d|j|��rtjd||jff|j��t|j|�|j|<qtjd	|j|ff|j��qW||_dS)
Nz	(\${.+?})z^\${(.+?)}$�z(%s)z + rz\${.+?}z=Attibute '%s' in tag '%s' does not allow embedded expressionsz$Invalid attribute for tag '%s': '%s')r9r[rW�re�compile�SrQ�matchrr@�group�rstriprrFr2�appendr`rd�searchrrVr-�!expression_undeclared_identifiers)	rrfrgr2�key�expr�xrar4r
r
rrb@s:
zTag._parse_attributescCsgS)Nr
)rr
r
rr1jszTag.declared_identifierscCs|jS)N)rr)rr
r
rr2mszTag.undeclared_identifierscCs*d|jj|jt�|j�|j|jf|jfS)Nz%s(%r, %s, %r, %r))	rrr-rr#rWr	r
r!)rr
r
rr$ps

zTag.__repr__)
rrrrrLrrhrrbr1r2r$r%r
r
)rrrZs**rZcs4eZdZdZ�fdd�Zdd�Z�fdd�Z�ZS)�
IncludeTagZincludecs>tt|�j||dddf|�tjd|�dd�f|j�|_dS)N)�file�importrJr
)rwz__DUMMY(%s)rJr)r rvrrr@r:r�	page_args)rr-rWr3)rr
rr}s
zIncludeTag.__init__cCsgS)Nr
)rr
r
rr1�szIncludeTag.declared_identifierscs2|jj�tdg���|jj�}|�tt|����S)NZ__DUMMY)ryr2rGr9r1rFr rv)rZidentifiers)rr
rr2�s

z!IncludeTag.undeclared_identifiers)rrrrLrr1r2r%r
r
)rrrvzs
rvcs(eZdZdZ�fdd�Zdd�Z�ZS)�NamespaceTag�	namespacecsztt|�j||dddf|�|�ddttt|����|_d|krXd|krXtj	d|j
��d|krvd	|krvtj	d|j
��dS)
N)rw)�nameZinheritablerx�moduler
r|z	__anon_%srx�?'name' and/or 'import' attributes are required for <%namespace>rwr}�4<%namespace> may only have one of 'file' or 'module')r~)r)r rzrr:�hex�abs�idr|rrVr)rr-rWr3)rr
rr�s 
zNamespaceTag.__init__cCsgS)Nr
)rr
r
rr1�sz!NamespaceTag.declared_identifiers)rrrrLrr1r%r
r
)rrrz�srzcs(eZdZdZ�fdd�Zdd�Z�ZS)�TextTagr,cs:tt|�j||dddf|�tj|�dd�f|j�|_dS)Nr
�filterr)r r�rrrDr:r�filter_args)rr-rWr3)rr
rr�s
zTextTag.__init__cCs|jj�tj����|j�S)N)r�r2rGrrHrIrFrr)rr
r
rr2�szTextTag.undeclared_identifiers)rrrrLrr2r%r
r
)rrr��sr�csLeZdZdZ�fdd�ZdZdZedd��Zdd�Z	d	d
�Z
dd�Z�ZS)
�DefTag�defcs�ddgdd�|D�}tt|�j|||ddf|�|d}t�d|�rTtjd|j��tj	d
|df|j�|_
|j
j|_|�
dd
�|_tj|�
dd
�f|j�|_dS)N�buffered�cachedcSsg|]}|�d�r|�qS)�cache_)�
startswith)r\�cr
r
rr^�sz#DefTag.__init__.<locals>.<listcomp>)r|r��	decorator)r|r|z^[\w_]+$�Missing parenthesis in %defzdef z:passr�rr�)r�)r r�rrjrmrrVrrZFunctionDecl�
function_decl�funcnamer|r:r�rDr�)rr-rWr3rfr|)rr
rr�s&


zDefTag.__init__FcCs|jjS)N)r�r�)rr
r
rr��szDefTag.funcnamecKs|jjf|�S)N)r��get_argument_expressions)r�kwr
r
rr��szDefTag.get_argument_expressionscCs|jjS)N)r��allargnames)rr
r
rr1�szDefTag.declared_identifierscCs`g}x*|jjD]}|ttj|f|j�j�7}qWt|��|j	j�
tj�
����|j��
|jj�S)N)r��defaults�listrr@rr2r9rFr�rGrrHrIrrr�)rZresr�r
r
rr2�szDefTag.undeclared_identifiers)
rrrrLr�is_anonymous�is_blockrr�r�r1r2r%r
r
)rrr��sr�csTeZdZdZ�fdd�ZdZedd��Zedd��Zd	d
�Z	dd�Z
d
d�Z�ZS)�BlockTag�blockcs�dddgdd�|D�}tt|�j|||ddf|�|�d�}|r\t�d	|�s\tjd|j��|sz|�dd�rztjd|j��t	j
|�dd�f|j�|_||_|�d
d�|_
t	j|�dd�f|j�|_dS)Nr�r�rJcSsg|]}|�d�r|�qS)r�)r�)r\r�r
r
rr^	sz%BlockTag.__init__.<locals>.<listcomp>)r|r�r�r
r|z^[\w_]+$�,%block may not specify an argument signature�#Only named %blocks may specify argsrr�r�)r�)r�)r r�rr:rjrmrrVrr�FunctionArgs�	body_declr|r�rDr�)rr-rWr3rfr|)rr
rrs.


zBlockTag.__init__TcCs
|jdkS)N)r|)rr
r
rr�*szBlockTag.is_anonymouscCs|jpd|jfS)Nz__M_anon_%d)r|r	)rr
r
rr�.szBlockTag.funcnamecKs|jjf|�S)N)r�r�)rr�r
r
rr�2sz!BlockTag.get_argument_expressionscCs|jjS)N)r�r�)rr
r
rr15szBlockTag.declared_identifierscCs|jj�tj����|j�S)N)r�r2rGrrHrIrFrr)rr
r
rr28szBlockTag.undeclared_identifiers)
rrrrLrr�rr�r�r�r1r2r%r
r
)rrr�s!r�cs0eZdZdZ�fdd�Zdd�Zdd�Z�ZS)�CallTagZcallcsXtt|�j||dddf|�|d|_tj|jf|j�|_tj|�	dd�f|j�|_
dS)NrJ)rtrtr)r r�r�
expressionrr@rr4r�r:r�)rr-rWr3)rr
rrCs

zCallTag.__init__cCs|jj�|jj�S)N)r4r1rFr�r�)rr
r
rr1MszCallTag.declared_identifierscCs|jj�|jj�S)N)r4r2rGr1)rr
r
rr2PszCallTag.undeclared_identifiers)rrrrLrr1r2r%r
r
)rrr�@s
r�cs,eZdZ�fdd�Zdd�Zdd�Z�ZS)rTcs�tt|�j|d||t|���dddf|�d||d�dd�|j��D��f|_t	j
|jf|j�|_t	j
|�dd	�f|j�|_dS)
NrP)rJr
z	%s.%s(%s)r_cSs$g|]\}}|dkrd||f�qS)rJz%s=%sr
)r\�k�vr
r
rr^fsz-CallNamespaceTag.__init__.<locals>.<listcomp>rJr)r rTr�tuplerIrdr[�itemsr�rr@rr4r�r:r�)rr{rYrWr3)rr
rrWs 

zCallNamespaceTag.__init__cCs|jj�|jj�S)N)r4r1rFr�r�)rr
r
rr1qsz%CallNamespaceTag.declared_identifierscCs|jj�|jj�S)N)r4r2rGr1)rr
r
rr2tsz'CallNamespaceTag.undeclared_identifiers)rrrrr1r2r%r
r
)rrrTVsrTcs eZdZdZ�fdd�Z�ZS)�
InheritTagZinheritcs tt|�j||dddf|�dS)N)rwr
)r r�r)rr-rWr3)rr
rr}s
zInheritTag.__init__)rrrrLrr%r
r
)rrr�zsr�cs(eZdZdZ�fdd�Zdd�Z�ZS)�PageTagZpagecsnddddgdd�|D�}tt|�j|||ddf|�tj|�dd�f|j�|_tj|�dd�f|j�|_	dS)	Nr�rJZexpression_filterZenable_loopcSsg|]}|�d�r|�qS)r�)r�)r\r�r
r
rr^�sz$PageTag.__init__.<locals>.<listcomp>r
r)
r r�rrr�r:rr�rDr�)rr-rWr3rf)rr
rr�s
zPageTag.__init__cCs|jjS)N)r�r�)rr
r
rr1�szPageTag.declared_identifiers)rrrrLrr1r%r
r
)rrr��sr�)rrjZmakorrrrr�objectrrr&r<r>rArBrRrKZwith_metaclassrZrvrzr�r�r�r�rTr�r�r
r
r
r�<module>s09&" y?<$