U ä€C^/"ć@sLddlmZddlmZGdd„deƒZGdd„deƒZGdd„deƒZd S) é)ŚShapeDocumenter)Ś py_defaultc@steZdZddd„Zdd„Zddd„Zddd „Zdd d „Zdd d „Zddd„Z dd„Z ddd„Z ddd„Z dd„Z dS) ŚBaseExampleDocumenterNcCsBg}|j ”|j ”|dk r*| |”|j|||||ddS)a]Generates an example based on a shape :param section: The section to write the documentation to. :param shape: The shape of the operation. :param prefix: Anything to be included before the example :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. N)ŚsectionŚshapeŚhistoryŚincludeŚexclude)ŚstyleŚnew_lineZstart_codeblockŚwriteŚtraverse_and_document_shape)ŚselfrrŚprefixrr r©rś;/tmp/pip-install-6_kvzl1k/botocore/botocore/docs/example.pyŚdocument_examples   žz&BaseExampleDocumenter.document_examplecKs| d”dS)Nz{'... recursive ...'})r )rrrŚkwargsrrrŚdocument_recursive_shape-sz.BaseExampleDocumenter.document_recursive_shapecKs>| |”}|dkrt|jƒ}|j d”|kr0d}| |”dS)NZstreaming_shapezStreamingBody())Z_get_special_py_defaultrŚ type_nameŚ_contextŚgetr )rrrrrr rZpy_typerrrŚdocument_shape_default0s   z,BaseExampleDocumenter.document_shape_defaultc Ksdd|jkrRt|jdƒD]6\}}| d|”|t|jdƒdkr| d”qn| |||”dS)NŚenumś'%s'éś|)ŚmetadataŚ enumerater Ślenr) rrrrrr rŚirrrrŚdocument_shape_type_string:s  z0BaseExampleDocumenter.document_shape_type_stringc Ksn|j}| d”}| |d”|jdd|jid} |j| ||d| d”} |  d”| d ”} | | d ”dS) Nz list-valueś[Śmemberr©Ścontext©rrrś ending-commaś,śending-bracketś])r#Śadd_new_sectionŚ_start_nested_paramŚnamer r Ś_end_nested_param) rrrrrr rŚ param_shapeZ list_sectionŚ param_sectionŚending_comma_sectionZending_bracket_sectionrrrŚdocument_shape_type_listDs$  ’’  ’z.BaseExampleDocumenter.document_shape_type_listcKsŽ|js| d”dS| d”}| |d”| |j|”}t|ƒD]Š\}} |rV| |krVq@| | ”} |  d| ”|| } | jdd| jid} |j| | || d|t|ƒd kr@|  d ”} |  d ”| j   ”q@|  |dd ”dS) Nz{}śstructure-valueŚ{z'%s': ś member-valuerr$©rrrr-rr'r(Ś}) Śmembersr r+r,Ś_add_members_to_shaperr-r rr r Ś_end_structure)rrrrrr rŚ input_membersr Śparamr0r/Śparam_value_sectionr1rrrŚdocument_shape_type_structureSs:     ’ž’  z3BaseExampleDocumenter.document_shape_type_structurec Ksz| d”}| |d”|j}|jdd|jjid} |  d”|jdd|jid} |j| ||d| d ”} | | d ”dS) Nz map-valuer4Śkeyrr$z 'string': Śvaluer&r)r7)r+r,r@r?r-r r r.) rrrrrr rZ map_sectionZ value_shapeZ key_sectionZ value_sectionŚend_bracket_sectionrrrŚdocument_shape_type_mapps&   ’ ’’ z-BaseExampleDocumenter.document_shape_type_mapcCs$|r | ”}|D]}|||j<q|S©N)Ścopyr-)rr8rr<rrrr9s  z+BaseExampleDocumenter._add_members_to_shapecCs4|dk r| |”|j ”|j ”|j ”dSrC)r r Śindentr )rrŚstartrrrr,†s    z)BaseExampleDocumenter._start_nested_paramcCs4|j ”|j ”|j ”|dk r0| |”dSrC)r Śdedentr r )rrŚendrrrr.s    z'BaseExampleDocumenter._end_nested_paramcCsB|js(| ”| ||”| |”n| d”}| ||”dS)Nr))Zavailable_sectionsZ clear_textr r.r+)rrrFrHrArrrr:”s   z$BaseExampleDocumenter._end_structure)NNN)NN)NN)NN)NN)NN)N)N)Ś__name__Ś __module__Ś __qualname__rrrr!r2r>rBr9r,r.r:rrrrrs.’ ’ ’ ’ ’ ’   rc@seZdZdZdd„ZdS)ŚResponseExampleDocumenterzresponse-examplecKs4| d”|j|||f|Ž| d”}| d”dS)Nz EventStream(zevent-stream-endś))r r>r+)rrrrrŚ end_sectionrrrŚ document_shape_type_event_stream¤s  z:ResponseExampleDocumenter.document_shape_type_event_streamN)rIrJrKŚ EVENT_NAMErOrrrrrL”srLc@seZdZdZddd„ZdS)ŚRequestExampleDocumenterzrequest-exampleNcKsd}d}d} d} t|ƒdkr,d}d} d} d }| d ”}| || ”| |j|”} t| ƒD]”\} } |rn| |krnqX| | ”}| || ”| |”| | }|jd d |jid }|j|||| d| t| ƒdkrX| d”}| d”|j   ”qX|  || | ”dS)Nrz: r4r7rś=ś(rMz%sr3r5rr$r6r'r() rr+r,r9r8rr r-r r r r:)rrrrrr rZ param_formatŚoperatorrFrHr;r r<r0r/r=r1rrrr>ÆsH      ’ž’  z6RequestExampleDocumenter.document_shape_type_structure)NN)rIrJrKrPr>rrrrrQ¬s’rQN)Zbotocore.docs.shaperZbotocore.docs.utilsrrrLrQrrrrŚ s