HEX
Server: LiteSpeed
System: Linux kapuas.iixcp.rumahweb.net 5.14.0-427.42.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 1 14:58:02 EDT 2024 x86_64
User: mirz4654 (1666)
PHP: 8.1.33
Disabled: system,exec,escapeshellarg,escapeshellcmd,passthru,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,popen,pclose,dl,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setsid,posix_setuid,posix_setpgid,ini_alter,show_source,define_syslog_variables,symlink,syslog,openlog,openlog,closelog,ocinumcols,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dll,ftp,myshellexec,socket_bind,mail,posix_getwpuid
Upload Files
File: //lib/python3.9/site-packages/ansible/template/__pycache__/vars.cpython-39.pyc
a

�)g|�@sfddlmZmZmZeZddlmZddlm	Z	ddl
mZmZddl
mZdgZGdd�de�ZdS)	�)�absolute_import�division�print_function)�Mapping)�missing)�AnsibleError�AnsibleUndefinedVariable)�	to_native�
AnsibleJ2Varsc@sBeZdZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)r
a�
    Helper class to template all variable content before jinja2 sees it. This is
    done by hijacking the variable storage that jinja2 uses, and overriding __contains__
    and __getitem__ to look like a dict. Added bonus is avoiding duplicating the large
    hashes that inject tends to be.

    To facilitate using builtin jinja2 things like range, globals are also handled here.
    NcCsr||_||_t�|_t|t�rn|��D]F\}}|tur&|dd�dkrZ||j|dd�<q&|dvr&||j|<q&dS)z�
        Initializes this object with a valid Templar() object, as
        well as several dictionaries of variables representing
        different scopes (in jinja2 terminology).
        N�Zl_)�context�environment�template)�_templar�_globals�dict�_locals�
isinstance�itemsr)�selfZtemplar�globals�locals�key�val�r�9/usr/lib/python3.9/site-packages/ansible/template/vars.py�__init__+s
zAnsibleJ2Vars.__init__cCs0||jvrdS||jjvrdS||jvr,dSdS)NTF)rr�available_variablesr)r�krrr�__contains__=s

zAnsibleJ2Vars.__contains__cCs$t�}|�|jj|j|j�t|�S�N)�set�updaterrrr�iter�r�keysrrr�__iter__FszAnsibleJ2Vars.__iter__cCs$t�}|�|jj|j|j�t|�Sr )r!r"rrrr�lenr$rrr�__len__KszAnsibleJ2Vars.__len__c
Cs:||jvr|j|S||jjvr.|jj|}n ||jvrB|j|Std|��ddlm}t|t�rl|dks�t||�s�t	|d�r�|Sd}z|j�
|�}Wn�ty�}z,|jjj
|�d|j��|td�WYd}~Sd}~0t�y0}z<t|dd��pt|�}td	t|�t|�|f��WYd}~n
d}~00|SdS)
Nzundefined variable: %sr)�HostVars�varsZ
__UNSAFE__z: )�hint�name�exc�messagez[An unhandled exception occurred while templating '%s'. Error was a %s, original message: %s)rrrr�KeyErrorZansible.vars.hostvarsr)rr�hasattrrrr
Z	undefinedr.�	Exception�getattrr	r�type)rZvarname�variabler)�value�e�msgrrr�__getitem__Ps2



&��zAnsibleJ2Vars.__getitem__cCs(|dur|S|j|B}t|j|j|d�S)z�
        If locals are provided, create a copy of self containing those
        locals in addition to what is already in this variable proxy.
        N)r)rr
rr)rrZ
new_localsrrr�
add_localsts
zAnsibleJ2Vars.add_locals)N)
�__name__�
__module__�__qualname__�__doc__rrr&r(r8r9rrrrr
!s	
	$N)Z
__future__rrrr3Z
__metaclass__�collections.abcrZjinja2.utilsrZansible.errorsrrZansible.module_utils._textr	�__all__r
rrrr�<module>s