o nnh@slddlmZddlmZddlmZddlmZddl m Z m Z ddgZ GdddeZ Gd ddeZd S) ) annotations)Mapping)cached_property) constants)TemplarAnsibleUndefinedHostVars HostVarsVarsc@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd S)!rzO A special view of vars_cache that adds values from the inventory when needed. cCs||_||_||_||_dSN) _inventory_loader_variable_manager _hostvars)self inventoryvariable_managerloaderr@/usr/local/lib/python3.10/dist-packages/ansible/vars/hostvars.py__init__"s zHostVars.__init__cCs||_||_dSr )r r)rrrrrset_variable_manager( zHostVars.set_variable_managercCs ||_dSr )r )rrrrr set_inventory, zHostVars.set_inventorycCs |j|Sr )r get_hostr host_namerrr _find_host/s zHostVars._find_hostcCs0||}|durtd|dS|jj|ddS)z Similar to __getitem__, however the returned data is not run through the templating engine to expand variables in the hostvars. Nzhostvars['%s'])nameF)hostinclude_hostvars)rrr get_vars)rrrrrrraw_get3s zHostVars.raw_getcCs>|j||jjdur|j|j_|jjdur||j_dSdSr )__dict__updater r rrstaterrr __setstate__>s     zHostVars.__setstate__cCs&||}t|tr |St||jdS)N)r)r" isinstancerr r )rrdatarrr __getitem__Ks  zHostVars.__getitem__cCs|j|||dSr )r set_host_variable)rrvarnamevaluerrrr+QszHostVars.set_host_variablecC|j||dSr )r set_nonpersistent_factsrrfactsrrrr/Tz HostVars.set_nonpersistent_factscCr.r )r set_host_factsr0rrrr3Wr2zHostVars.set_host_factscCs||duSr )rrrrr __contains__ZszHostVars.__contains__ccs,|jjr|jjd|jjiBniEdHdS)N localhost)r r5hostsrrrr__iter__^s*zHostVars.__iter__cCst|jj|jjr dSdS)Nr)lenr r6r5r7rrr__len__bszHostVars.__len__cCs(i}|jjD] }||||<qt|Sr )r r6getrepr)routrrrr__repr__fs zHostVars.__repr__cCs|Sr r)rmemorrr __deepcopy__lszHostVars.__deepcopy__N)__name__ __module__ __qualname____doc__rrrrr"r'r*r+r/r3r4r8r;r?rArrrrrs"   c@sPeZdZddZeddZddZddZd d Zd d Z d dZ ddZ dS)r cCs||_||_dSr )_varsr )r variablesrrrrrurzHostVarsVars.__init__cCst|j|jdS)N)rGr)rrFr r7rrr_templaryszHostVarsVars._templarcCs|jj|j|dtjdSNF)fail_on_undefined static_vars)rHtemplaterFCINTERNAL_STATIC_VARSrvarrrrr*zHostVarsVars.__getitem__cCs ||jvSr )rFrOrrrr4rzHostVarsVars.__contains__ccs|jEdHdSr )rFkeysr7rrrr8szHostVarsVars.__iter__cCst|jSr )r:rFrRr7rrrr;szHostVarsVars.__len__cCst|jj|jdtjdSrI)r=rHrLrFrMrNr7rrrr?rQzHostVarsVars.__repr__cCs|j}|dd|S)z] override serialization here to avoid pickle issues with templar and Jinja nativerHN)r#copypopr%rrr __getstate__s  zHostVarsVars.__getstate__N) rBrCrDrrrHr*r4r8r;r?rUrrrrr ss  N) __future__rcollections.abcr functoolsransiblerrMansible.templaterr__all__rr rrrrs    T