o nnh@sddlmZddlZddlmZddlmZddlm Z m Z ddl m Z ddl mZddlmZdd lmZdd lmZeZd gZGd d d ZdS) ) annotationsN) constants)AnsibleParserError)to_text to_native)Play)PlaybookInclude)add_all_plugin_dirs)Display) unfrackpathPlaybookc@s<eZdZddZed ddZd ddZdd Zd d ZdS)r cCs(g|_ttdd|_||_d|_dS)Nsurrogate_or_strict)errors)_entriesrosgetcwd_basedir_loader _file_name)selfloaderrD/usr/local/lib/python3.10/dist-packages/ansible/playbook/__init__.py__init__'s zPlaybook.__init__NcCst|d}|j||d|S)N)r) file_namevariable_manager)r _load_playbook_data)rrrpbrrrload/s z Playbook.loadc stj|rtj||_ntjtj|jtj||_|j}|j |jt |j||_ z |j tj |}WntyU}z td|t|fd}~ww|durj|j |tdt||dt|ts|j |tdt|t|f|d|s|j |tdt||D]ctts|j |tddtfddtjDrtj|j||jd }|dur|j|jq}tjD] } | vr܈| }nqtjd |tjd qtj||j|d } |j | q|j |dS) Nz7Could not read playbook (%s) due to encoding issues: %sz!Empty playbook, nothing to do: %s)objz8A playbook must be a list of plays, got a %s instead: %sz-A playbook must contain at least one play: %szKplaybook entries must be either valid plays or 'import_playbook' statementsc3s|]}|vVqdSNr).0actionentryrr ]sz/Playbook._load_playbook_data..)basedirrrz6skipping playbook '%s' due to conditional test failure)color)rrvars)!rpathisabsdirnamernormpathjoinr get_basedir set_basedirr rload_from_filebasenameUnicodeDecodeErrorrrr isinstancelisttypedictanyC_ACTION_IMPORT_PLAYBOOKrrrextenddisplay COLOR_SKIPrappend) rrrr( cur_basedirdserwhichk entry_objrr#rr5sP "          zPlaybook._load_playbook_datacCs|jSr )rrrrr get_loaderoszPlaybook.get_loadercCs|jddSr )rrDrrr get_playsrszPlaybook.get_plays)NNr ) __name__ __module__ __qualname__r staticmethodrrrErFrrrrr %s  : ) __future__rransiblerr8ansible.errorsr+ansible.module_utils.common.text.convertersrransible.playbook.playr!ansible.playbook.playbook_includeransible.plugins.loaderr ansible.utils.displayr ansible.utils.pathr r;__all__r rrrrs