o .&aP@szdZddlZddlZddlZddlmZmZGdddejZdZdZ efdd Z Gd d d ej Z Gd d d ej ZdS)z Custom docutils writer for plain text. Based heavily on the Sphinx text writer. See copyright below. :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. N)nodeswritersc@seZdZdZedZdS) TextWrapperz;Custom subclass that uses a different word separator regex.zf(\s+|(?<=\s)(?::[a-z-]+:)?`\S+|[^\s\w]*\w+[a-zA-Z]-(?=\w+[a-zA-Z])|(?<=[\w\!\"\'\&\.\,\?])-{2,}(?=\w))N)__name__ __module__ __qualname____doc__recompile wordsep_rer r 9/usr/lib/python3/dist-packages/awscli/bcdoc/textwriter.pyrs rFcKstdd|i|}||S)Nwidthr )rwrap)textrkwargswr r r my_wrap s rc@s,eZdZdZdZiZdZddZddZdS) TextWriter)r)zNo options here.r NcCstj|dSN)rWriter__init__selfr r r r,zTextWriter.__init__cCs"t|j}|j||j|_dSr)TextTranslatordocument walkaboutbodyoutput)rvisitorr r r translate/s   zTextWriter.translate) rrr supported settings_specsettings_defaultsr"rr$r r r r r%s rc@seZdZdZddZddZefddZdd gd fd d Zd dZ ddZ ddZ ddZ ddZ ddZddZeZeZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Z d9d:Z!d;d<Z"d=d>Z#d?d@Z$dAdBZ%dCdDZ&dEdFZ'dGdHZ(dIdJZ)dKdLZ*dMdNZ+dOdPZ,dQdRZ-dSdTZ.dUdVZ/dWdXZ0dYdZZ1d[d\Z2d]d^Z3d_d`Z4dadbZ5dcddZ6dedfZ7dgdhZ8didjZ9dkdlZ:dmdnZ;dodpZdudvZ?dwdxZ@dydzZAd{d|ZBd}d~ZCddZDddZEddZFddZGddZHddZIddZJddZKddZLddZMddZNddZOddZPddZQddZRddZSddZTddZUddZVddZWddZXddZYddZZddZ[ddZ\ddZ]ddZ^ddZ_ddZ`ddZaddZbddZcddZddd„ZeddĄZfddƄZgddȄZhddʄZidd̄Zjdd΄ZkddЄZldd҄ZmddԄZnddքZodd؄ZpddڄZqdd܄ZrddބZsddZtddZuddZvddZwddZxddZyddZzddZ{ddZ|ddZ}ddZ~ddZddZddZddZddZddZddZddZddZddZd d Zd d Zd dZddZddZddZddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<Zd=d>Zd?d@ZdAdBZdCdDZdEdFZdGdHZdIdJZdKdLZdMdNZdOdPZdQdRZdSdTZdUdVZdWdXZdYdZZd[d\Zd]d^Zd_d`ZdadbZdcddZdedfZdgdhZdidjZeZedkZeZedlZeZedmZeZednZeZedoZeZedpZeZedqZeZedrZeZedsZːdtduZd S(vrz*=-~"+`cCs<tj||tj|_gg|_dg|_g|_d|_ d|_ dSNr) r NodeVisitorroslinesepnlstates stateindent list_counter sectionleveltable)rrr r r r8s zTextTranslator.__init__cCs|jdd|fdSN)r-append)rrr r r add_textBzTextTranslator.add_textcCs|jg|j|dSr)r-r4r.)rindentr r r new_stateEs zTextTranslator.new_stateTrNcs|j}t|j|jggfdd}|D]\}}|dkr.|q |||fgq ||durgrgd\}}|rgd|||dgf||ddfd<|jddS)NcsPsdSrtdtd}nd}r|7}|fdS)Nrr)rjoinMAXWIDTH splitlinesr4)resendr7 maxindentresulttoformatrr r do_formatPsz+TextTranslator.end_state..do_formatr3r)r-popsumr.r4insertextend)rrr?firstcontentrC itemindentitemr r>r end_stateIs&       zTextTranslator.end_statecC|ddSr(r8rnoder r r visit_documentizTextTranslator.visit_documentcCs*||jdd|jdD|_dS)Ncss.|]\}}|D] }|od||VqqdS) Nr ).0r7linesliner r r nsz1TextTranslator.depart_document..r)rMr,r:r-r!rPr r r depart_documentls zTextTranslator.depart_documentcCtjrrSkipNoderPr r r visit_highlightlangsz"TextTranslator.visit_highlightlangcCs |j|j|_|jd7_dSNrD) sectioncharsr0 _title_charrPr r r visit_sectionvszTextTranslator.visit_sectioncCs|jd8_dSr_)r0rPr r r depart_sectionzzTextTranslator.depart_sectioncCrNr(rOrPr r r visit_topic}rSzTextTranslator.visit_topiccC |dSrrMrPr r r depart_topic zTextTranslator.depart_topiccCs|d|ddS)Nrz-[ )r8r5rPr r r visit_rubrics zTextTranslator.visit_rubriccCs|d|dS)Nz ]-r5rMrPr r r depart_rubrics  zTextTranslator.depart_rubriccCdSrr rPr r r visit_compoundzTextTranslator.visit_compoundcCrmrr rPr r r depart_compoundrozTextTranslator.depart_compoundcCrmrr rPr r r visit_glossaryrozTextTranslator.visit_glossarycCrmrr rPr r r depart_glossaryrozTextTranslator.depart_glossarycCs4t|jtjr||dtj|ddS)N: r) isinstanceparentr Admonitionr5astextr\r8rPr r r visit_titleszTextTranslator.visit_titlec Csjt|jtjr |j}nd}ddd|jD}|j|jd dd|d|t |dgfdS)N^rcss$|] }|ddkr|dVqdS)rr3rDNr rUxr r r rXs"z.TextTranslator.depart_title..r3rz%s) rtrursectionrar:r-rEr.r4len)rrQcharrr r r depart_titles  ,zTextTranslator.depart_titlecCrmrr rPr r r visit_subtitlerozTextTranslator.visit_subtitlecCrmrr rPr r r depart_subtitlerozTextTranslator.depart_subtitlecCrN)Nz-- r5rPr r r visit_attributionrSz TextTranslator.visit_attributioncCrmrr rPr r r depart_attributionroz!TextTranslator.depart_attributioncCrmrr rPr r r visit_descrozTextTranslator.visit_desccCrmrr rPr r r depart_descrozTextTranslator.depart_desccCs4|d|jddvr|d|jddSdS)Nrobjtype)class exceptionz%s )r8rur5rPr r r visit_desc_signatures z#TextTranslator.visit_desc_signaturecCs|jddddS)NF)rr?rgrPr r r depart_desc_signaturesz$TextTranslator.depart_desc_signaturecCrmrr rPr r r visit_desc_namerozTextTranslator.visit_desc_namecCrmrr rPr r r depart_desc_namerozTextTranslator.depart_desc_namecCrmrr rPr r r visit_desc_addnameroz!TextTranslator.visit_desc_addnamecCrmrr rPr r r depart_desc_addnameroz"TextTranslator.depart_desc_addnamecCrmrr rPr r r visit_desc_typerozTextTranslator.visit_desc_typecCrmrr rPr r r depart_desc_typerozTextTranslator.depart_desc_typecCrN)Nz -> rrPr r r visit_desc_returnsrSz!TextTranslator.visit_desc_returnscCrmrr rPr r r depart_desc_returnsroz"TextTranslator.depart_desc_returnscCs|dd|_dS)N(rD)r5 first_paramrPr r r visit_desc_parameterlists  z'TextTranslator.visit_desc_parameterlistcCrN)N)rrPr r r depart_desc_parameterlistrSz(TextTranslator.depart_desc_parameterlistcCs,|js |dnd|_||tj)N, r)rr5rwrr\rPr r r visit_desc_parameters  z#TextTranslator.visit_desc_parametercCrN)N[rrPr r r visit_desc_optionalrSz"TextTranslator.visit_desc_optionalcCrN)N]rrPr r r depart_desc_optionalrSz#TextTranslator.depart_desc_optionalcCrmrr rPr r r visit_desc_annotationroz$TextTranslator.visit_desc_annotationcCrmrr rPr r r depart_desc_annotationroz%TextTranslator.depart_desc_annotationcCrmrr rPr r r visit_refcountrozTextTranslator.visit_refcountcCrmrr rPr r r depart_refcountrozTextTranslator.depart_refcountcCs|||jdSr)r8r5r,rPr r r visit_desc_contentsz!TextTranslator.visit_desc_contentcCrfrrgrPr r r depart_desc_contentriz"TextTranslator.depart_desc_contentcCrfrrOrPr r r visit_figurerizTextTranslator.visit_figurecCrfrrgrPr r r depart_figurerizTextTranslator.depart_figurecCrmrr rPr r r visit_caption rozTextTranslator.visit_captioncCrmrr rPr r r depart_caption rozTextTranslator.depart_captioncCs|g}|D] }||dqtdd|D}|D],}|dr4||d|d|d}n |ddt||||jq|jddt j ) N tokennamecss|]}t|VqdSr)r})rUnamer r r rXz6TextTranslator.visit_productionlist..z ::=z%s rTFr) r8r4maxr5ljustr}rwr,rMrr\)rrQnames productionmaxlenlastnamer r r visit_productionlists  z#TextTranslator.visit_productionlistcCrfrrOrPr r r visit_seealso rizTextTranslator.visit_seealsocC|jdddS)NrrIrgrPr r r depart_seealso#rzTextTranslator.depart_seealsocCs,|jd|_|t|jddS)Nrr)childrenrwstrip _footnoter8r}rPr r r visit_footnote&szTextTranslator.visit_footnotecC|jd|jddSNz[%s] r)rMrrPr r r depart_footnote*zTextTranslator.depart_footnotecCsFt|rt|dtjr|d|_nd|_|t|jddS)Nrrr)r}rtrlabelrw _citlabelr8rPr r r visit_citation-szTextTranslator.visit_citationcCrr)rMrrPr r r depart_citation4rzTextTranslator.depart_citationcCrZrr[rPr r r visit_label7r^zTextTranslator.visit_labelcCrmrr rPr r r visit_option_list<roz TextTranslator.visit_option_listcCrmrr rPr r r depart_option_list?roz!TextTranslator.depart_option_listcCrNr(rOrPr r r visit_option_list_itemBrSz%TextTranslator.visit_option_list_itemcCrfrrgrPr r r depart_option_list_itemEriz&TextTranslator.depart_option_list_itemcCs d|_dS)NT) _firstoptionrPr r r visit_option_groupHs z!TextTranslator.visit_option_groupcCrN)Nz rrPr r r depart_option_groupKrSz"TextTranslator.depart_option_groupcCs|jrd|_dS|ddS)NFr)rr5rPr r r visit_optionNs zTextTranslator.visit_optioncCrmrr rPr r r depart_optionTrozTextTranslator.depart_optioncCrmrr rPr r r visit_option_stringWroz"TextTranslator.visit_option_stringcCrmrr rPr r r depart_option_stringZroz#TextTranslator.depart_option_stringcCs||ddS)N delimiterrrPr r r visit_option_argument]rdz$TextTranslator.visit_option_argumentcCrmrr rPr r r depart_option_argument`roz%TextTranslator.depart_option_argumentcCrmrr rPr r r visit_descriptioncroz TextTranslator.visit_descriptioncCrmrr rPr r r depart_descriptionfroz!TextTranslator.depart_descriptioncCrZrr[rPr r r visit_tabular_col_specir^z%TextTranslator.visit_tabular_col_speccCs|jd|dtj)Nrcolwidth)r1r4rr\rPr r r visit_colspeclszTextTranslator.visit_colspeccCrmrr rPr r r visit_tgroupprozTextTranslator.visit_tgroupcCrmrr rPr r r depart_tgroupsrozTextTranslator.depart_tgroupcCrmrr rPr r r visit_theadvrozTextTranslator.visit_theadcCrmrr rPr r r depart_theadyrozTextTranslator.depart_theadcC|jddS)Nsepr1r4rPr r r visit_tbody|rzTextTranslator.visit_tbodycCrmrr rPr r r depart_tbodyrozTextTranslator.depart_tbodycCs|jgdSrrrPr r r visit_rowrzTextTranslator.visit_rowcCrmrr rPr r r depart_rowrozTextTranslator.depart_rowcCs&d|vsd|vr td|ddS)Nmorerowsmorecolsz1Column or row spanning cells are not implemented.r)NotImplementedErrorr8rPr r r visit_entryszTextTranslator.visit_entrycs>jfddjD}jjd|dS)Nc3s |] }j|dVqdS)rDN)r,r:rzrr r rXsz.TextTranslator.depart_entry..r3)r,r:r-rEr.r1r4)rrQrr rr depart_entrys  zTextTranslator.depart_entrycCs$|jrtd|dgg|_dS)Nz Nested tables are not supported.r)r1rr8rPr r r visit_tables  zTextTranslator.visit_tablecs jdd}g}jd}|ddd}|D]=}|dkr#t|}qg}t|D]&\}} t| ||d} | r?ttt| } nd} t|| |<|| q)||qd fdd } fdd } t|D]\}}|rx||krx| d n| d| |qi| dd_jd d dS)NrDrrr9-csFdg}D]}|||d|dqd|jdS)N+r)r4r5r:r,)r~outr realwidthsrr r writeseps  z-TextTranslator.depart_table..writesepc st|}|D]:}dg}t|D]%\}}|r$|d||dn |d|d|dqd|jqdS)N|rTrDrr)zip enumerater4rr5r:r,)rowrVrWricellrr r writerows z-TextTranslator.depart_table..writerow=Fr)r)r1r}rrrmapr4rM)rrQrV fmted_rows colwidths separatorrWcellsrrparmaxwidthrrrr rr depart_tables6        zTextTranslator.depart_tablecCs>|d|ddd|jdjDd|tj)Nrrcss|]}|VqdSr)rw)rUnr r r rXrz,TextTranslator.visit_acks...)r8r5r:rrMrr\rPr r r visit_ackss zTextTranslator.visit_ackscCs4d|jvr|td|d|tdtj)Naltz [image: %s]z[image]) attributesr5_rr\rPr r r visit_images zTextTranslator.visit_imagecCs4t|j}|d|dt||tj)Nrr)rFr.r8r5r;rMrr\)rrQr7r r r visit_transitions  zTextTranslator.visit_transitioncCrr2r/r4rPr r r visit_bullet_listrz TextTranslator.visit_bullet_listcC|jdSrr/rErPr r r depart_bullet_listrSz!TextTranslator.depart_bullet_listcCrr(rrPr r r visit_enumerated_listrz$TextTranslator.visit_enumerated_listcCr rr rPr r r depart_enumerated_listrSz%TextTranslator.depart_enumerated_listcCr)NrrPr r r visit_definition_listrz$TextTranslator.visit_definition_listcCr rr rPr r r depart_definition_listrSz%TextTranslator.depart_definition_listcCs`|jddkr|ddS|jddkrdS|jdd7<|tt|jdddS)Nr3rrrD)r/r8r}strrPr r r visit_list_items  zTextTranslator.visit_list_itemcCsN|jddkr|jddddS|jddkrdS|jd|jddddS)Nr3z* )rIr?rz%s. )r/rMrPr r r depart_list_items zTextTranslator.depart_list_itemcCs"t|dko t|dtj|_dS)NrrD)r}rtr classifier_li_has_classifierrPr r r visit_definition_list_items z)TextTranslator.visit_definition_list_itemcCrmrr rPr r r depart_definition_list_item roz*TextTranslator.depart_definition_list_itemcCrNr(rOrPr r r visit_term rSzTextTranslator.visit_termcCs|js |jdddSdSNr?)rrMrPr r r depart_termszTextTranslator.depart_termcCs|dtj)Nr)r5rr\rPr r r visit_termseps zTextTranslator.visit_termsepcCrN)Nz : rrPr r r visit_classifierrSzTextTranslator.visit_classifiercCs|jdddSrrgrPr r r depart_classifierrz TextTranslator.depart_classifiercCrfrrOrPr r r visit_definitionrizTextTranslator.visit_definitioncCrfrrgrPr r r depart_definition!riz TextTranslator.depart_definitioncCrmrr rPr r r visit_field_list$rozTextTranslator.visit_field_listcCrmrr rPr r r depart_field_list'roz TextTranslator.depart_field_listcCrmrr rPr r r visit_field*rozTextTranslator.visit_fieldcCrmrr rPr r r depart_field-rozTextTranslator.depart_fieldcCrNr(rOrPr r r visit_field_name0rSzTextTranslator.visit_field_namecCs|d|jdddS)N:rrkrPr r r depart_field_name3s z TextTranslator.depart_field_namecCrfrrOrPr r r visit_field_body7rizTextTranslator.visit_field_bodycCrfrrgrPr r r depart_field_body:riz TextTranslator.depart_field_bodycCrmrr rPr r r visit_centered=rozTextTranslator.visit_centeredcCrmrr rPr r r depart_centered@rozTextTranslator.depart_centeredcCrmrr rPr r r visit_hlistCrozTextTranslator.visit_hlistcCrmrr rPr r r depart_hlistFrozTextTranslator.depart_hlistcCrmrr rPr r r visit_hlistcolIrozTextTranslator.visit_hlistcolcCrmrr rPr r r depart_hlistcolLrozTextTranslator.depart_hlistcolcCrNr(rOrPr r r visit_admonitionOrSzTextTranslator.visit_admonitioncCrfrrgrPr r r depart_admonitionRriz TextTranslator.depart_admonitioncCrNr(rOrPr r r visit_versionmodifiedUrSz$TextTranslator.visit_versionmodifiedcCrfrrgrPr r r depart_versionmodifiedXriz%TextTranslator.depart_versionmodifiedcCrfrrOrPr r r visit_literal_block[riz"TextTranslator.visit_literal_blockcCrNFrrgrPr r r depart_literal_block^rz#TextTranslator.depart_literal_blockcCrNr(rOrPr r r visit_doctest_blockarSz"TextTranslator.visit_doctest_blockcCrr6rgrPr r r depart_doctest_blockdrz#TextTranslator.depart_doctest_blockcCrNr(rOrPr r r visit_line_blockgrSzTextTranslator.visit_line_blockcCrr6rgrPr r r depart_line_blockjrz TextTranslator.depart_line_blockcCrmrr rPr r r visit_linemrozTextTranslator.visit_linecCrmrr rPr r r depart_lineprozTextTranslator.depart_linecCrfrrOrPr r r visit_block_quotesriz TextTranslator.visit_block_quotecCrfrrgrPr r r depart_block_quotevriz!TextTranslator.depart_block_quotecCrmrr rPr r r visit_compact_paragraphyroz&TextTranslator.visit_compact_paragraphcCrmrr rPr r r depart_compact_paragraph|roz'TextTranslator.depart_compact_paragraphcCrNr(rOrPr r r visit_paragraphrSzTextTranslator.visit_paragraphcCrfrrgrPr r r depart_paragraphrizTextTranslator.depart_paragraphcCrZrr[rPr r r visit_targetr^zTextTranslator.visit_targetcCrZrr[rPr r r visit_indexr^zTextTranslator.visit_indexcCrZrr[rPr r r visit_substitution_definitionr^z,TextTranslator.visit_substitution_definitioncCrmrr rPr r r visit_pending_xrefroz!TextTranslator.visit_pending_xrefcCrmrr rPr r r depart_pending_xrefroz"TextTranslator.depart_pending_xrefcCrmrr rPr r r visit_referencerozTextTranslator.visit_referencecCrmrr rPr r r depart_referencerozTextTranslator.depart_referencecCrmrr rPr r r visit_download_referenceroz'TextTranslator.visit_download_referencecCrmrr rPr r r depart_download_referenceroz(TextTranslator.depart_download_referencecCrNN*rrPr r r visit_emphasisrSzTextTranslator.visit_emphasiscCrNrMrrPr r r depart_emphasisrSzTextTranslator.depart_emphasiscCrNrMrrPr r r visit_literal_emphasisrSz%TextTranslator.visit_literal_emphasiscCrNrMrrPr r r depart_literal_emphasisrSz&TextTranslator.depart_literal_emphasiscCrNNz**rrPr r r visit_strongrSzTextTranslator.visit_strongcCrNrSrrPr r r depart_strongrSzTextTranslator.depart_strongcCrN)NrrrPr r r visit_abbreviationrSz!TextTranslator.visit_abbreviationcCs$|dr|d|ddSdS)N explanationz (%s))hasattrr5rPr r r depart_abbreviations z"TextTranslator.depart_abbreviationcCrNrMrrPr r r visit_title_referencerSz$TextTranslator.visit_title_referencecCrNrMrrPr r r depart_title_referencerSz%TextTranslator.depart_title_referencecCrNN"rrPr r r visit_literalrSzTextTranslator.visit_literalcCrNr\rrPr r r depart_literalrSzTextTranslator.depart_literalcCrN)NrrrPr r r visit_subscriptrSzTextTranslator.visit_subscriptcCrmrr rPr r r depart_subscriptrozTextTranslator.depart_subscriptcCrN)NryrrPr r r visit_superscriptrSz TextTranslator.visit_superscriptcCrmrr rPr r r depart_superscriptroz!TextTranslator.depart_superscriptcC|d|tjNz[%s]r5rwrr\rPr r r visit_footnote_referencez'TextTranslator.visit_footnote_referencecCrdrerfrPr r r visit_citation_referencerhz'TextTranslator.visit_citation_referencecCs||dSr)r5rwrPr r r visit_TextrdzTextTranslator.visit_TextcCrmrr rPr r r depart_TextrozTextTranslator.depart_TextcCrmrr rPr r r visit_generatedrozTextTranslator.visit_generatedcCrmrr rPr r r depart_generatedrozTextTranslator.depart_generatedcCrmrr rPr r r visit_inlinerozTextTranslator.visit_inlinecCrmrr rPr r r depart_inlinerozTextTranslator.depart_inlinecCrN)Nz>>rrPr r r visit_problematicrSz TextTranslator.visit_problematiccCrN)Nz<)r8r5rwrMrr\rPr r r visit_system_messages z#TextTranslator.visit_system_messagecCrZrr[rPr r r visit_commentr^zTextTranslator.visit_commentcCrZrr[rPr r r visit_metaszTextTranslator.visit_metacCs*d|ddvr|j|tj)Nrformatr)getsplitr!r4rwrr\rPr r r visit_rawszTextTranslator.visit_rawcCrN)NrrOrPr r r _visit_admonitionrSz TextTranslator._visit_admonitioncsfdd}|S)Ncs|jdddS)Nrsr)rM capitalizerPrr r r2r6zATextTranslator._make_depart_admonition..depart_admonitionr )rr2r r{r _make_depart_admonitions z&TextTranslator._make_depart_admonition attentioncautiondangererrorhint importantnotetipwarningcCstd|jj)NzUnknown node: )r __class__rrPr r r unknown_visitrzTextTranslator.unknown_visit)rrrr`rr5 STDINDENTr8rMrRrYr]rbrcrerh visit_sidebardepart_sidebarrjrlrnrprqrrrxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r r rrrrrrrrrrrrr r!r"r#r$r%r&r(r)r*r+r,r-r.r/r0r1r2r3r4r5r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrOrPrQrRrTrUrVrYrZr[r^r_r`rarbrcrgrirjrkrlrmrnrorprqrrrsrtrxryr|visit_attentiondepart_attention visit_cautiondepart_caution visit_danger depart_danger visit_error depart_error visit_hint depart_hintvisit_importantdepart_important visit_note depart_note visit_tip depart_tip visit_warningdepart_warningrr r r r r5s   3                                                                r)rr*r textwrapdocutilsrrrr;rrrrr)rr r r r s