o
    !dP                     @   sz   d Z ddlZddlZddlZddlmZmZ G dd dejZdZdZ	efdd	Z
G d
d dejZG dd dejZdS )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)nodeswritersc                   @   s   e Zd ZdZedZdS )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__recompile
wordsep_re r   r   ;usr/lib/python3.10/site-packages/awscli/bcdoc/textwriter.pyr      s
    r   F      c                 K   s   t dd|i|}|| S )Nwidthr   )r   wrap)textr   kwargswr   r   r   my_wrap    s   
r   c                   @   s,   e Zd ZdZdZi ZdZdd Zdd ZdS )
TextWriter)r   )zNo options here. r   Nc                 C   s   t j|  d S N)r   Writer__init__selfr   r   r   r   ,      zTextWriter.__init__c                 C   s"   t | j}| j| |j| _d S r   )TextTranslatordocumentZ	walkaboutbodyoutput)r   visitorr   r   r   	translate/   s   
zTextWriter.translate)	r   r   r   Z	supportedZsettings_specZsettings_defaultsr!   r   r#   r   r   r   r   r   %   s    r   c                   @   s  e Zd ZdZdd Zdd ZefddZdd	gd
fddZdd Z	dd Z
dd Zdd Zdd Zdd Zdd ZeZeZdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Z d9d: Z!d;d< Z"d=d> Z#d?d@ Z$dAdB Z%dCdD Z&dEdF Z'dGdH Z(dIdJ Z)dKdL Z*dMdN Z+dOdP Z,dQdR Z-dSdT Z.dUdV Z/dWdX Z0dYdZ Z1d[d\ Z2d]d^ Z3d_d` Z4dadb Z5dcdd Z6dedf Z7dgdh Z8didj Z9dkdl Z:dmdn Z;dodp Z<dqdr Z=dsdt Z>dudv Z?dwdx Z@dydz ZAd{d| ZBd}d~ ZCdd ZDdd ZEdd ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd ZeddĄ ZfddƄ ZgddȄ Zhddʄ Zidd̄ Zjdd΄ ZkddЄ Zldd҄ ZmddԄ Znddք Zodd؄ Zpddڄ Zqdd܄ Zrddބ Zsdd Ztdd Zudd Zvdd Zwdd Zxdd Zydd Zzdd Z{dd Z|dd Z}dd Z~dd Zdd Zdd Zdd Zdd Zdd  Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Zd?d@ ZdAdB ZdCdD ZdEdF ZdGdH ZdIdJ ZdKdL ZdMdN ZdOdP ZdQdR ZdSdT ZdUdV ZdWdX ZdYdZ Zd[d\ Zd]d^ Zd_d` Zdadb Zdcdd Zdedf Zdgdh Zdidj ZeZedkZeZedlZeZedmZeZednZeZedoZeZedpZeZedqZeZedrZeZedsZːdtdu Zd
S (v  r   z*=-~"+`c                 C   s<   t j| | tj| _g g| _dg| _g | _d| _	d | _
d S Nr   )r   NodeVisitorr   oslinesepnlstatesstateindentlist_countersectionleveltable)r   r   r   r   r   r   8   s   
zTextTranslator.__init__c                 C   s   | j d d|f d S N)r)   append)r   r   r   r   r   add_textB      zTextTranslator.add_textc                 C   s   | j g  | j| d S r   )r)   r0   r*   )r   indentr   r   r   	new_stateE   s   zTextTranslator.new_stateTr   Nc                    s   | j  }t| j| j g g  fdd}|D ]\}}|dkr.| q |  | |f g q |  |d urgrgd \}}|rgd| ||d  gf ||dd  fd< | j d  d S )Nc                     sP   sd S rt dt d} nd }  r|  7 } | f d S )Nr   r   )r   joinMAXWIDTH
splitlinesr0   )resendr3   Z	maxindentresultZtoformatr   r   r   	do_formatP   s   z+TextTranslator.end_state.<locals>.do_formatr/   r      )r)   popsumr*   r0   insertextend)r   r   r;   firstcontentr=   Z
itemindentitemr   r:   r   	end_stateI   s&   



zTextTranslator.end_statec                 C      |  d d S r$   r4   r   noder   r   r   visit_documenti      zTextTranslator.visit_documentc                 C   s*   |    | jdd | jd D | _d S )Nc                 s   s.    | ]\}}|D ]}|od | | V  qqdS ) Nr   ).0r3   linesliner   r   r   	<genexpr>n   s    z1TextTranslator.depart_document.<locals>.<genexpr>r   )rF   r(   r6   r)   r    rI   r   r   r   depart_documentl   s   zTextTranslator.depart_documentc                 C      t jr   r   SkipNoderI   r   r   r   visit_highlightlangs      z"TextTranslator.visit_highlightlangc                 C   s    | j | j | _|  jd7  _d S Nr>   )sectioncharsr,   _title_charrI   r   r   r   visit_sectionv   s   zTextTranslator.visit_sectionc                 C   s   |  j d8  _ d S rX   )r,   rI   r   r   r   depart_sectionz      zTextTranslator.depart_sectionc                 C   rG   r$   rH   rI   r   r   r   visit_topic}   rL   zTextTranslator.visit_topicc                 C      |    d S r   rF   rI   r   r   r   depart_topic      zTextTranslator.depart_topicc                 C   s   |  d | d d S )Nr   z-[ )r4   r1   rI   r   r   r   visit_rubric   s   
zTextTranslator.visit_rubricc                 C   s   |  d |   d S )Nz ]-r1   rF   rI   r   r   r   depart_rubric   s   
zTextTranslator.depart_rubricc                 C      d S r   r   rI   r   r   r   visit_compound      zTextTranslator.visit_compoundc                 C   rf   r   r   rI   r   r   r   depart_compound   rh   zTextTranslator.depart_compoundc                 C   rf   r   r   rI   r   r   r   visit_glossary   rh   zTextTranslator.visit_glossaryc                 C   rf   r   r   rI   r   r   r   depart_glossary   rh   zTextTranslator.depart_glossaryc                 C   s4   t |jtjr| | d  tj| d d S )N: r   )
isinstanceparentr   Z
Admonitionr1   astextrU   r4   rI   r   r   r   visit_title   s   zTextTranslator.visit_titlec              	   C   sj   t |jtjr| j}nd}ddd | j D }| j  | jd 	dd|d|t
|  dgf d S )N^r   c                 s   s$    | ]}|d  dkr|d V  qdS )r   r/   r>   Nr   rN   xr   r   r   rQ      s   " z.TextTranslator.depart_title.<locals>.<genexpr>r/   r   z%s)rm   rn   r   sectionrZ   r6   r)   r?   r*   r0   len)r   rJ   charr   r   r   r   depart_title   s   
,zTextTranslator.depart_titlec                 C   rf   r   r   rI   r   r   r   visit_subtitle   rh   zTextTranslator.visit_subtitlec                 C   rf   r   r   rI   r   r   r   depart_subtitle   rh   zTextTranslator.depart_subtitlec                 C   rG   )Nz-- r1   rI   r   r   r   visit_attribution   rL   z TextTranslator.visit_attributionc                 C   rf   r   r   rI   r   r   r   depart_attribution   rh   z!TextTranslator.depart_attributionc                 C   rf   r   r   rI   r   r   r   
visit_desc   rh   zTextTranslator.visit_descc                 C   rf   r   r   rI   r   r   r   depart_desc   rh   zTextTranslator.depart_descc                 C   s4   |  d |jd dv r| d|jd   d S d S )Nr   Zobjtype)class	exceptionz%s )r4   rn   r1   rI   r   r   r   visit_desc_signature   s   
z#TextTranslator.visit_desc_signaturec                 C   s   | j dd d d S )NF)r   r;   r`   rI   r   r   r   depart_desc_signature   s   z$TextTranslator.depart_desc_signaturec                 C   rf   r   r   rI   r   r   r   visit_desc_name   rh   zTextTranslator.visit_desc_namec                 C   rf   r   r   rI   r   r   r   depart_desc_name   rh   zTextTranslator.depart_desc_namec                 C   rf   r   r   rI   r   r   r   visit_desc_addname   rh   z!TextTranslator.visit_desc_addnamec                 C   rf   r   r   rI   r   r   r   depart_desc_addname   rh   z"TextTranslator.depart_desc_addnamec                 C   rf   r   r   rI   r   r   r   visit_desc_type   rh   zTextTranslator.visit_desc_typec                 C   rf   r   r   rI   r   r   r   depart_desc_type   rh   zTextTranslator.depart_desc_typec                 C   rG   )Nz -> rz   rI   r   r   r   visit_desc_returns   rL   z!TextTranslator.visit_desc_returnsc                 C   rf   r   r   rI   r   r   r   depart_desc_returns   rh   z"TextTranslator.depart_desc_returnsc                 C   s   |  d d| _d S )N(r>   )r1   first_paramrI   r   r   r   visit_desc_parameterlist   s   

z'TextTranslator.visit_desc_parameterlistc                 C   rG   )N)rz   rI   r   r   r   depart_desc_parameterlist   rL   z(TextTranslator.depart_desc_parameterlistc                 C   s,   | j s	| d nd| _ | |  tj)N, r   )r   r1   ro   r   rU   rI   r   r   r   visit_desc_parameter   s
   z#TextTranslator.visit_desc_parameterc                 C   rG   )N[rz   rI   r   r   r   visit_desc_optional   rL   z"TextTranslator.visit_desc_optionalc                 C   rG   )N]rz   rI   r   r   r   depart_desc_optional   rL   z#TextTranslator.depart_desc_optionalc                 C   rf   r   r   rI   r   r   r   visit_desc_annotation   rh   z$TextTranslator.visit_desc_annotationc                 C   rf   r   r   rI   r   r   r   depart_desc_annotation   rh   z%TextTranslator.depart_desc_annotationc                 C   rf   r   r   rI   r   r   r   visit_refcount   rh   zTextTranslator.visit_refcountc                 C   rf   r   r   rI   r   r   r   depart_refcount   rh   zTextTranslator.depart_refcountc                 C   s   |    | | j d S r   )r4   r1   r(   rI   r   r   r   visit_desc_content   s   z!TextTranslator.visit_desc_contentc                 C   r_   r   r`   rI   r   r   r   depart_desc_content  rb   z"TextTranslator.depart_desc_contentc                 C   r_   r   rH   rI   r   r   r   visit_figure  rb   zTextTranslator.visit_figurec                 C   r_   r   r`   rI   r   r   r   depart_figure  rb   zTextTranslator.depart_figurec                 C   rf   r   r   rI   r   r   r   visit_caption
  rh   zTextTranslator.visit_captionc                 C   rf   r   r   rI   r   r   r   depart_caption  rh   zTextTranslator.depart_captionc                 C   s   |    g }|D ]	}||d  qtdd |D }|D ],}|d r4| |d |d  |d }n| ddt|   | | | j  q| jdd t	j
)	NZ	tokennamec                 s   s    | ]}t |V  qd S r   )ru   )rN   namer   r   r   rQ         z6TextTranslator.visit_productionlist.<locals>.<genexpr>z ::=z%s    rM   Fr   )r4   r0   maxr1   ljustru   ro   r(   rF   r   rU   )r   rJ   names
productionmaxlenZlastnamer   r   r   visit_productionlist  s   
z#TextTranslator.visit_productionlistc                 C   r_   r   rH   rI   r   r   r   visit_seealso   rb   zTextTranslator.visit_seealsoc                 C      | j dd d S )Nr   rC   r`   rI   r   r   r   depart_seealso#  r   zTextTranslator.depart_seealsoc                 C   s,   |j d   | _| t| jd  d S )Nr   r   )childrenro   strip	_footnoter4   ru   rI   r   r   r   visit_footnote&  s   zTextTranslator.visit_footnotec                 C      | j d| j d d S Nz[%s] r   )rF   r   rI   r   r   r   depart_footnote*     zTextTranslator.depart_footnotec                 C   sF   t |rt|d tjr|d  | _nd| _| t | jd  d S )Nr   r   r   )ru   rm   r   labelro   	_citlabelr4   rI   r   r   r   visit_citation-  s   zTextTranslator.visit_citationc                 C   r   r   )rF   r   rI   r   r   r   depart_citation4  r   zTextTranslator.depart_citationc                 C   rS   r   rT   rI   r   r   r   visit_label7  rW   zTextTranslator.visit_labelc                 C   rf   r   r   rI   r   r   r   visit_option_list<  rh   z TextTranslator.visit_option_listc                 C   rf   r   r   rI   r   r   r   depart_option_list?  rh   z!TextTranslator.depart_option_listc                 C   rG   r$   rH   rI   r   r   r   visit_option_list_itemB  rL   z%TextTranslator.visit_option_list_itemc                 C   r_   r   r`   rI   r   r   r   depart_option_list_itemE  rb   z&TextTranslator.depart_option_list_itemc                 C   s
   d| _ d S )NT)_firstoptionrI   r   r   r   visit_option_groupH  s   
z!TextTranslator.visit_option_groupc                 C   rG   )Nz     rz   rI   r   r   r   depart_option_groupK  rL   z"TextTranslator.depart_option_groupc                 C   s   | j rd| _ d S | d d S )NFr   )r   r1   rI   r   r   r   visit_optionN  s   
zTextTranslator.visit_optionc                 C   rf   r   r   rI   r   r   r   depart_optionT  rh   zTextTranslator.depart_optionc                 C   rf   r   r   rI   r   r   r   visit_option_stringW  rh   z"TextTranslator.visit_option_stringc                 C   rf   r   r   rI   r   r   r   depart_option_stringZ  rh   z#TextTranslator.depart_option_stringc                 C   s   |  |d  d S )N	delimiterrz   rI   r   r   r   visit_option_argument]  r]   z$TextTranslator.visit_option_argumentc                 C   rf   r   r   rI   r   r   r   depart_option_argument`  rh   z%TextTranslator.depart_option_argumentc                 C   rf   r   r   rI   r   r   r   visit_descriptionc  rh   z TextTranslator.visit_descriptionc                 C   rf   r   r   rI   r   r   r   depart_descriptionf  rh   z!TextTranslator.depart_descriptionc                 C   rS   r   rT   rI   r   r   r   visit_tabular_col_speci  rW   z%TextTranslator.visit_tabular_col_specc                 C   s   | j d |d  tj)Nr   colwidth)r-   r0   r   rU   rI   r   r   r   visit_colspecl  s   zTextTranslator.visit_colspecc                 C   rf   r   r   rI   r   r   r   visit_tgroupp  rh   zTextTranslator.visit_tgroupc                 C   rf   r   r   rI   r   r   r   depart_tgroups  rh   zTextTranslator.depart_tgroupc                 C   rf   r   r   rI   r   r   r   visit_theadv  rh   zTextTranslator.visit_theadc                 C   rf   r   r   rI   r   r   r   depart_theady  rh   zTextTranslator.depart_theadc                 C      | j d d S )Nsepr-   r0   rI   r   r   r   visit_tbody|  r   zTextTranslator.visit_tbodyc                 C   rf   r   r   rI   r   r   r   depart_tbody  rh   zTextTranslator.depart_tbodyc                 C   s   | j g  d S r   r   rI   r   r   r   	visit_row  r   zTextTranslator.visit_rowc                 C   rf   r   r   rI   r   r   r   
depart_row  rh   zTextTranslator.depart_rowc                 C   s&   d|v sd|v rt d| d d S )NZmorerowsZmorecolsz1Column or row spanning cells are not implemented.r   )NotImplementedErrorr4   rI   r   r   r   visit_entry  s   zTextTranslator.visit_entryc                    s>    j  fdd j D } j   jd | d S )Nc                 3   s     | ]} j |d  V  qdS )r>   N)r(   r6   rr   r   r   r   rQ     s    z.TextTranslator.depart_entry.<locals>.<genexpr>r/   )r(   r6   r)   r?   r*   r-   r0   )r   rJ   r   r   r   r   depart_entry  s    
zTextTranslator.depart_entryc                 C   s$   | j rtd| d g g| _ d S )Nz Nested tables are not supported.r   )r-   r   r4   rI   r   r   r   visit_table  s   
zTextTranslator.visit_tablec                    s   j dd  }g }j d }|d d   d}|D ]=}|dkr#t|}qg }t|D ]&\}}	t|	|| d}
|
r?ttt|
}nd}t | | |< ||
 q)|| qd fdd	} fdd	}t|D ]\}}|rx||krx|d
 n|d || qi|d d _ jdd d S )Nr>   r   r   r5   -c                    sF   dg} D ]}| | |d   | d qd|j  d S )N+   r   )r0   r1   r6   r(   )rv   outr   Z
realwidthsr   r   r   writesep  s
   z-TextTranslator.depart_table.<locals>.writesepc              	      s   t |  }|D ]:}dg}t|D ]%\}}|r$|d| | d   n|d | d   |d qd|j  qd S )N|rM   r>   r   r   )zip	enumerater0   r   r1   r6   r(   )rowrO   rP   r   icellr   r   r   writerow  s   z-TextTranslator.depart_table.<locals>.writerow=Fr   )r   )r-   ru   r   r   r   mapr0   rF   )r   rJ   rO   Z
fmted_rowsZ	colwidths	separatorrP   cellsr   r   parZmaxwidthr   r   r   r   r   r   depart_table  s6   



zTextTranslator.depart_tablec                 C   s>   |  d | ddd |jd jD d  |   tj)Nr   r   c                 s   s    | ]}|  V  qd S r   )ro   )rN   nr   r   r   rQ     r   z,TextTranslator.visit_acks.<locals>.<genexpr>.)r4   r1   r6   r   rF   r   rU   rI   r   r   r   
visit_acks  s   
zTextTranslator.visit_acksc                 C   s4   d|j v r| td|d   | td tj)NZaltz[image: %s]z[image])Z
attributesr1   _r   rU   rI   r   r   r   visit_image  s   
zTextTranslator.visit_imagec                 C   s4   t | j}| d | dt|   |   tj)Nr   r   )r@   r*   r4   r1   r7   rF   r   rU   )r   rJ   r3   r   r   r   visit_transition  s
   

zTextTranslator.visit_transitionc                 C   r   r.   r+   r0   rI   r   r   r   visit_bullet_list  r   z TextTranslator.visit_bullet_listc                 C      | j   d S r   r+   r?   rI   r   r   r   depart_bullet_list  rL   z!TextTranslator.depart_bullet_listc                 C   r   r$   r   rI   r   r   r   visit_enumerated_list  r   z$TextTranslator.visit_enumerated_listc                 C   r   r   r   rI   r   r   r   depart_enumerated_list  rL   z%TextTranslator.depart_enumerated_listc                 C   r   )Nr   rI   r   r   r   visit_definition_list  r   z$TextTranslator.visit_definition_listc                 C   r   r   r   rI   r   r   r   depart_definition_list  rL   z%TextTranslator.depart_definition_listc                 C   s`   | j d dkr| d d S | j d dkrd S | j d  d7  < | tt| j d d  d S )Nr/   r   r   r>   )r+   r4   ru   strrI   r   r   r   visit_list_item  s    zTextTranslator.visit_list_itemc                 C   sN   | j d dkr| jdd d d S | j d dkrd S | jd| j d  d d d S )Nr/   z* )rC   r;   r   z%s. )r+   rF   rI   r   r   r   depart_list_item  s
   zTextTranslator.depart_list_itemc                 C   s"   t |dkot|d tj| _d S )Nr   r>   )ru   rm   r   
classifier_li_has_classifierrI   r   r   r   visit_definition_list_item  s   z)TextTranslator.visit_definition_list_itemc                 C   rf   r   r   rI   r   r   r   depart_definition_list_item
  rh   z*TextTranslator.depart_definition_list_itemc                 C   rG   r$   rH   rI   r   r   r   
visit_term  rL   zTextTranslator.visit_termc                 C   s   | j s| jd d d S d S Nr;   )r  rF   rI   r   r   r   depart_term  s   zTextTranslator.depart_termc                 C   s   |  d tj)Nr   )r1   r   rU   rI   r   r   r   visit_termsep  s   
zTextTranslator.visit_termsepc                 C   rG   )Nz : rz   rI   r   r   r   visit_classifier  rL   zTextTranslator.visit_classifierc                 C   s   | j d d d S r  r`   rI   r   r   r   depart_classifier  r   z TextTranslator.depart_classifierc                 C   r_   r   rH   rI   r   r   r   visit_definition  rb   zTextTranslator.visit_definitionc                 C   r_   r   r`   rI   r   r   r   depart_definition!  rb   z TextTranslator.depart_definitionc                 C   rf   r   r   rI   r   r   r   visit_field_list$  rh   zTextTranslator.visit_field_listc                 C   rf   r   r   rI   r   r   r   depart_field_list'  rh   z TextTranslator.depart_field_listc                 C   rf   r   r   rI   r   r   r   visit_field*  rh   zTextTranslator.visit_fieldc                 C   rf   r   r   rI   r   r   r   depart_field-  rh   zTextTranslator.depart_fieldc                 C   rG   r$   rH   rI   r   r   r   visit_field_name0  rL   zTextTranslator.visit_field_namec                 C   s   |  d | jd d d S )N:r  rd   rI   r   r   r   depart_field_name3  s   
z TextTranslator.depart_field_namec                 C   r_   r   rH   rI   r   r   r   visit_field_body7  rb   zTextTranslator.visit_field_bodyc                 C   r_   r   r`   rI   r   r   r   depart_field_body:  rb   z TextTranslator.depart_field_bodyc                 C   rf   r   r   rI   r   r   r   visit_centered=  rh   zTextTranslator.visit_centeredc                 C   rf   r   r   rI   r   r   r   depart_centered@  rh   zTextTranslator.depart_centeredc                 C   rf   r   r   rI   r   r   r   visit_hlistC  rh   zTextTranslator.visit_hlistc                 C   rf   r   r   rI   r   r   r   depart_hlistF  rh   zTextTranslator.depart_hlistc                 C   rf   r   r   rI   r   r   r   visit_hlistcolI  rh   zTextTranslator.visit_hlistcolc                 C   rf   r   r   rI   r   r   r   depart_hlistcolL  rh   zTextTranslator.depart_hlistcolc                 C   rG   r$   rH   rI   r   r   r   visit_admonitionO  rL   zTextTranslator.visit_admonitionc                 C   r_   r   r`   rI   r   r   r   depart_admonitionR  rb   z TextTranslator.depart_admonitionc                 C   rG   r$   rH   rI   r   r   r   visit_versionmodifiedU  rL   z$TextTranslator.visit_versionmodifiedc                 C   r_   r   r`   rI   r   r   r   depart_versionmodifiedX  rb   z%TextTranslator.depart_versionmodifiedc                 C   r_   r   rH   rI   r   r   r   visit_literal_block[  rb   z"TextTranslator.visit_literal_blockc                 C   r   NFr   r`   rI   r   r   r   depart_literal_block^  r   z#TextTranslator.depart_literal_blockc                 C   rG   r$   rH   rI   r   r   r   visit_doctest_blocka  rL   z"TextTranslator.visit_doctest_blockc                 C   r   r#  r`   rI   r   r   r   depart_doctest_blockd  r   z#TextTranslator.depart_doctest_blockc                 C   rG   r$   rH   rI   r   r   r   visit_line_blockg  rL   zTextTranslator.visit_line_blockc                 C   r   r#  r`   rI   r   r   r   depart_line_blockj  r   z TextTranslator.depart_line_blockc                 C   rf   r   r   rI   r   r   r   
visit_linem  rh   zTextTranslator.visit_linec                 C   rf   r   r   rI   r   r   r   depart_linep  rh   zTextTranslator.depart_linec                 C   r_   r   rH   rI   r   r   r   visit_block_quotes  rb   z TextTranslator.visit_block_quotec                 C   r_   r   r`   rI   r   r   r   depart_block_quotev  rb   z!TextTranslator.depart_block_quotec                 C   rf   r   r   rI   r   r   r   visit_compact_paragraphy  rh   z&TextTranslator.visit_compact_paragraphc                 C   rf   r   r   rI   r   r   r   depart_compact_paragraph|  rh   z'TextTranslator.depart_compact_paragraphc                 C   rG   r$   rH   rI   r   r   r   visit_paragraph  rL   zTextTranslator.visit_paragraphc                 C   r_   r   r`   rI   r   r   r   depart_paragraph  rb   zTextTranslator.depart_paragraphc                 C   rS   r   rT   rI   r   r   r   visit_target  rW   zTextTranslator.visit_targetc                 C   rS   r   rT   rI   r   r   r   visit_index  rW   zTextTranslator.visit_indexc                 C   rS   r   rT   rI   r   r   r   visit_substitution_definition  rW   z,TextTranslator.visit_substitution_definitionc                 C   rf   r   r   rI   r   r   r   visit_pending_xref  rh   z!TextTranslator.visit_pending_xrefc                 C   rf   r   r   rI   r   r   r   depart_pending_xref  rh   z"TextTranslator.depart_pending_xrefc                 C   rf   r   r   rI   r   r   r   visit_reference  rh   zTextTranslator.visit_referencec                 C   rf   r   r   rI   r   r   r   depart_reference  rh   zTextTranslator.depart_referencec                 C   rf   r   r   rI   r   r   r   visit_download_reference  rh   z'TextTranslator.visit_download_referencec                 C   rf   r   r   rI   r   r   r   depart_download_reference  rh   z(TextTranslator.depart_download_referencec                 C   rG   N*rz   rI   r   r   r   visit_emphasis  rL   zTextTranslator.visit_emphasisc                 C   rG   r:  rz   rI   r   r   r   depart_emphasis  rL   zTextTranslator.depart_emphasisc                 C   rG   r:  rz   rI   r   r   r   visit_literal_emphasis  rL   z%TextTranslator.visit_literal_emphasisc                 C   rG   r:  rz   rI   r   r   r   depart_literal_emphasis  rL   z&TextTranslator.depart_literal_emphasisc                 C   rG   Nz**rz   rI   r   r   r   visit_strong  rL   zTextTranslator.visit_strongc                 C   rG   r@  rz   rI   r   r   r   depart_strong  rL   zTextTranslator.depart_strongc                 C   rG   )Nr   rz   rI   r   r   r   visit_abbreviation  rL   z!TextTranslator.visit_abbreviationc                 C   s$   | dr| d|d   d S d S )NZexplanationz (%s))hasattrr1   rI   r   r   r   depart_abbreviation  s   
z"TextTranslator.depart_abbreviationc                 C   rG   r:  rz   rI   r   r   r   visit_title_reference  rL   z$TextTranslator.visit_title_referencec                 C   rG   r:  rz   rI   r   r   r   depart_title_reference  rL   z%TextTranslator.depart_title_referencec                 C   rG   N"rz   rI   r   r   r   visit_literal  rL   zTextTranslator.visit_literalc                 C   rG   rH  rz   rI   r   r   r   depart_literal  rL   zTextTranslator.depart_literalc                 C   rG   )Nr   rz   rI   r   r   r   visit_subscript  rL   zTextTranslator.visit_subscriptc                 C   rf   r   r   rI   r   r   r   depart_subscript  rh   zTextTranslator.depart_subscriptc                 C   rG   )Nrq   rz   rI   r   r   r   visit_superscript  rL   z TextTranslator.visit_superscriptc                 C   rf   r   r   rI   r   r   r   depart_superscript  rh   z!TextTranslator.depart_superscriptc                 C      |  d|   tjNz[%s]r1   ro   r   rU   rI   r   r   r   visit_footnote_reference     z'TextTranslator.visit_footnote_referencec                 C   rP  rQ  rR  rI   r   r   r   visit_citation_reference  rT  z'TextTranslator.visit_citation_referencec                 C   s   |  |  d S r   )r1   ro   rI   r   r   r   
visit_Text  r]   zTextTranslator.visit_Textc                 C   rf   r   r   rI   r   r   r   depart_Text  rh   zTextTranslator.depart_Textc                 C   rf   r   r   rI   r   r   r   visit_generated  rh   zTextTranslator.visit_generatedc                 C   rf   r   r   rI   r   r   r   depart_generated  rh   zTextTranslator.depart_generatedc                 C   rf   r   r   rI   r   r   r   visit_inline  rh   zTextTranslator.visit_inlinec                 C   rf   r   r   rI   r   r   r   depart_inline  rh   zTextTranslator.depart_inlinec                 C   rG   )Nz>>rz   rI   r   r   r   visit_problematic  rL   z TextTranslator.visit_problematicc                 C   rG   )Nz<<rz   rI   r   r   r   depart_problematic  rL   z!TextTranslator.depart_problematicc                 C   s*   |  d | d|   |   tj)Nr   z<SYSTEM MESSAGE: %s>)r4   r1   ro   rF   r   rU   rI   r   r   r   visit_system_message  s   
z#TextTranslator.visit_system_messagec                 C   rS   r   rT   rI   r   r   r   visit_comment  rW   zTextTranslator.visit_commentc                 C   rS   r   rT   rI   r   r   r   
visit_meta  s   zTextTranslator.visit_metac                 C   s*   d| dd v r| j|  tj)Nr   formatr   )getsplitr    r0   ro   r   rU   rI   r   r   r   	visit_raw  s   zTextTranslator.visit_rawc                 C   rG   )Nr   rH   rI   r   r   r   _visit_admonition  rL   z TextTranslator._visit_admonitionc                    s    fdd}|S )Nc                    s   | j   d d d S )Nrl   r   )rF   
capitalizerI   r   r   r   r    r2   zATextTranslator._make_depart_admonition.<locals>.depart_admonitionr   )r   r  r   rg  r   _make_depart_admonition  s   z&TextTranslator._make_depart_admonitionZ	attentionZcautionZdangererrorhintZ	importantZnoteZtipwarningc                 C   s   t d|jj )NzUnknown node: )r   	__class__r   rI   r   r   r   unknown_visit  r   zTextTranslator.unknown_visit)r   r   r   rY   r   r1   	STDINDENTr4   rF   rK   rR   rV   r[   r\   r^   ra   Zvisit_sidebarZdepart_sidebarrc   re   rg   ri   rj   rk   rp   rw   rx   ry   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r<  r=  r>  r?  rA  rB  rC  rE  rF  rG  rJ  rK  rL  rM  rN  rO  rS  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  rd  re  rh  Zvisit_attentionZdepart_attentionZvisit_cautionZdepart_cautionZvisit_dangerZdepart_dangerZvisit_errorZdepart_errorZ
visit_hintZdepart_hintZvisit_importantZdepart_importantZ
visit_noteZdepart_noteZ	visit_tipZ
depart_tipZvisit_warningZdepart_warningrm  r   r   r   r   r   5   s   
 	3









r   )r   r&   r	   textwrapdocutilsr   r   r   r7   rn  r   r   r   r%   r   r   r   r   r   <module>   s   	
