shell bypass 403

Cubjrnet7 Shell


name : templater.cpython-39.pyc
a

'�Dg6�	@s>UddlZddlZddlZddlZddlmZddlmZddlm	Z	ddlm
ZddlmZddl
mZeed<z$dd	lmZdd
lmZdZeZWneefy�dZeZYn0e�e�Ze�d
ej�Ze�d�ZdZ Gdd�de�Z!Gdd�de�Z"e	�#d�dd��Z$dd�Z%dd�Z&d"dd�Z'dd�Z(d#d d!�Z)dS)$�N)�Any)�TemplateSyntaxError)�performance)�
type_utils)�util)�
write_file�
JUndefined)�DebugUndefined)�TemplateTFz##\s*template:(.*)z)\$\{([A-Za-z0-9_.]+)\}|\$([A-Za-z0-9_.]+)zCI_MISSING_JINJA_VAR/csJeZdZedd��fdd�Zdd�Zedeeeed�d	d
��ZdZ	�Z
S)
�JinjaSyntaxParsingExceptionN)�error�returncs*t��|jpd|j|j|j�|j|_dS)Nzunknown syntax error)�super�__init__�message�lineno�name�filename�source)�selfr��	__class__��7/usr/lib/python3.9/site-packages/cloudinit/templater.pyr1s�z$JinjaSyntaxParsingException.__init__cCs(|j|j|j|j��|jd��d�S)�;Avoid jinja2.TemplateSyntaxError multi-line __str__ format.���syntax_error�line_number�line_content)�format_error_messagerrr�
splitlines�strip�rrrr�__str__=s
�z#JinjaSyntaxParsingException.__str__�)rrrr
cCs$|rd|��nd}tjj|||d�S)rz: r%r)r�message_template�formatrrrrr Es�z0JinjaSyntaxParsingException.format_error_messagezfUnable to parse Jinja template due to syntax error: {syntax_error} on line {line_number}{line_content})r%)�__name__�
__module__�__qualname__rrr$�staticmethod�strr r&�
__classcell__rrrrr0s����rc@s eZdZdZdd�Zdd�ZdS)�UndefinedJinjaVariablez>Class used to represent any undefined jinja template variable.cCsdt|jfS)Nz%s%s)�MISSING_JINJA_PREFIX�_undefined_namer#rrrr$^szUndefinedJinjaVariable.__str__cCs(t|��td�}tdj|j|d���dS)Nr%zhUndefined jinja variable: "{this}-{other}". Jinja tried subtraction. Perhaps you meant "{this}_{other}"?)�this�other)r,�replacer/�	TypeErrorr'r0)rr2rrr�__sub__as��zUndefinedJinjaVariable.__sub__N)r(r)r*�__doc__r$r5rrrrr.[sr.zRendering basic templatecs�fdd�}t�||�S)z�This does simple replacement of bash variable like templates.

    It identifies patterns like ${a} or $a and can also identify patterns like
    ${a.b} or $a.b which will look for a key 'b' in the dictionary rooted
    by key 'a'.
    cs�|�d�}|dur|�d�}|dur,td��t�|�d��}�}t|�dkr�|��}t|t�svt	d|t
�|�|f��||}q@|��}t|t�s�t	d||t
�|�f��t||�S)N�rz,Match encountered but no valid group present�.zRCan not traverse into non-dictionary '%s' of type %s while looking for subkey '%s'z<Can not extract key '%s' from non-dictionary '%s' of type %s)
�group�RuntimeError�collections�deque�split�len�popleft�
isinstance�dictr4�tuZobj_namer,)�matchr�pathZselected_params�key��paramsrr�replacerts0


��

��zbasic_render.<locals>.replacer)�
BASIC_MATCHER�sub)�contentrGrHrrFr�basic_renderks	rLcCs�dd�}|�d�dkr(|�dd�\}}n|}d}t�|�}|sHdt|fS|�d�����}|dvrntd	|��|d
kr�t	s�t
�d�dt|fS|d
kr�t	r�d
||fSdt|fSdS)Nc
Ss�|�d�rdnd}zRt�d��4t|tddgd�jfi|��|Wd�WS1sX0YWnfty�}z&|jd7_t|d�|�WYd}~n2d}~0t	y�}z||�WYd}~n
d}~00dS)	N�
r%zRendering jinja2 templateTz
jinja2.ext.do)Z	undefinedZtrim_blocks�
extensionsr7)r)
�endswithrZTimed�	JTemplater.Zrenderrrr�	Exception)rKrG�addZtemplate_syntax_errorZ
unknown_errorrrr�jinja_render�s.�
���&	��z%detect_template.<locals>.jinja_renderrM���r7r%�basic)�jinjarUz.Unknown template rendering type '%s' requestedrVzcJinja not available as the selected renderer for desired template, reverting to the basic renderer.)�findr=�TYPE_MATCHERrCrLr9�lowerr"�
ValueError�JINJA_AVAILABLE�LOGZwarning)�textrS�ident�restZ
type_match�
template_typerrr�detect_template�s.

���

racCs4|si}tt�|��\}}}t�d||�|||�S)Nz+Rendering content of '%s' using renderer %s)rar�load_text_filer\�debug)�fnrGr`�rendererrKrrr�render_from_file�s
rf�cCst||�}tj|||d�dS)N)�mode)rfrr)rdZoutfnrGrh�contentsrrr�render_to_file�s
rjcCs |si}t|�\}}}|||�S)z
Render string)ra)rKrGZ_template_typererrr�
render_string�srkcCspt�|�}||d�}t||���d}|rHtj|dd�}|sHtd|��|dkr^tj�|�nt	||dd�dS)	N)�variant�prefixrMT)�defaultz.Cannot render template file %s - invalid yaml.�-�w)Zomode)
rrbrk�rstripZ	load_yamlr:�sys�stdout�writer)rl�template�outputZis_yamlrmriZ
tpl_params�outrrr�render_template�s

�rx)rg)N)*r;Zlogging�rerr�typingrZjinja2rZ	cloudinitrrrBrZcloudinit.atomic_helperr�__annotations__r	Z_DebugUndefinedr
rPr[r�ImportError�AttributeError�objectZ	getLoggerr(r\�compile�IrXrIr/rr.ZtimedrLrarfrjrkrxrrrr�<module>s>



+
&2


© 2025 Cubjrnet7