ķ 9(Zc@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((s5/tmp/pip-build-wDUJoH/botocore/botocore/docs/shape.pyt__init__s     c Cs$|j}|j|kr1|j||d|ƒnī|j|jƒt|ƒdk} t|d||jƒ||d|d|d|d|d| d|ƒ| rĪ|jjd |j |j |j |fd |ƒnt|ƒd k} | r|jjd |j |j |j fd |ƒn|j ƒd S(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. tnameisdocument_shape_type_%sthistorytincludetexcludetis_top_level_paramt is_requiredsdocs.%s.%s.%s.%stsectionisdocs.%s.%s.%s.complete-sectionN( t type_nameRtdocument_recursive_shapetappendtlentgetattrtdocument_shape_defaultRtemitt EVENT_NAMERRtpop( R RtshapeRRRRRt param_typeRtat_overlying_method_section((s5/tmp/pip-build-wDUJoH/botocore/botocore/docs/shape.pyttraverse_and_document_shape$s4            cCs+idd6dd6dd6}|j||ƒS(Ns({...}|[...]|123|123.4|'string'|True|Nonetjsonvalue_headers b'bytes'|filetstreaming_input_shapesStreamingBody()tstreaming_output_shape(t_get_value_for_special_type(R Rtspecial_defaults((s5/tmp/pip-build-wDUJoH/botocore/botocore/docs/shape.pyt_get_special_py_defaultYs  cCs+idd6dd6dd6}|j||ƒS(NsJSON serializableR#s"bytes or seekable file-like objectR$s:class:`.StreamingBody`R%(R&(R Rtspecial_type_names((s5/tmp/pip-build-wDUJoH/botocore/botocore/docs/shape.pyt_get_special_py_type_nameas  cCs_t|ƒr|dSxD|jdjƒD]/\}}||kr(||krW||Sq(q(WdS(NR#R(RRtitemsR(R Rtspecial_type_mapt special_typet marked_shape((s5/tmp/pip-build-wDUJoH/botocore/botocore/docs/shape.pyR&is    N( t__name__t __module__RRRtFalseR"R(R*R&(((s5/tmp/pip-build-wDUJoH/botocore/botocore/docs/shape.pyRs  3  N(tbotocore.utilsRtobjectR(((s5/tmp/pip-build-wDUJoH/botocore/botocore/docs/shape.pyts