o .&ßa The default unregister iterates through all of the available document events and looks for a corresponding handler method defined in the object. If it's there, that handler method will be unregistered for the all events of that type for the specified ``event_class``. N)r:rrrÚ unregister)rrrrr;Ks þz"CLIDocumentEventHandler.unregistercKsŠ|j}|jdkrC|j d¡}| d¡| d¡dg}|dd…D]}| d¡| |¡d |¡}| d ||f¡q!| d ¡dSdS) NÚmanr)ú[ z:ref:`aws `Úawséÿÿÿÿú . ú z:ref:`%s `ú ])ÚdocÚtargetrr0ÚwriterÚjoin)rrÚkwargsrCÚ cmd_namesÚ full_cmd_listÚcmdÚ full_cmd_namerrrÚdoc_breadcrumbsYs       öz'CLIDocumentEventHandler.doc_breadcrumbscKsN|j}|j ¡|j dd¡}|dkrd|}| d|¡|j |j¡dS)Nr)rAr>zaws z .. _cli:%s:)rCÚstyleÚ new_paragraphrr,ÚwritelnÚh1r )rrrGrCÚ referencerrrÚ doc_titlegs z!CLIDocumentEventHandler.doc_titlecKs,|j}|j d¡| |j¡|j ¡dS©NÚ Description)rCrMÚh2Úinclude_doc_stringÚ descriptionrN©rrrGrCrrrÚdoc_descriptionpó  z'CLIDocumentEventHandler.doc_descriptioncKs6g|_|j}|j d¡|j ¡| d|j¡dS)NÚSynopsisú%s)rrCrMrUÚstart_codeblockrOr rXrrrÚdoc_synopsis_startvs   z*CLIDocumentEventHandler.doc_synopsis_startcKs¦|j}|j|}|j|jvr,|j|jvrdSd dd„|j|jDƒ¡}|j |j¡n|j d¡r8d|j}nd|j}|j sJt |ddƒsJd |}|  d |¡dS) Nú | cSsg|]}|j‘qSr©Úcli_name©Ú.0ÚarrrÚ …sz?CLIDocumentEventHandler.doc_synopsis_option..z--z %s z<%s>Ú_DOCUMENT_AS_REQUIREDFz[%s]r\) rCrrrrrFrraÚ startswithÚrequiredr.rO)rÚarg_namerrGrCÚargumentÚ option_strrrrÚdoc_synopsis_option}s&    ÿÿ    ÿz+CLIDocumentEventHandler.doc_synopsis_optioncKs|j}|j ¡g|_dSr )rCrMÚ end_codeblockrrXrrrÚdoc_synopsis_end‘s  z(CLIDocumentEventHandler.doc_synopsis_endcKs*|j}|j d¡|js| d¡dSdS)NÚOptionsz*None* )rCrMrUrrErXrrrÚdoc_options_start™s  ÿz)CLIDocumentEventHandler.doc_options_startcKsÔ|j}|j|}|j|jvr,|j|jvrdSd dd„|j|jDƒ¡}|j |j¡nd|j}| d||  |j |j ¡f¡|j   ¡| |j¡t|dƒr^| |j |¡| |j |¡|j  ¡|j  ¡dS)Nr_cSsg|]}d|j‘qS)ú``%s``r`rbrrrre§sz6CLIDocumentEventHandler.doc_option..rqz%s (%s) Úargument_model)rCrrrrrFrrarEr&rrÚ cli_type_namerMÚindentrVÚ documentationr-Ú_document_enumsÚ_document_nested_structureÚdedentrN)rrirrGrCrjr rrrÚ doc_optionŸs,    ÿÿ   ÿ    z"CLIDocumentEventHandler.doc_optioncKs |jr|j}|j d¡dSdS)NzSee Also)Ú related_itemsrCrMrUrXrrrÚdoc_relateditems_start¶sþz.CLIDocumentEventHandler.doc_relateditems_startcKs2|j}| d¡|jjd||d| d¡dS)Nú* zcli:%s©ÚlabelÚtextÚ )rCrErMÚsphinx_reference_label)rrÚ related_itemrGrCrrrÚdoc_relateditem»s þz'CLIDocumentEventHandler.doc_relateditemcCs`t|tƒr,|jr.|j ¡| d¡|j ¡|jD] }|j d|¡q|j ¡dSdSdS)z#Documents top-level parameter enumszPossible values:rqN) Ú isinstancerÚenumrMrNrEÚstart_ulÚliÚend_ul)rÚmodelrCr…rrrrvÄs     ùz'CLIDocumentEventHandler._document_enumsc CsÊt|ddƒ}|dkr!|j ¡D]\}}|j||||jgdqdS|dkr3|j|d|j|jgddS|dkrc|j}|j dd ¡}|j||||jgd|j }|j dd ¡} |j|| ||jgddSdS) z5Recursively documents parameters in nested structuresÚ type_nameNÚ structure©ÚstackÚlistÚÚmapr ÚkeyÚvalue) r.ÚmembersrÚ _doc_memberr Úmemberr‘Ú serializationÚgetr’) rr‰rCÚmember_type_nameÚ member_nameÚ member_shapeÚ key_shapeÚkey_nameÚ value_shapeÚ value_namerrrrwÏs"  ÿÿúz2CLIDocumentEventHandler._document_nested_structurecCsh|j|vr| |j¡dkr|jdkr| d¡dS| |j¡z| ||||¡W| ¡dS| ¡w)Nér‹z( ... recursive ... ))r ÚcountrŠrErÚ_do_doc_memberÚpop)rrCr™ršrrrrr”às    ÿz#CLIDocumentEventHandler._doc_membercCs|j}| ||j¡}|r| d||f¡n| d|¡|j ¡|j ¡| |¡|j ¡|j}|dkrK|j  ¡D] \}} |  ||| |¡q=n6|dkrt|j } | j   dd¡} |  || | |¡|j} | j   dd¡} |  || | |¡n |dkr|  |d |j|¡|j ¡|j ¡dS) Nz %s -> (%s)z(%s)r‹rr r‘r’rŽr)rur&rŠrErMrtrNrVr“rr”r‘r–r—r’r•rx)rrCr™ršrÚdocsrŠr˜Úsub_nameÚ sub_shaper›rœrržrrrr¡ïs6ÿ    ÿ z&CLIDocumentEventHandler._do_doc_memberN)Ú__name__Ú __module__Ú __qualname__rrr&r:rr;rLrRrYr^rlrnrpryr{rƒrvrwr”r¡rrrrr s*      r c@sLeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dS)ÚProviderDocumentEventHandlercKódSr r)rrÚ event_namerGrrrrLóz,ProviderDocumentEventHandler.doc_breadcrumbscKs0|j}|j d¡|j |j¡| |j¡dS)Nr[)rCrMrUÚ codeblockÚsynopsisrVÚ help_usagerXrrrr^s z/ProviderDocumentEventHandler.doc_synopsis_startcKrªr r©rrirrGrrrrlr¬z0ProviderDocumentEventHandler.doc_synopsis_optioncKs|j}|j ¡dSr )rCrMrNrXrrrrnsz-ProviderDocumentEventHandler.doc_synopsis_endcKs|j}|j d¡dS)Nro)rCrMrUrXrrrrpsz.ProviderDocumentEventHandler.doc_options_startcKsl|j}|j|}| d|j|jf¡| |j¡|jr4|j  ¡|jD]}|j  |¡q$|j  ¡dSdS)Nz ``%s`` (%s)) rCrrOrarsrVruÚchoicesrMr†r‡rˆ)rrirrGrCrjÚchoicerrrry"s  ÿ   üz'ProviderDocumentEventHandler.doc_optioncKó |j}|j d¡|j ¡dS)NzAvailable Services©rCrMrUÚtoctreerXrrrÚdoc_subitems_start.ó z/ProviderDocumentEventHandler.doc_subitems_startcKs"|j}d|}|jj||ddS)Nú%s/index©Ú file_name)rCrMÚtocitem)rÚ command_namerrGrCrºrrrÚ doc_subitem3sz(ProviderDocumentEventHandler.doc_subitemN) r¦r§r¨rLr^rlrnrpryr¶r½rrrrr© s r©c@s\eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dS)ÚServiceDocumentEventHandlercKrªr r©rrrGrrrr^<r¬z.ServiceDocumentEventHandler.doc_synopsis_startcKrªr rr°rrrrl?r¬z/ServiceDocumentEventHandler.doc_synopsis_optioncKrªr rr¿rrrrnBr¬z,ServiceDocumentEventHandler.doc_synopsis_endcKrªr rr¿rrrrpFr¬z-ServiceDocumentEventHandler.doc_options_startcKrªr rr°rrrryIr¬z&ServiceDocumentEventHandler.doc_optioncKrªr rr°rrrÚdoc_option_exampleLr¬z.ServiceDocumentEventHandler.doc_option_examplecKrªr rr¿rrrÚdoc_options_endOr¬z+ServiceDocumentEventHandler.doc_options_endcKs(|j}|j}|j d¡| |j¡dSrS)rCÚobjrMrUrVru)rrrGrCÚ service_modelrrrrYRs z+ServiceDocumentEventHandler.doc_descriptioncKr³)NzAvailable Commandsr´rXrrrr¶Yr·z.ServiceDocumentEventHandler.doc_subitems_startcKsT|j}|j|}t|diƒ}t|ƒdkr"d|}|jj||ddS|j |¡dS)NÚsubcommand_tablerr¸r¹)rCÚ command_tabler.r/rMr»)rr¼rrGrCÚ subcommandrÄrºrrrr½^s   z'ServiceDocumentEventHandler.doc_subitemN) r¦r§r¨r^rlrnrpryrÀrÁrYr¶r½rrrrr¾9s r¾c@szeZdZdZdd„Zdd„Zdd„Zdd „Zdd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„ZdS)ÚOperationDocumentEventHandlerz'https://docs.aws.amazon.com/goto/WebAPIcKsF|j}|j}|j d¡| |j¡| |¡| |¡| |¡dSrS) rCrÂrMrUrVruÚ_add_webapi_crosslinkÚ_add_top_level_args_referenceÚ$_add_note_for_document_types_if_used)rrrGrCÚoperation_modelrrrrYps    z-OperationDocumentEventHandler.doc_descriptioncCs:|j d¡|j d¡|jjjddd|j d¡dS)NrzSee z 'aws help'z/reference/index)ÚtitleÚpagez' for descriptions of global parameters.)rCrOrErMÚ internal_linkrrrrrÉys  þz;OperationDocumentEventHandler._add_top_level_args_referencecCsn|j}|j}|j}|j d¡}|durdS|j ¡| d¡d|j||j f}|jj d|d|  d¡dS)NÚuidz See also: z%s/%s/%szAWS API Documentation)rÌÚlinkr) rCrÂrÃÚmetadatar—rMrNrEÚ AWS_DOC_BASEr Ú external_linkrO)rrrCrËrÃÚ service_uidrÐrrrrÈ‚s   ÿz3OperationDocumentEventHandler._add_webapi_crosslinkcCs0t|jƒr|jj ¡|j d|j¡dSdS)NaC``%s`` uses document type values. Document types follow the JSON data model where valid values are: strings, numbers, booleans, null, arrays, and objects. For command input, options and nested parameters that are labeled with the type ``document`` must be provided as JSON. Shorthand syntax does not support document types.)r rÂrCrMrNrOr rrrrrÊ“s  ûÿþzBOperationDocumentEventHandler._add_note_for_document_types_if_usedTcCsJt|tƒr|jr|r|j}d dd„|Dƒ¡SdS|jdkr dSd|jS)Nú|cSsg|]}d|‘qS)z"%s"r)rcÚcrrrre¥szJOperationDocumentEventHandler._json_example_value_name..z"string"Úbooleanz true|falser\)r„rr…rFrŠ)rrrÚinclude_enum_valuesr±rrrÚ_json_example_value_nameŸs    z6OperationDocumentEventHandler._json_example_value_namecCsf|j|vr| |j¡dkr|jdkr| d¡dS| |j¡z| |||¡W| ¡dS| ¡w)NrŸr‹z{ ... recursive ... })r r rŠrErÚ_do_json_exampler¢)rrCrrrrrrÚ _json_example­s    z+OperationDocumentEventHandler._json_examplecCsn|jdkrI| d¡|jjtvr| d| |j¡¡n&|j ¡|j ¡| ||j|¡|j ¡| d¡|j  ¡|j ¡| d¡dS|jdkr| d¡|j ¡| |j ¡}| d|¡|j jtvru| | |j ¡¡n|j ¡| ||j |¡|j  ¡|j ¡| d¡|j  ¡| d ¡dS|jd krµ|j r¬|  |¡dS| |||¡dSdS) NrŽú[z%s, ...z...ú]rú{z%s: ú}r‹)rŠrEr•rrÙrMrtÚnew_linerÛrxr‘r’r Ú_doc_document_memberÚ_doc_input_structure_members)rrCrrrÚ key_stringrrrrÚ»s>                    üz.OperationDocumentEventHandler._do_json_examplecCs| d¡dS)Nz{...})rE)rrCrrrráÞóz2OperationDocumentEventHandler._doc_document_memberc Cs| d¡|j ¡|j ¡|j}t|ƒD]f\}}||}|j}|tvr2| d|| |¡f¡n8|dkrE| d|¡|  |||¡n%|dkrX| d|¡|  |||¡n|dkrj| d|¡|  |||¡|t |ƒdkr|| d¡|j ¡q|j  ¡|j ¡| d ¡dS) NrÞz"%s": %sr‹z"%s": rrŽrŸú,rß) rErMrtràr“Ú enumeraterŠrrÙrÛr/rx) rrCrrrr“Úir™Ú member_modelr˜rrrrâás6    ÿ  €  z:OperationDocumentEventHandler._doc_input_structure_memberscKsšt|ƒ\}}|j}|j|}|j|jvr|j|jvrdS|j} tƒ} |  |j¡rW|   |||¡} | dur5dS| rW|j   ¡|  d¡|j   ¡|  ¡D]} | | ¡qJ|j  ¡| dur£| jdkr£| jjtvr£| j} |j   ¡|  d¡|j   ¡|j| dd}|  d||f¡t| tƒr—| jr—| || j¡|j  ¡|j   ¡dS|jtvrË|j   ¡|  d¡|j   ¡|j|| gd|j  ¡|j   ¡dSdS) NzShorthand SyntaxrŽÚSyntaxF)rØz %s %s ...z JSON SyntaxrŒ)r rCrrrrrrrÚsupports_shorthandÚgenerate_shorthand_examplerMrNrEr]Ú splitlinesrOrmrŠr•rrÙr„rr…Ú_write_valid_enumsrsrÛ)rrirr«rGÚ service_idÚoperation_namerCÚ cli_argumentrrÚdocgenÚexample_shorthand_syntaxÚ example_liner•Ú example_typerrrrÀüsXÿ    ÿ          ÿ      úz0OperationDocumentEventHandler.doc_option_examplecCs:|j ¡| d¡|D] }| d|¡q | d¡dS)NzWhere valid values are: z %s r€)rMrNrE)rrCÚ enum_valuesr’rrrrí4s  z0OperationDocumentEventHandler._write_valid_enumsc Ksd|j}|j d¡|j}|j}|dus|js| d¡dS|j ¡D] \}}|j|||gdq"dS)NÚOutputÚNonerŒ) rCrMrUrÂÚ output_shaper“rErr”) rrr«rGrCrËrør™ršrrrÚ doc_output;s ÿz(OperationDocumentEventHandler.doc_outputcKs| |¡dSr )rÉr¿rrrrÁFräz-OperationDocumentEventHandler.doc_options_endN)T)r¦r§r¨rÒrYrÉrÈrÊrÙrÛrÚrárârÀrírùrÁrrrrrÇls   #8 rÇc@sXeZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z dS)ÚTopicListerDocumentEventHandlerasThis is the AWS CLI Topic Guide. It gives access to a set of topics that provide a deeper understanding of the CLI. To access the list of topics from the command line, run ``aws help topics``. To access a specific topic from the command line, run ``aws help [topicname]``, where ``topicname`` is the name of the topic as it appears in the output from ``aws help topics``.cCs,||_| |j|j¡tƒ|_|j ¡dSr )rrrrrÚ _topic_tag_dbÚload_json_indexrrrrrSsz(TopicListerDocumentEventHandler.__init__cKs<|j}|jdkr| d¡|jjddd| d¡dSdS)Nr<r=úcli:awsr>r}rB©rCrDrErMrrXrrrrLYs   ýz/TopicListerDocumentEventHandler.doc_breadcrumbscKs8|j}|j ¡|jjd|jjdd|j d¡dS)Núcli:aws help %sr©ÚrefnamerÐzAWS CLI Topic Guide)rCrMrNÚlink_target_definitionrr rPrXrrrrR`s  þz)TopicListerDocumentEventHandler.doc_titlecKs,|j}|j d¡| |j¡|j ¡dSrS)rCrMrUrVÚ DESCRIPTIONrNrXrrrrYhrZz/TopicListerDocumentEventHandler.doc_descriptioncKrªr rr¿rrrr^nr¬z2TopicListerDocumentEventHandler.doc_synopsis_startcKrªr rr¿rrrrnqr¬z0TopicListerDocumentEventHandler.doc_synopsis_endcKrªr rr¿rrrrptr¬z1TopicListerDocumentEventHandler.doc_options_startcKrªr rr¿rrrrÁwr¬z/TopicListerDocumentEventHandler.doc_options_endc KsÄ|j}|j d¡|j d¡}|j ¡}t| ¡ƒ}|D]3}|j |¡|j  ¡t||ƒD]}|j  |d¡} |  d¡|jj d||d|  d| ¡q/q|j  ¡|D]}|j |¡qWdS)NzAvailable TopicsÚcategoryrWr|rÿr}z: %s )rCrMrUrûÚqueryÚget_all_topic_namesÚsortedÚkeysÚh3rNÚget_tag_single_valuerErÚhidden_toctreeÚhidden_tocitem) rrrGrCÚ categoriesÚ topic_namesÚcategory_namesÚ category_nameÚ topic_namerWrrrr¶zs.      ÿ þø ÿz2TopicListerDocumentEventHandler.doc_subitems_startN) r¦r§r¨rrrLrRrYr^rnrprÁr¶rrrrrúJsÿ rúc@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚTopicDocumentEventHandlercKsV|j}|jdkr)| d¡|jjddd| d¡|jjddd| d ¡dSdS) Nr<r=rýr>r}r@zcli:aws help topicsÚtopicsrBrþrXrrrrLšs   þøz)TopicDocumentEventHandler.doc_breadcrumbscKsH|j}|j ¡|jjd|jjdd|j |jd¡}|j |¡dS)NrÿrrrÌ) rCrMrNrrr rûr rP)rrrGrCrÌrrrrR¦s  þÿz#TopicDocumentEventHandler.doc_titlecKs@|j}tj |jj|jd¡}| |¡}| |¡|j   ¡dS)Nz.rst) rCÚosÚpathrFrûÚ topic_dirr Ú_remove_tags_from_contentrOrMrN)rrrGrCÚtopic_filenameÚcontentsrrrrY°s ÿ  z)TopicDocumentEventHandler.doc_descriptioncCslt|dƒ }| ¡}Wdƒn1swYd}t|ƒD] \}}| |¡s,|}nqd ||d…¡S)NÚrrr)ÚopenÚ readlinesræÚ _line_has_tagrF)rÚfilenameÚfÚlinesÚcontent_begin_indexrçÚlinerrrr¸s  ÿ þz3TopicDocumentEventHandler._remove_tags_from_contentcCs*|jjD]}| d|d¡rdSqdS)Nú:TF)rûÚ valid_tagsrg)rr"ÚtagrrrrÇs ÿz'TopicDocumentEventHandler._line_has_tagcKrªr rr¿rrrr¶Ír¬z,TopicDocumentEventHandler.doc_subitems_startN) r¦r§r¨rLrRrYrrr¶rrrrr˜s   r)ÚloggingrÚbotocorerÚbotocore.modelrÚbotocore.utilsrÚawsclirÚawscli.argprocessrÚawscli.bcdoc.doceventsrÚawscli.topictagsrÚ awscli.utilsr r r Ú getLoggerr¦ÚLOGÚobjectr r©r¾rÇrúrrrrrÚs&         n-3_N