o nnh& @sbddlmZddlmZddlmZddlmZmZddl m Z dgZ ddZ Gd ddeZ d S) ) annotations)ChainMapmissing) AnsibleErrorAnsibleUndefinedVariable) to_native AnsibleJ2VarscCs|duriSdd|DS)NcSs&i|]\}}|tur|dvr||qS)>contexttemplate environmentr).0kvr@/usr/local/lib/python3.10/dist-packages/ansible/template/vars.py s z#_process_locals..)items)_lrrr_process_localss rcs6eZdZdZd fdd ZfddZddZZS) r z^Helper variable storage class that allows for nested variables templating: `foo: "{{ bar }}"`.Ncs"||_tt||jj|dSN)_templarsuper__init__ravailable_variables)selftemplarglobalslocals __class__rrrs zAnsibleJ2Vars.__init__c st|}ddlm}|dkrt|tst||st|dr!|Sz|j|WSt yJ}z|jj j |d|j |t dWYd}~Sd}~wt yp}zt|ddpZt|}tdt|d t|d |d}~ww) Nr)HostVarsvars __UNSAFE__z: )hintnameexcmessagez2An unhandled exception occurred while templating 'z'. Error was a z, original message: )r __getitem__ansible.vars.hostvarsr! isinstancedicthasattrrr rr undefinedr' Exceptiongetattrrrtype)rvarnamevariabler!emsgrrrr(%s0  & zAnsibleJ2Vars.__getitem__cCs8|dur|S|jd}|jd}||B}t|j||dS)zIf locals are provided, create a copy of self containing those locals in addition to what is already in this variable proxy. Nr)r)mapsr r)rrcurrent_localscurrent_globals new_localsrrr add_locals?s   zAnsibleJ2Vars.add_localsr)__name__ __module__ __qualname____doc__rr(r: __classcell__rrrrr s  N) __future__r collectionsr jinja2.utilsransible.errorsrr+ansible.module_utils.common.text.convertersr__all__rr rrrrs