File: //usr/local/CyberCP/lib64/python3.10/site-packages/botocore/docs/__pycache__/shape.cpython-310.pyc
o
�hN � @ s d dl mZ G dd� d�ZdS )� )�is_json_value_headerc @ sF e Zd ZdZ ddd�Z ddd�Zdd � Zd
d� Zdd
� ZdS )�ShapeDocumenter� Nc C s2 || _ || _|| _|| _|d u rdi i| _d S d S )N�special_shape_types)�
_service_name�_operation_name�_event_emitter�_context)�self�service_name�operation_name�
event_emitter�context� r �F/usr/local/CyberCP/lib/python3.10/site-packages/botocore/docs/shape.py�__init__ s �zShapeDocumenter.__init__Fc
C s |j }t|di ��d�rd}|j|v r| j|||d� dS |�|j� t|�dk} t|d�r3|jr3d}t| d|� �| j �||||||| |d � | r`| j
jd
| j� d| j
� d| j� d|� �|d� t|�d
k}
|
r}| j
jd
| j� d| j
� d| j� d�|d� |�� dS )a� Traverses and documents a shape
Will take a self class and call its appropriate methods as a shape
is traversed.
:param section: The section to document.
:param history: A list of the names of the shapes that have been
traversed.
:type include: Dictionary where keys are parameter names and
values are the shapes of the parameter names.
:param include: The parameter shapes to include in the documentation.
:type exclude: List of the names of the parameters to exclude.
:param exclude: The names of the parameters to exclude from
documentation.
:param name: The name of the shape.
:param is_required: If the shape is a required member.
�
serialization�eventstream�event_stream)�name� �is_document_type�document�document_shape_type_)�historyr �include�exclude�is_top_level_param�is_requiredzdocs.�.)�section� z.complete-sectionN)� type_name�getattr�getr �document_recursive_shape�append�len�hasattrr �document_shape_defaultr �emit�
EVENT_NAMEr r �pop)r
r �shaper r r r r �
param_typer �at_overlying_method_sectionr r r �traverse_and_document_shape# sF
�� ��z+ShapeDocumenter.traverse_and_document_shapec C s dddddd�}| � ||�S )Nz({...}|[...]|123|123.4|'string'|True|Nonez
b'bytes'|filezStreamingBody()z
EventStream()��
document_type�jsonvalue_header�streaming_input_shape�streaming_output_shape�eventstream_output_shape��_get_value_for_special_type)r
r- �special_defaultsr r r �_get_special_py_defaulth � �z'ShapeDocumenter._get_special_py_defaultc C s dddddd�}| � ||�S )Nz:ref:`document<document>`zJSON serializablez"bytes or seekable file-like objectz:class:`.StreamingBody`z:class:`.EventStream`r1 r7 )r
r- �special_type_namesr r r �_get_special_py_type_namer r; z)ShapeDocumenter._get_special_py_type_namec C s` t |�r|d S t|d�r|jr|d S | jd �� D ]\}}||v r-||kr-|| S qd S )Nr3 r r2 r )r r( r r �items)r
r- �special_type_map�special_type�marked_shaper r r r8 | s �
��z+ShapeDocumenter._get_value_for_special_type)N)NNNF) �__name__�
__module__�__qualname__r+ r r0 r: r= r8 r r r r r s
�
�E
r N)�botocore.utilsr r r r r r �<module> s