+
    iN                     &    ^ RI Ht  ! R R4      tR# )    )is_json_value_headerc                   J   a  ] tR t^t o RtR	R ltR
R ltR tR tR t	Rt
V tR# )ShapeDocumenter Nc                T    Wn         W n        W0n        W@n        Vf   R/ /V n        R # R # )Nspecial_shape_types)_service_name_operation_name_event_emitter_context)selfservice_nameoperation_nameevent_emittercontexts   &&&&&5/usr/lib/python3/dist-packages/botocore/docs/shape.py__init__ShapeDocumenter.__init__   s1     *-+?2B7DM     c                   VP                   p\        VR/ 4      P                  R4      '       d   RpVP                  V9   d   V P	                  WVR7       R# VP                  VP                  4       \        V4      ^8H  p	\        VR4      '       d   VP                  '       d   Rp\        V RV 2V P                  4      ! VVVVVVV	VR7       V	'       dH   V P                  P                  R	V P                   R
V P                   R
V P                   R
V 2VR7       \        V4      ^8H  p
V
'       dF   V P                  P                  R	V P                   R
V P                   R
V P                   R2VR7       VP                  4        R# )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_requiredzdocs..)sectionz.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_sections   &&&&&&&&   r   traverse_and_document_shape+ShapeDocumenter.traverse_and_document_shape#   s   @ __
5/2.22=AA'J:: ))'t)DNN5::&!$W!2u011e6L6L6L'
&zl3++
 #5' "##((DOO,Ad.@.@-A4CWCWBXXYZ^Y_`# )  +.g,!*;'*##((DOO,Ad.@.@-A4CWCWBXXij# )  KKMr   c           
     <    R RRRRRRRRR/pV P                  W4      # )	document_typez({...}|[...]|123|123.4|'string'|True|Nonejsonvalue_headerstreaming_input_shapezb'bytes'|filestreaming_output_shapezStreamingBody()eventstream_output_shapezEventStream()_get_value_for_special_type)r   r0   special_defaultss   && r   _get_special_py_default'ShapeDocumenter._get_special_py_defaulth   s:    I L#%6$&7&
 //HHr   c           
     <    R RRRRRRRRR	/pV P                  W4      # )
r6   z:ref:`document<document>`r7   zJSON serializabler8   z"bytes or seekable file-like objectr9   z:class:`.StreamingBody`r:   z:class:`.EventStream`r;   )r   r0   special_type_namess   && r   _get_special_py_type_name)ShapeDocumenter._get_special_py_type_namer   s;    8 3#%I$&?&(?
 //JJr   c                   \        V4      '       d
   VR ,          # \        VR4      '       d   VP                  '       d
   VR,          # V P                  R,          P	                  4        F  w  r4W29   g   K  W8X  g   K  W#,          u # 	  R# )r7   r   r6   r   N)r   r+   r   r   items)r   r0   special_type_mapspecial_typemarked_shapes   &&&  r   r<   +ShapeDocumenter._get_value_for_special_type|   s~    &&#$6775,--%2H2H2H#O44*.--!+

%'+&L /(+99+ r   )r   r   r
   r	   )N)NNNF)__name__
__module____qualname____firstlineno__r.   r   r3   r>   rB   r<   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s,     J8CJIK r   r   N)botocore.utilsr   r    r   r   <module>rS      s   & 0q qr   