o nnh@sddlmZddlZddlmZddlmZddlm Z ddl m Z ddl m Z ddlmZdd lmZeZd d Zd d ZeddddZddZddZdS)) annotationsN) lru_cache) constants) AnsibleError)InventoryObjectType) vars_loader)Display) combine_varscCs0ttjddtjD] }|sq t|q dS)NT) class_only)listrallCVARIABLE_PLUGINS_ENABLEDget) plugin_namer?/usr/local/lib/python3.10/dist-packages/ansible/vars/plugins.py_prime_vars_loaders   rc Csi}z ||||}W|Stynt|dst|dr-tjd|jd|jdddz |D]}|jtj urA|| |j O}q0|| |j O}q0WY|Stymt|drct d |j|jft d |j|jfww) N get_host_varsget_group_varszThe vars plugin z from z is relying on the deprecated entrypoints 'get_host_vars' and 'get_group_vars'. This plugin should be updated to inherit from BaseVarsPlugin and define a 'get_vars' method as the main entrypoint instead.z2.20)versionrunz)Cannot use v1 type vars plugin %s from %szInvalid vars plugin %s from %s)get_varsAttributeErrorhasattrdisplay deprecated ansible_name_original_path base_typerHOSTrnamerr _load_name)loaderpluginpathentitiesdataentityrrrget_plugin_varss.   r) )maxsizec Csld}z|d}Wn ttfyYnw|r|d|fvStj}|dkr*|dkr*dS|dkr4|dkr4dSdS) Nstager demand inventoryFstarttaskT) get_optionrKeyErrorr RUN_VARS_PLUGINS)r$r,allowed_stagesconfig_stage_overriderrr_plugin_should_run:s r6c Csi}tjdur ttjD]B}t|}durq d|jvo$|jd }|r9t|ds1t|dr9t d|jt ||s?q t ||||}ikrOt ||}q |S)N.zansible.builtin.REQUIRES_ENABLEDREQUIRES_WHITELISTzVars plugins in collections must be enabled to be loaded, REQUIRES_ENABLED is not supported. This should be removed from the plugin %s.) r_pathsr_plugin_instance_cacherr startswithrrwarningr6r)r ) r#r%r&r,r'rr$ collectionnew_varsrrrget_vars_from_pathQs&    r@cCsji}|D].}|dur qd|vrtj|sqtj|s"tj|}t||||}ikr2t||}q|S)N,)osr%existsisdirdirnamer@r )r#sourcesr&r,r'r%r?rrrget_vars_from_inventory_sourcesls   rG) __future__rrB functoolsransiblerr ansible.errorsransible.inventory.groupransible.plugins.loaderransible.utils.displayransible.utils.varsr rrr)r6r@rGrrrrs