%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python3.9/site-packages/ansible/parsing/__pycache__/
Upload File :
Create Path :
Current File : //lib/python3.9/site-packages/ansible/parsing/__pycache__/plugin_docs.cpython-39.pyc

a

�)g�!�@s�ddlmZmZmZeZddlZddlZddlm	Z
ddlmZm
Z
ddlmZmZddlmZddlmZe�Zdd	d
dd�Zd
d�Zdd�Zddd�Zddd�Zddd�Zddd�Zdd�ZdS) �)�absolute_import�division�print_functionN)�	constants)�AnsibleError�AnsibleParserError)�to_text�	to_native)�
AnsibleLoader)�Display�doc�
plainexamplesZ
returndocs�metadata)�
DOCUMENTATION�EXAMPLESZRETURNZANSIBLE_METADATAcCs&t��D]\}}||kr|SqdS)z" reverse lookup of the dict above N)�string_to_vars�items)�value�k�v�r�?/usr/lib/python3.9/site-packages/ansible/parsing/plugin_docs.py�_var2stringsrcCsdd�t��D�S)z? initialize a return dict for docs with the expected structure cSsi|]
}|d�qS)Nr)�.0rrrr�
<dictcomp>$�z"_init_doc_dict.<locals>.<dictcomp>)r�valuesrrrr�_init_doc_dict"srTc	
Cs�t�}i}zBt|d��$}t|��|d���}Wd�n1s@0YWnTty�}z<d|t|�f}|s~t||d��n|r�t�	|�WYd}~n
d}~00|r�t
D]}|�|d�|t
|<q�|S)z5 Read docs from 'sidecar' yaml file doc for a plugin �rb��	file_nameNz"Unable to parse yaml file '%s': %s�Zorig_exc)r�openr
�read�get_single_data�	Exceptionr	r�display�errorr�get)	�filename�verbose�
ignore_errors�dataZ	file_dataZyamlfile�e�msg�keyrrr�read_docstring_from_yaml_file's6 r0cCs�t�}t�}d}t�|���@}t�|j�}|D�]}|jtjkrj|jdkrj|j	t
vrj|j	|vrjt
|j	}q.|dur.|jtjkr.|�|j	�|j	}	|	�
d�r�|	�d�}	|	�
d�r�|	�d�}	|dkr�t|	�||<nzzt|	|d���||<Wn`t�yF}
zFd	t|�|t|
�f}|�s"t||
d
��n|�r2t�|�WYd}
~
n
d}
~
00d}q.Wd�n1�sd0Y|�s�t|||�}|S)z�
    Use tokenization to search for assignment of the documentation variables in the given file.
    Parse from YAML and return the resulting python structure or None together with examples as plain text.
    N�)�r�br)�'�"z'"r
rz1Unable to parse docs '%s' in python file '%s': %sr!)�setr�tokenizer"�generate_tokens�readline�type�NAME�start�stringr�STRING�add�
startswith�lstrip�striprr
r$r%rr	rr&r'�read_docstring_from_python_file)r)r*r+�seenr,Znext_string�f�tokens�tokenrr-r.rrr�!read_docstring_from_python_module>s>





 &rHc
Cslt�}�zt|d��}t�|���}Wd�n1s80Y|jD]�}t|tj�rH|jD]�}z
|j	}Wn(t
y�t�d||f�Yq^Yn0|t
vr^t
|}	t|jtj�r�t�|j�||	<n2|dkr�t|jj�||	<nt|jj|d���||	<t�d|	�q^qHWnZt�yf}
z@d|t|
�f}|�sBt||
d��n|�rRt�|�WYd}
~
n
d}
~
00|S)	z�
    Use ast to search for assignment of the DOCUMENTATION and EXAMPLES variables in the given file.
    Parse DOCUMENTATION from YAML and return the YAML doc or None together with EXAMPLES, as plain text.
    rNzBBuilding documentation, failed to assign id for %s on %s, skippingrrzDocumentation assigned: %sz5Unable to parse documentation in python file '%s': %sr!)rr"�ast�parser#�body�
isinstanceZAssign�targets�id�AttributeErrorr&Zwarningrr�DictZliteral_evalr�sr
r$�debugr%r	rr')r)r*r+r,Z
b_module_data�M�child�tZtheidZvarkeyr-r.rrrrC|s6,



 rCcCsp|�tj�rt|||d�}n0|�tj�r8t|||d�}n|sLtdt|���|sd|sdtdt|���d|d<|S)zC returns a documentation dictionary from Ansible plugin docstrings )r*r+z Unknown documentation format: %sz%Unable to parse documentation for: %sNZseealso)�endswith�CZYAML_DOC_EXTENSIONSr0ZPYTHON_DOC_EXTENSIONSrHrr	)r)r*r+Z	docstringrrr�read_docstring�srXc	Cs�d}d}d}g}t|d���}|D]�}|r�|rB|�|�rB|�|�q�|rV|�|�sVq�q�|���d�r�d}dt|�t|���d}|�|�q |�d�r d	|vs�d
|vr d}q Wd�n1s�0Yd�|����d�}t||d
��	�}|S)z�
    Quickly find short_description using string methods instead of node parsing.
    This does not return a full set of documentation strings and is intended for
    operations like ansible-doc -l.
    F�r2zshort_description:T� r1r�=�:N�.r)
r"r@�appendrA�len�joinrB�rstripr
r$)	r)Zin_documentationZ	capturingZindent_detectionZdoc_stubZ
t_module_data�lineZshort_descriptionr,rrr�read_docstub�s($rc)TT)TT)TT)TT)Z
__future__rrrr:Z
__metaclass__rIr7ZansiblerrWZansible.errorsrrZansible.module_utils._textrr	Zansible.parsing.yaml.loaderr
Zansible.utils.displayrr&rrrr0rHrCrXrcrrrr�<module>s*�

>
/


Zerion Mini Shell 1.0