https://t.me/RX1948
Server : Apache
System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User : dh_edsupp ( 6597262)
PHP Version : 8.2.26
Disable Function : NONE
Directory :  /lib/python3/dist-packages/genshi/template/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/genshi/template/__pycache__/markup.cpython-310.pyc
o

!�b�@�@s�dZddlmZddlmZmZmZmZddlmZm	Z	m
Z
mZmZm
Z
mZddlmZddlmZmZmZmZmZmZmZddlmZddlmZdd	lTdd
lmZdgZ dZ!Gd
d�de�Z"dS)zMarkup templating engine.�)�chain)�Attrs�Markup�	Namespace�Stream)�START�END�START_NS�END_NS�TEXT�PI�COMMENT)�	XMLParser)�BadDirectiveError�Template�TemplateSyntaxError�_apply_directives�EXEC�INCLUDE�SUB)�Suite)�interpolate)�*)�NewTextTemplate�MarkupTemplatezrestructuredtext enc
@s�eZdZdZdZdZdefdefdefde	fde
fd	efd
efde
fdefd
efdefdefgZdZeZ		d'dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd(d d!�Zd"d#�Zd)d%d&�ZdS)*raAImplementation of the template language for XML-based templates.
    
    >>> tmpl = MarkupTemplate('''<ul xmlns:py="http://genshi.edgewall.org/">
    ...   <li py:for="item in items">${item}</li>
    ... </ul>''')
    >>> print(tmpl.generate(items=[1, 2, 3]))
    <ul>
      <li>1</li><li>2</li><li>3</li>
    </ul>
    zhttp://genshi.edgewall.org/zhttp://www.w3.org/2001/XInclude�def�match�when�	otherwise�for�if�choose�with�replace�content�attrs�strip�xmlN�strictTc
Cs,tj||||||||d�|�|j|�dS)N)�filepath�filename�loader�encoding�lookup�
allow_exec)r�__init__�add_directives�DIRECTIVE_NAMESPACE)�self�sourcer)r*r+r,r-r.�r4�8/usr/lib/python3/dist-packages/genshi/template/markup.pyr/?s
�zMarkupTemplate.__init__cCs2t�|�|j�|j�|j|j|jg7_dS�N)r�
_init_filters�filters�remove�_include�_match)r2r4r4r5r7Fs
zMarkupTemplate._init_filtersc	Cs`t|t�s
t||j|d�}g}|D]�\}}}|tur8t||j|d|d|jd�D]
\}}}|�|||f�q)q|t	ur�|ddkr�|j
sStd|jg|dd��R��zt|d|j|d|jd�}Wn$t
y�}zt||j|d|jpvdd|d|jp�d��d}~ww|�t||f�q|tur�|���d�s�|�|||f�q|�|||f�q|S)	N)r*r,���r-r�pythonzPython code blocks not allowed�!)�
isinstancerrr*rrr)r-�appendrr.rr�SyntaxError�lineno�offsetrr
�lstrip�
startswith)	r2r3r,�stream�kind�data�pos�suite�errr4r4r5�_parseLsJ
�
���
�
�����zMarkupTemplate._parsec	Cs�d}i}g}i}|D�]h\}}	}
|tur�|	\}}g}
d}|j|krO|�|j�}|dur5t|j|j|
d��tdd�|D��}|
�|�|�|||�	�|
f�d}g}|D]F\}}|j|kr�|�|j�}|durpt|j|j|
d��t
|�tur�t|�dkr�|dd}|
�|�|�|||�	�|
f�qS|�||f�qSt
|�}|
r�|
jdd�d	�|
t|�|f|||f<|�|||f|
f�|d7}q
|tur�|d8}|�||	|
f�||	f|vr�|�||	f�\}
}}||d�}|r�|dd
�}t|
|f|
fg||d�<q
|tu�r4|	\}
}|�|||�}t|�dk�r)|ddtu�r)|dd\}}|
|7}
|�||
|f|
f�q
|tu�rO|	\}}|||<||k�rN|�||	|
f�q
|tu�rk|�|	d�}|�rj||k�rj|�||	|
f�q
|�||	|
f�q
|S)NrFr<cSs g|]\}}|js|j|f�qSr4)�	namespace�	localname)�.0�name�valuer4r4r5�
<listcomp>�s�z6MarkupTemplate._extract_directives.<locals>.<listcomp>TcSs|dS)Nrr4)�xr4r4r5�<lambda>�sz4MarkupTemplate._extract_directives.<locals>.<lambda>)�key���)rrO�
get_directiverPrr)�dictrB�get_directive_index�copy�type�list�lenr�sortr�popr�_extract_directivesr	r
)r2rHrO�factory�depth�dirmap�
new_stream�	ns_prefixrIrJrK�tagr%�
directivesr&�cls�args�	new_attrsrRrSrE�	substream�added_directives�prefix�urir4r4r5rbos�

��
�

���
��
� 

�
�z"MarkupTemplate._extract_directivesc	Cs0gg}i}g}g}t|j�}|D]�\}}}	|d}|turl|\}
}|
|vra|
jdkrO|�d�}|s?td|jg|	dd��R��|�||�d�f�|�g�q|
jdkr`|�g�|�|d�q|�||
|f|	f�q|tur�|r�||dkr�|�	�}
|
|dus�J�q||dkr�d}t
|�t
|�kr�|�	�}|�	�|d}|�	�\}}z
ttd��|�p�|j
}Wnty�td	|jg|	dd��R��w|�t|||f|	f�q|�|||	f�q|tur�|d|kr�|d||d
<q|tu�r||v�r|�	|�q|�|||	f�qt
|�dk�sJ�|d
S)NrX�include�hrefz(Include misses required attribute "href"r<�parse�fallback)r'�textz.Invalid value for "parse" attribute of includer)r�XINCLUDE_NAMESPACErrP�getrr)rBrrar_rr�	__class__�KeyErrorrr	r
)r2rH�streams�prefixes�	fallbacks�includes�xinclude_nsrIrJrKrhr%�include_href�fallback_streamrtrrrsrjr4r4r5�_extract_includes�sx


�
�

�����
��z MarkupTemplate._extract_includesc

cs��|D]P\}}}|turM|\}}g}|D]2\}}	|	r?tt|	|j|d|d|jd��}	t|	�dkr?|	ddtur?|	dd}	|�||	f�q|t|�f}|||fVqdS)Nr<r=r>r)	rr^rr)r-r_rrBr)
r2rHrIrJrKrhr%rlrRrSr4r4r5�_interpolate_attrs
s �
��z!MarkupTemplate._interpolate_attrscCstj||�|�|��|d�S)N)�inlined)r�_preparer�r�)r2rHr�r4r4r5r�s�zMarkupTemplate._preparecCs$|jrJd��|�|j||�|_dS)aRegister a custom `DirectiveFactory` for a given namespace.
        
        :param namespace: the namespace URI
        :type namespace: `basestring`
        :param factory: the directive factory to register
        :type factory: `DirectiveFactory`
        :since: version 0.6
        z9Too late for adding directives, template already preparedN)�	_preparedrb�_stream)r2rOrcr4r4r5r0$s	

�zMarkupTemplate.add_directivesrc	+s��j}dd�}|D]�}|r|dtur|dtur|Vq
t|�D]�\}	\}
}}}
�}|	|ks8|dur9|	|kr9q"|
|���dur�d|
vrL||	=|	d8}	dd	�||	dd�D�D]
}
|
|��dd
�qY|	d}d|
vrtd|
vrt|d8}g}|||j�}|dkr�|j|�f||d�|��}|�t|g||����d
|
vr�t���t	���dg�����fdd�}t
|d�}t||�|�}|j|j|�fi|���fd|	di|��D]}|Vq҈ds�D]}q�dd	�||	d�D�D]}
|
|d��dd
�q�nq"|Vq
dS)z_Internal stream filter that applies any defined match templates
        to the stream.
        cssX�d}	t|�}|dtur|d7}n
|dtur|d8}|dkr%|Vn||�dSq)Nr<r)�nextrr)rHrBrd�eventr4r4r5�_strip8s�
�z%MarkupTemplate._match.<locals>._striprNT�
match_oncer<cS�g|]}|d�qS�rr4�rQ�mtr4r4r5rT[�z)MarkupTemplate._match.<locals>.<listcomp>)�
updateonly�
not_recursive)�start�end�not_bufferedFcsd�d<��|���S)NTr��select)�path�r$�ctxt�
namespaces�selectedr4r5r�psz%MarkupTemplate._match.<locals>.selectr�r�cSr�r�r4r�r4r4r5rT�r�)
�_match_templatesrr�	enumeraterBr;r:rr^rrZr�_flatten)r2rHr�r�r��vars�match_templatesr�r��idx�testr��template�hintsri�pre_end�tail�innerr�r4r�r5r;2sv����
����
��:��zMarkupTemplate._match)NNNNr(Tr6)rN)�__name__�
__module__�__qualname__�__doc__r1rv�DefDirective�MatchDirective�
WhenDirective�OtherwiseDirective�ForDirective�IfDirective�ChooseDirective�
WithDirective�ReplaceDirective�ContentDirective�AttrsDirective�StripDirectiveri�
serializerr�_number_convr/r7rNrbr�r�r�r0r;r4r4r4r5r!s<�
�#\B
N)#r��	itertoolsr�genshi.corerrrrrrr	r
rrr
�genshi.inputr�genshi.template.baserrrrrrr�genshi.template.evalr�genshi.template.interpolationr�genshi.template.directives�genshi.template.textr�__all__�
__docformat__rr4r4r4r5�<module>s
$$

https://t.me/RX1948 - 2025