o .&a@s ddlmZGdddeZdS))is_json_value_headerc@sBeZdZdZ dddZ  dddZdd Zd d Zd d ZdS)ShapeDocumenterNcCs2||_||_||_||_|durdii|_dSdS)Nspecial_shape_types) _service_name_operation_name_event_emitter_context)self service_nameoperation_name event_emittercontextr5/usr/lib/python3/dist-packages/botocore/docs/shape.py__init__s zShapeDocumenter.__init__Fc Cs|j}t|didrd}|j|vr|j|||ddS||jt|dk} t|dr3|jr3d}t|d||j ||||||| |d | rY|j j d |j |j |j|f|d t|d k} | rq|j j d |j |j |jf|d |dS)aTraverses 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)nameis_document_typedocumentzdocument_shape_type_%s)historyrincludeexcludeis_top_level_param is_requiredzdocs.%s.%s.%s.%s)sectionzdocs.%s.%s.%s.complete-sectionN) type_namegetattrgetrdocument_recursive_shapeappendlenhasattrrdocument_shape_defaultremit EVENT_NAMErrpop) r rshaperrrrr param_typerat_overlying_method_sectionrrrtraverse_and_document_shape$sH      z+ShapeDocumenter.traverse_and_document_shapecCsdddddd}|||S)Nz({...}|[...]|123|123.4|'string'|True|Nonez b'bytes'|filezStreamingBody()z EventStream() document_typejsonvalue_headerstreaming_input_shapestreaming_output_shapeeventstream_output_shape_get_value_for_special_type)r r+special_defaultsrrr_get_special_py_default] z'ShapeDocumenter._get_special_py_defaultcCsdddddd}|||S)Nz:ref:`document`zJSON serializablez"bytes or seekable file-like objectz:class:`.StreamingBody`z:class:`.EventStream`r/r5)r r+special_type_namesrrr_get_special_py_type_namegr9z)ShapeDocumenter._get_special_py_type_namecCs`t|r|dSt|dr|jr|dS|jdD]\}}||vr-||kr-||SqdS)Nr1rr0r)rr&rr items)r r+special_type_map special_type marked_shaperrrr6qs  z+ShapeDocumenter._get_value_for_special_type)N)NNNF) __name__ __module__ __qualname__r)rr.r8r;r6rrrrrs   9 rN)botocore.utilsrobjectrrrrrs