U n^@s ddlmZGdddeZdS))is_json_value_headerc@s<eZdZdZdddZdddZdd Zd d Zd d ZdS)ShapeDocumenterNcCs.||_||_||_||_|dkr*dii|_dS)Nspecial_shape_types) _service_name_operation_name_event_emitter_context)selfZ service_nameZoperation_nameZ event_emittercontextr m/private/var/folders/sd/whlwsn6x1_qgglc0mjv25_695qk2gl/T/pip-install-4zq3fp6i/botocore/botocore/docs/shape.py__init__szShapeDocumenter.__init__Fc Cs|j}t|didrd}|j|kr8|j|||dn||jt|dk} t|d||j||||||| |d| r|jj d|j |j |j |f|d t|d k} | r|jj d |j |j |j f|d | d S) 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. Z serializationZ eventstreamZ event_stream)namezdocument_shape_type_%s)historyrincludeexcludeis_top_level_param is_requiredzdocs.%s.%s.%s.%s)sectionzdocs.%s.%s.%s.complete-sectionN)Z type_namegetattrgetrZdocument_recursive_shapeappendlenZdocument_shape_defaultremit EVENT_NAMErrpop) r rshaperrrrrZ param_typerZat_overlying_method_sectionr r r traverse_and_document_shape$sL     z+ShapeDocumenter.traverse_and_document_shapecCsddddd}|||S)Nz({...}|[...]|123|123.4|'string'|True|Nonez b'bytes'|filezStreamingBody()z EventStream()jsonvalue_headerZstreaming_input_shapeZstreaming_output_shapeZeventstream_output_shape_get_value_for_special_type)r rZspecial_defaultsr r r _get_special_py_default[s z'ShapeDocumenter._get_special_py_defaultcCsddddd}|||S)NzJSON serializablez"bytes or seekable file-like objectz:class:`.StreamingBody`z:class:`.EventStream`r!r#)r rZspecial_type_namesr r r _get_special_py_type_nameds z)ShapeDocumenter._get_special_py_type_namecCsHt|r|dS|jdD]$\}}||kr||kr||SqdS)Nr"r)rr items)r rZspecial_type_mapZ special_typeZ marked_shaper r r r$msz+ShapeDocumenter._get_value_for_special_type)N)NNNF) __name__ __module__ __qualname__rrr r%r&r$r r r r rs  7  rN)Zbotocore.utilsrobjectrr r r r s