o nnh]@sddlmZddlmZddlZddlZddlmZ ddl m Z ddl m Z ddlmZddlmZeZejr>d d lmZiZiZiZd d ZGd ddeZGdddeZdS)) annotations)ABCN) constants) AnsibleError) to_native) string_types)Display)PluginPathContextcCs.t|tr |ddS|jjddSNmodule) isinstancerlowerreplace __class____name__)objrC/usr/local/lib/python3.10/dist-packages/ansible/plugins/__init__.pyget_plugin_class,s rc@seZdZUded<dZded<dZded<d d Zed d Zd dZ d!ddZ d!ddZ d!ddZ ddZ d"ddZddZeddZeddZdd ZdS)# AnsiblePluginstr _load_nameFbool allow_extrasNz str | None_extras_prefixcCsi|_d|_dSN)_options_defsselfrrr__init__<s zAnsiblePlugin.__init__cCs|js |jdd|_|jS)N.)rrsplitr rrr extras_prefix@szAnsiblePlugin.extras_prefixcCsbt}|D]!}d|vr|d|n |dr!||d||qt|t|jS)Nr#zansible.builtin.zansible.legacy.)setadd startswith removeprefixr intersectionansible_aliases)r!possible_namespossible_fqcnsnamerrr matches_nameFs  zAnsiblePlugin.matches_namec CsLztjj||j|j|d\}}W||fSty%}ztt|d}~ww)N) plugin_type plugin_name variables)Cconfigget_config_value_and_originr1rrKeyErrorr)r!optionhostvars option_valueoriginerrrget_option_and_originPs z#AnsiblePlugin.get_option_and_origincCs4||jvr|j||d\}}||||j|SN)r9)rr= set_optionget)r!r8r9r:dummyrrr get_optionWs   zAnsiblePlugin.get_optioncCs*i}|jD] }|j||d||<q|Sr>)option_definitionskeysrB)r!r9optionsr8rrr get_options^szAnsiblePlugin.get_optionscCs&tjj||j|j||id|j|<dS)N)r1r2direct)r4r5get_config_valuer1rr)r!r8valuerrrr?ds&zAnsiblePlugin.set_optioncCsLtjj|j|j|||d|_|jr |r"d|vr$|d|jd<dSdSdSdS)a* Sets the _options attribute with the configuration/keyword information for this plugin :arg task_keys: Dict with playbook keywords that affect this option :arg var_options: Dict with either 'connection variables' :arg direct: Dict with 'direct assignment' )rDr3rG_extrasN)r4r5get_plugin_optionsr1rrr)r! task_keys var_optionsrGrrr set_optionsgs zAnsiblePlugin.set_optionscCs|js|||jvSr)rrN)r!r8rrr has_optionws zAnsiblePlugin.has_optioncC|jjddSr rrrrr rrrr1|zAnsiblePlugin.plugin_typecCs&|jdurtjj|j|jd|_|jS)N)r1r/)rr4r5get_configuration_definitionsr1rr rrrrCs z AnsiblePlugin.option_definitionscCsdSrrr rrr_check_requiredszAnsiblePlugin._check_requiredr)NNN)r __module__ __qualname____annotations__rrr"propertyr&r0r=rBrFr?rNrOr1rCrTrrrrr3s&          rcsTeZdZfddZeddZddZeZZZ Z Z Z eddZ ZS) AnsibleJinja2Plugincstt|||_dSr)superrYr" _function)r!functionrrrr"s zAnsibleJinja2Plugin.__init__cCrP)N ansiblejinja2r rQr rrrr1rRzAnsibleJinja2Plugin.plugin_typecOstr)NotImplementedError)r!argskwargsrrr _no_optionsszAnsibleJinja2Plugin._no_optionscCs|jSr)r[r rrr j2_functionszAnsibleJinja2Plugin.j2_function)rrUrVr"rXr1rbrOrBrFrCr?rNrc __classcell__rrr]rrYs  rY) __future__rabcrtypestypingtansiblerr4ansible.errorsr+ansible.module_utils.common.text.convertersransible.module_utils.sixransible.utils.displayrdisplay TYPE_CHECKINGloaderr MODULE_CACHE PATH_CACHEPLUGIN_PATH_CACHErrrYrrrrs$        X