ó U!¶\c@s*ddlmZdefd„ƒYZdS(iÿÿÿÿ(tis_json_value_headertShapeDocumentercBsJeZdZdd„Zddded„Zd„Zd„Zd„Z RS(tcCsG||_||_||_||_|dkrCiid6|_ndS(Ntspecial_shape_types(t _service_namet_operation_namet_event_emittert_contexttNone(tselft service_nametoperation_namet event_emittertcontext((s7/tmp/pip-install-usGedi/botocore/botocore/docs/shape.pyt__init__s     c CsH|j}t|diƒjdƒr-d}n|j|krU|j||d|ƒnï|j|jƒt|ƒdk} t|d||jƒ||d|d|d|d |d | d |ƒ| ró|jj d |j |j |j |fd |ƒnt|ƒdk} | r:|jj d|j |j |j fd |ƒn|j ƒdS(sÿ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. t serializationt eventstreamt event_streamtnameisdocument_shape_type_%sthistorytincludetexcludetis_top_level_paramt is_requiredsdocs.%s.%s.%s.%stsectionisdocs.%s.%s.%s.complete-sectionN(t type_nametgetattrtgetRtdocument_recursive_shapetappendtlentdocument_shape_defaultRtemitt EVENT_NAMERRtpop( R RtshapeRRRRRt param_typeRtat_overlying_method_section((s7/tmp/pip-install-usGedi/botocore/botocore/docs/shape.pyttraverse_and_document_shape$s8             cCs2idd6dd6dd6dd6}|j||ƒS( Ns({...}|[...]|123|123.4|'string'|True|Nonetjsonvalue_headers b'bytes'|filetstreaming_input_shapesStreamingBody()tstreaming_output_shapes EventStream()teventstream_output_shape(t_get_value_for_special_type(R R#tspecial_defaults((s7/tmp/pip-install-usGedi/botocore/botocore/docs/shape.pyt_get_special_py_default[s  cCs2idd6dd6dd6dd6}|j||ƒS( NsJSON serializableR's"bytes or seekable file-like objectR(s:class:`.StreamingBody`R)s:class:`.EventStream`R*(R+(R R#tspecial_type_names((s7/tmp/pip-install-usGedi/botocore/botocore/docs/shape.pyt_get_special_py_type_nameds  cCs_t|ƒr|dSxD|jdjƒD]/\}}||kr(||krW||Sq(q(WdS(NR'R(RRtitemsR(R R#tspecial_type_mapt special_typet marked_shape((s7/tmp/pip-install-usGedi/botocore/botocore/docs/shape.pyR+ms    N( t__name__t __module__R!RRtFalseR&R-R/R+(((s7/tmp/pip-install-usGedi/botocore/botocore/docs/shape.pyRs  5 N(tbotocore.utilsRtobjectR(((s7/tmp/pip-install-usGedi/botocore/botocore/docs/shape.pyts