
    Vh&	                    z    d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ dgZ G d	 dee
      Zy
)    )annotations)AnsibleErrorAnsibleParserError)string_types)AnsibleBaseYAMLObject)Delegatable)RoleDefinition)	to_nativeRoleIncludec                  6     e Zd ZdZd fd	Zedd       Z xZS )r   zt
    A derivative of RoleDefinition, used by playbook code when a role
    is included for execution in a play.
    c                6    t         t        |   |||||       y )Nplayrole_basedirvariable_managerloadercollection_list)superr   __init__)selfr   r   r   r   r   	__class__s         M/home/dcms/DCMS/lib/python3.12/site-packages/ansible/playbook/role/include.pyr   zRoleInclude.__init__&   s$    k4)t,aq17 	* 	Z    c                   t        | t              s7t        | t              s't        | t              st	        dt        |       z        t        | t              rd| v rt        d| z        t        |||||      }|j                  | ||      S )NzInvalid role definition: %s,z&Invalid old style role requirement: %sr   )r   r   )	
isinstancer   dictr   r   r
   r   r   	load_data)datar   current_role_pathparent_roler   r   r   ris           r   loadzRoleInclude.load*   s     4.*T42HJW[]rLs$%BYt_%TUUdL)cTkG$NOOd1BUent  GV  W||D3CF|SSr   )NNNNN)__name__
__module____qualname____doc__r   staticmethodr#   __classcell__)r   s   @r   r   r      s$    
Z 	T 	Tr   N)
__future__r   ansible.errorsr   r   ansible.module_utils.sixr   ansible.parsing.yaml.objectsr   ansible.playbook.delegatabler    ansible.playbook.role.definitionr	   +ansible.module_utils.common.text.convertersr
   __all__r    r   r   <module>r3      s5   $ # ; 1 > 4 ; A /T.+ Tr   