Ë
    P÷ÔeN  ã                   ó$   — d dl mZ  G d„ d«      Zy)é    )Úis_json_value_headerc                   ó<   — e Zd ZdZ	 dd„Z	 	 	 	 d	d„Zd„ Zd„ Zd„ Zy)
ÚShapeDocumenterÚ Nc                 óT   — || _         || _        || _        || _        |€
di i| _        y y )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__zShapeDocumenter.__init__   s9   € ð *ˆÔØ-ˆÔØ+ˆÔØˆŒØˆ?Ø2°BÐ7ˆDMð ó    c           
      óÐ  — |j                   }t        |di «      j                  d«      rd}|j                  |v r| j	                  |||¬«       y|j                  |j                  «       t        |«      dk(  }	t        |d«      r|j                  rd} t        | d|› | j                  «      |||||||	|¬	«       |	rG| j                  j                  d
| j                  › d| j                  › d| j                  › d|› |¬«       t        |«      dk(  }
|
rE| j                  j                  d
| j                  › d| j                  › d| j                  › d|¬«       |j                  «        y)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.ú.)Ú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_sections              r   Útraverse_and_document_shapez+ShapeDocumenter.traverse_and_document_shape#   s}  € ð@ —_‘_ˆ
Ü5˜/¨2Ó.×2Ñ2°=ÔAØ'ˆJØ:‰:˜Ñ Ø×)Ñ)¨'°5¸tÐ)ÕDàN‰N˜5Ÿ:™:Ô&Ü!$ W£°Ñ!2ÐÜuÐ0Ô1°e×6LÒ6LØ'
ðŒGØØ& z lÐ3Ø×+Ñ+óð
 ØØØØØØ#5Ø'õñ "Ø×#Ñ#×(Ñ(Ø˜DŸO™OÐ,¨A¨d×.@Ñ.@Ð-AÀÀ4×CWÑCWÐBXÐXYÐZ^ÐY_Ð`Ø#ð )ô ô +.¨g«,¸!Ñ*;Ð'Ù*Ø×#Ñ#×(Ñ(Ø˜DŸO™OÐ,¨A¨d×.@Ñ.@Ð-AÀÀ4×CWÑCWÐBXÐXiÐjØ#ð )ô ð K‰KMr   c                 ó6   — ddddddœ}| j                  ||«      S )Nz({...}|[...]|123|123.4|'string'|True|Nonezb'bytes'|filezStreamingBody()zEventStream()©Údocument_typeÚjsonvalue_headerÚstreaming_input_shapeÚstreaming_output_shapeÚeventstream_output_shape©Ú_get_value_for_special_type)r   r1   Úspecial_defaultss      r   Ú_get_special_py_defaultz'ShapeDocumenter._get_special_py_defaulth   s/   € àIØ LØ%6Ø&7Ø(7ñ
Ðð ×/Ñ/°Ð7GÓHÐHr   c                 ó6   — ddddddœ}| j                  ||«      S )Nz:ref:`document<document>`zJSON serializablez"bytes or seekable file-like objectz:class:`.StreamingBody`z:class:`.EventStream`r6   r<   )r   r1   Úspecial_type_namess      r   Ú_get_special_py_type_namez)ShapeDocumenter._get_special_py_type_namer   s/   € à8Ø 3Ø%IØ&?Ø(?ñ
Ðð ×/Ñ/°Ð7IÓJÐJr   c                 óÊ   — t        |«      r|d   S t        |d«      r|j                  r|d   S | j                  d   j	                  «       D ]  \  }}||v sŒ||k(  sŒ||   c S  y )Nr8   r   r7   r   )r   r,   r   r   Úitems)r   r1   Úspecial_type_mapÚspecial_typeÚmarked_shapes        r   r=   z+ShapeDocumenter._get_value_for_special_type|   s~   € Ü Ô&Ø#Ð$6Ñ7Ð7Ü5Ð,Ô-°%×2HÒ2HØ# OÑ4Ð4Ø*.¯-©-Ø!ñ+
ç
‰%‹'ò	:Ñ&ˆL˜,ð Ð/Ò/Ø˜LÓ(Ø+¨LÑ9Ò9ð	:ð r   )N)NNNF)	Ú__name__Ú
__module__Ú__qualname__r/   r   r4   r?   rB   r=   © r   r   r   r      s9   „ Ø€Jð DHó8ð ØØØóCòJIòKór   r   N)Úbotocore.utilsr   r   rK   r   r   ú<module>rM      s   ðõ& 0÷qò qr   