
    Feh                    v   d Z ddlmZ ddlZddlZddlZddlZddlmZm	Z	m
Z
 ddlmZmZ ddlmZmZmZ ddlmZmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZ erddlmZm Z  ddl!m"Z"  G d d      Z# G d d      Z$ G d dejJ                        Z%dZ&dZ'e&fddZ( G d dejR                        Z* G d de      Z+y)z&Custom docutils writer for plain text.    )annotationsN)	GeneratorIterableSequence)chaingroupby)TYPE_CHECKINGAnycast)nodeswriterscolumn_width)addnodes)_admonitionlabels)SphinxTranslator)ElementText)TextBuilderc                  :    e Zd ZdZdd	dZd
dZddZddZddZy)CellzVRepresents a cell in a table.
    It can span multiple columns or multiple lines.
    c                X    || _         g | _        || _        || _        d | _        d | _        y N)textwrappedrowspancolspancolrow)selfr   r   r   s       5/usr/lib/python3/dist-packages/sphinx/writers/text.py__init__zCell.__init__   s,    	"$##    c                    d| j                   d| j                   d| j                   d| j                   d| j                   dS )Nz<Cell  v/>)r   r    r   r   r   r!   s    r"   __repr__zCell.__repr__%   s>    		}AdhhZqaz4<<.XYZZr$   c                D    t        | j                  | j                  f      S r   )hashr   r    r*   s    r"   __hash__zCell.__hash__(   s    TXXtxx())r$   c                `    | j                   dk7  xr | j                  d uxr | j                  d uS N )r   r   r    r*   s    r"   __bool__zCell.__bool__+   s,    yyBP4884#7PDHHD<PPr$   c                :    t        | j                  |      | _        y r   )my_wrapr   r   )r!   widths     r"   wrapz	Cell.wrap.   s    tyy%0r$   N)r1      r7   )r   strr   intr   r9   returnNoner:   r8   )r:   r9   )r:   bool)r5   r9   r:   r;   )	__name__
__module____qualname____doc__r#   r+   r.   r2   r6    r$   r"   r   r      s"    $[*Q1r$   r   c                      e Zd ZdZd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edd       ZddZddZddZy)Tableaj  Represents a table, handling cells that can span multiple lines
    or rows, like::

       +-----------+-----+
       | AAA       | BBB |
       +-----+-----+     |
       |     | XXX |     |
       |     +-----+-----+
       | DDD | CCC       |
       +-----+-----------+

    This class can be used in two ways, either:

    - With absolute positions: call ``table[line, col] = Cell(...)``,
      this overwrites any existing cell(s) at these positions.

    - With relative positions: call the ``add_row()`` and
      ``add_cell(Cell(...))`` as needed.

    Cells spanning multiple rows or multiple columns (having a
    colspan or rowspan greater than one) are automatically referenced
    by all the table cells they cover. This is a useful
    representation as we can simply check
    ``if self[x, y] is self[x, y+1]`` to recognize a rowspan.

    Colwidth is not automatically computed, it has to be given, either
    at construction time, or during the table construction.

    Example usage::

       table = Table([6, 6])
       table.add_cell(Cell("foo"))
       table.add_cell(Cell("bar"))
       table.set_separator()
       table.add_row()
       table.add_cell(Cell("FOO"))
       table.add_cell(Cell("BAR"))
       print(table)
       +--------+--------+
       | foo    | bar    |
       |========|========|
       | FOO    | BAR    |
       +--------+--------+

    Nc                R    g | _         d| _        ||ng | _        d| _        d| _        y Nr   )lines	separatorcolwidthcurrent_linecurrent_col)r!   rI   s     r"   r#   zTable.__init__`   s.    ')
080DH"r$   c                <    | xj                   dz  c_         d| _        y)zAdd a row to the table, to use with ``add_cell()``.  It is not needed
        to call ``add_row()`` before the first ``add_cell()``.
        r7   r   N)rJ   rK   r*   s    r"   add_rowzTable.add_rowg   s     	Qr$   c                8    t        | j                        | _        y)z*Sets the separator below the current line.N)lenrG   rH   r*   s    r"   set_separatorzTable.set_separatorn   s    TZZr$   c                   | | j                   | j                  f   r1| xj                  dz  c_        | | j                   | j                  f   r1|| | j                   | j                  f<   | xj                  |j                  z  c_        y)zAdd a cell to the current line, to use with ``add_row()``.  To add
        a cell spanning multiple lines or rows, simply set the
        ``cell.colspan`` or ``cell.rowspan`` BEFORE inserting it into
        the table.
        r7   N)rJ   rK   r   )r!   cells     r"   add_cellzTable.add_cellr   sy     4$$d&6&667! 4$$d&6&66748T 0 001DLL(r$   c                    |\  }}| j                  |dz          | j                  |dz          | j                  |   |   S Nr7   )_ensure_has_line_ensure_has_columnrG   )r!   posliner   s       r"   __getitem__zTable.__getitem__}   sC    	cdQh'a(zz$$$r$   c                :   |\  }}| j                  ||j                  z          | j                  ||j                  z          t	        |j                        D ]B  }t	        |j                        D ](  }|| j
                  ||z      ||z   <   ||_        ||_        * D y r   )rV   r   rW   r   rangerG   r    r   )r!   rX   rR   rY   r   dlinedcols          r"   __setitem__zTable.__setitem__   s    	cdT\\12dll 234<<( 	Edll+ 7;

4%<(t4	r$   c                    t        | j                        |k  r5| j                  j                  g        t        | j                        |k  r4y y r   )rO   rG   append)r!   rY   s     r"   rV   zTable._ensure_has_line   s6    $**o$JJb! $**o$r$   c                    | j                   D ]9  }t        |      |k  s|j                  t                      t        |      |k  r(; y r   )rG   rO   ra   r   )r!   r   rY   s      r"   rW   zTable._ensure_has_column   s;    JJ 	$Dd)c/DF# d)c/	$r$   c                F    dj                  d | j                  D              S )N
c              3  2   K   | ]  }t        |        y wr   )repr).0rY   s     r"   	<genexpr>z!Table.__repr__.<locals>.<genexpr>   s     ;d;   )joinrG   r*   s    r"   r+   zTable.__repr__   s    yy;

;;;r$   c                
   |j                   |j                  d}t        |      d}t        | |j                   |j                  f   j                        D ]  }|||j                  |z      z  } ||j                  dz
  dz  z   S )zGive the cell width, according to the given source (either
        ``self.colwidth`` or ``self.measured_widths``).
        This takes into account cells spanning multiple columns.
        #Cell co-ordinates have not been setr   r7      )r    r   
ValueErrorr\   r   )r!   rR   sourcemsgr5   is         r"   
cell_widthzTable.cell_width   s    
 88txx/7CS/!tDHHdhh./778 	*AVDHHqL))E	*q(A---r$   c              #     K   t               }| j                  D ]&  }|D ]  }|s||vs| |j                  |       ! ( y wr   )setrG   add)r!   seenrY   rR   s       r"   cellszTable.cells   sI     %JJ 	#D #D,JHHTN#	#s   !AAAc                2   | j                   dd | _        | j                  D ]  }|j                  | j	                  || j                                |j
                  s<|j                  |j                  d}t        |      t        j                  t        d |j
                  D              |j                  z        }t        |j                  |j                  |j                  z         D ](  }t        | j                  |   |      | j                  |<   *  y)zCall ``cell.wrap()`` on all cells, and measure each column width
        after wrapping (result written in ``self.measured_widths``).
        Nr5   rl   c              3  2   K   | ]  }t        |        y wr   r   rg   xs     r"   rh   zTable.rewrap.<locals>.<genexpr>   s     !Ha,q/!Hri   )rI   measured_widthsrw   r6   rr   r   r    r   rn   mathceilmaxr   r\   )r!   rR   rp   r5   r   s        r"   rewrapzTable.rewrap   s      $}}Q/JJ 		RDIIDOOD$--@IA<<xx488#3; o%IIc!H4<<!HH4<<WXETXXtxx$,,'>? R,/0D0DS0I5,Q$$S)R		Rr$   c                V    d}|D ]!  }t        |t        |j                              }# |S )zfFor a given line, compute the number of physical lines it spans
        due to text wrapping.
        r7   )r   rO   r   )r!   rY   physical_linesrR   s       r"   physical_lines_for_linezTable.physical_lines_for_line   s5      	DD T\\1BCN	Dr$   c                X    g } j                          d	d
 fd}t         j                        D ]P  \  }} j                  r(| j                  k(  r|j	                   |d|             n|j	                   |d|             t         j                  |            D ]  }dg}t        |      D ]  \  }}|j                  |k7  r||j                  k7  rd}	n*|t        |j                        k\  rd}	n|j                  |   }	t        |	      t        |	      z
  }
|j	                  d|	j                   j                  | j                        dz   |
z         z   dz           |j	                  dj                  |              S |j	                   |d             dj                  |      S )N-c           	        g }t        
j                        D ]L  \  }}|.|dkD  r)
||f   
|dz
  |f   u r|j                  d|dz   z         6|j                  | |dz   z         N |d   d   dk(  rdnd}|d	   d   dk(  rdnd}t        ||dd       D cg c]  \  }}|d   dk(  s|d   dk(  rdnd }	}}|	j                  |       |d
j	                  t        j                  t        ||	                  z   S c c}}w )zfCalled on the line *before* lineno.
            Called with no *lineno* for the last sep.
            Nr   r7   r&      r   +|r1   )	enumerater}   ra   ziprj   r   from_iterable)charlinenooutcolnor5   headtailleftrightgluer!   s             r"   writesepzTable.__str__.<locals>.writesep   s-     C )$*>*> ? 3u&QJ'4
E0A+BBJJseai01JJtuqy123 a&)s*3Db'!*+3D $'sCG#4D% Aw#~qScAD  KK"''%"5"5c#tn"EFFFs   C;=r   r1   r&   r7   rd   )r   N)r   r8   r   z
int | Noner:   r8   )r   r   rG   rH   ra   r\   r   r   r    rO   r   r   ljustrr   r}   rj   )r!   r   r   r   rY   physical_linelinestrr   rR   physical_text
adjust_lens   `          r"   __str__zTable.__str__   s   	G. &djj1 	-LFD~~&DNN":

8C01

8C01!&t'C'CD'I!J -%#,T? KE4xx5( )(*&#dll*;;(*(,](C!$]!3l=6Q!QJNN%++ OOD$2F2FG!KjX     

2777+,%-	-0 	

8C=!yy~r$   r   )rI   zlist[int] | Noner:   r;   r:   r;   )rR   r   r:   r;   )rX   tuple[int, int]r:   r   )rX   r   rR   r   r:   r;   )rY   r9   r:   r;   )r   r9   r:   r;   r<   )rR   r   ro   z	list[int]r:   r9   )r:   zGenerator[Cell, None, None])rY   z
list[Cell]r:   r9   )r>   r?   r@   rA   r#   rM   rP   rS   rZ   r_   rV   rW   r+   rr   propertyrw   r   r   r   rB   r$   r"   rD   rD   2   s^    ,Z)	)%"$
<. # #R 4r$   rD   c                  l     e Zd ZdZ ej
                  d      ZddZddZd	 fdZ		 	 	 	 	 	 d
dZ
 xZ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))c                   g }| j                   dk  rt        d| j                   z        |j                          |rg }d}|r| j                  }n| j                  }| j                   t        |      z
  }| j                  r|d   j                         dk(  r|r|d= |r?t        |d         }||z   |k  r%|j                  |j                                ||z  }nn|r?|r%t        |d         |kD  r| j                  ||||       | j                  r|r|d   j                         dk(  r|d= |r#|j                  |dj                  |      z          |r|S )z_wrap_chunks(chunks : [string]) -> [string]

        The original _wrap_chunks uses len() to calculate width.
        This method respects wide/fullwidth characters for width adjustment.
        r   zinvalid width %r (must be > 0)r   r1   )r5   rn   reversesubsequent_indentinitial_indentr   drop_whitespacestripra   pop_handle_long_wordrj   )r!   chunksrG   cur_linecur_lenindentr5   ls           r"   _wrap_chunkszTextWrapper._wrap_chunks  sM    ::?=

JKKHG//,,JJf!55E##r
(8(8(:b(@U2J ,Q;%'OOFJJL1qLG   ,vbz2U:&&vx%H##Xb\5G5G5IR5ORLVbggh&778? B r$   c                ~    d}t        |      D ]*  \  }}|t        |      z  }||kD  s|d|dz
   ||dz
  d fc S  |dfS )z_break_word(word : string, space_left : int) -> (string, string)

        Break line by unicode width instead of len(word).
        r   Nr7   r1   )r   r   )r!   word
space_lefttotalrq   cs         r"   _break_wordzTextWrapper._break_word7  s`    
 dO 	2DAq\!_$Ez!FQU|T!a%&\11	2 Rxr$   c           	          d fd}g } ||      D ]`  }t        |t              D ]K  \  }}|dk(  r'|j                   |dj                  |                   2|j                  t	        |             M b |S )z_split(text : string) -> [string]

        Override original method that only split by 'wordsep_re'.
        This '_split' splits wide-characters into chunks by one character.
        c                *    t         t          |       S r   )superr   _split)t	__class__r!   s    r"   splitz!TextWrapper._split.<locals>.splitI  s    d2155r$   r7   r1   )r   r8   r:   	list[str])r   r   extendrj   list)r!   r   r   r   chunkwgr   s   `      r"   r   zTextWrapper._splitC  sq    	64[ 	+E|4 +16MM%
"34MM$q'*	+	+ r$   c                    t        ||z
  d      }| j                  r/| j                  |d   |      \  }}|j                  |       ||d<   y|s |j                  |j	                                yy)z_handle_long_word(chunks : [string],
                             cur_line : [string],
                             cur_len : int, width : int)

        Override original method for using self._break_word() instead of slice.
        r7   r   N)r   break_long_wordsr   ra   r   )r!   reversed_chunksr   r   r5   r   r   rs           r"   r   zTextWrapper._handle_long_wordT  sk     !,
  ##OB$7DDAqOOA"#OBOOO//12 r$   )r   r   r:   r   )r   r8   r   r9   r:   ztuple[str, str])r   r8   r:   r   )
r   r   r   r   r   r9   r5   r9   r:   r;   )r>   r?   r@   rA   recompile
wordsep_rer   r   r   r   __classcell__r   s   @r"   r   r      sH    E	/0J-^
"3#&3/237;3r$   r   F   rm   c                >    t        dd|i|}|j                  |       S )Nr5   rB   )r   r6   )r   r5   kwargsr   s       r"   r4   r4   j  s"    *%*6*A66$<r$   c                  J     e Zd ZU dZdZi Zded<   ded<   d	 fdZd
dZ xZ	S )
TextWriter)r   )zNo options here.r1   rB   zdict[str, Any]settings_defaultsr8   outputc                0    t         |           || _        y r   )r   r#   builder)r!   r   r   s     r"   r#   zTextWriter.__init__v  s    r$   c                    | j                   j                  | j                  | j                         }| j                  j                  |       t	        t
        |      j                  | _        y r   )r   create_translatordocument	walkaboutr   TextTranslatorbodyr   )r!   visitors     r"   	translatezTextWriter.translatez  sF    ,,00M(>7388r$   )r   r   r:   r;   r   )
r>   r?   r@   	supportedsettings_specr   __annotations__r#   r   r   r   s   @r"   r   r   o  s'    I0M(*~*K9r$   r   c                      e Zd ZU ded<   dȈ fdZddZefddZ	 d	 	 	 	 	 	 	 ddZddZ	ddZ
dd	Zdd
ZddZddZeZeZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZ ddZ!ddZ"ddZ#dd Z$dd!Z%dd"Z&dd#Z'dd$Z(dd%Z)dd&Z*dd'Z+dd(Z,dd)Z-dd*Z.dd+Z/	 	 	 	 	 	 	 	 	 	 dd,Z0dd-Z1dd.Z2dd/Z3dd0Z4dd1Z5dd2Z6dd3Z7dd4Z8dd5Z9dd6Z:dd7Z;dd8Z<dd9Z=dd:Z>dd;Z?dd<Z@dd=ZAdd>ZBdd?ZCdd@ZDddAZEddBZFddCZGddDZHddEZIddFZJddGZKddHZLddIZMddJZNddKZOddLZPddMZQddNZRddOZSddPZTddQZUddRZVddSZWddTZXddUZYddVZZddWZ[ddXZ\ddYZ]ddZZ^dd[Z_dd\Z`dd]Zadd^Zbdd_Zcdd`ZdddaZeddbZfddcZgdddZhddeZiddfZjddgZkddhZlddiZmddjZnddkZoddlZpddmZqddnZrddoZsddpZtddqZuddrZvddsZwddtZxdduZyddvZzddwZ{ddxZ|ddyZ}ddzZ~dd{Zdd|Zdd}Zdd~ZddZddZddZddZddZddZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddÄZddĄZddńZddƄZddǄZ߈ xZS )r   r   r   c                   t         |   ||       | j                  j                  }|dk(  rd| _        n"|dk(  rt
        j                  | _        nd| _        | j                  j                  | _        | j                  j                  | _
        | j                  j                  | _        g g| _        dg| _        g | _        d| _        d| _        |  g | _        y )Nwindowsz
nativerd   r   )r   r#   configtext_newlinesnloslineseptext_sectioncharssectioncharstext_add_secnumbersadd_secnumberstext_secnumber_suffixsecnumber_suffixstatesstateindentlist_countersectionlevellineblocklevelcontext)r!   r   r   newlinesr   s       r"   r#   zTextTranslator.__init__  s    7+;;,,y DG!jjDGDG KK99"kk== $ A A@Bt3')"$	r$   c                D    | j                   d   j                  d|f       y Nr   )r   ra   )r!   r   s     r"   add_textzTextTranslator.add_text  s    BDz*r$   c                p    | j                   j                  g        | j                  j                  |       y r   )r   ra   r   )r!   r   s     r"   	new_statezTextTranslator.new_state  s(    2'r$   c                J  
 | j                   j                         }t        | j                        | j                  j                         
g g d
fd}|D ];  \  }}|dk(  rj	                  |        |        j	                  
|z   |f       g =  |        |^r\d   d   
z
  }d   d   dgk(  rj                  d||gf       n/|d   d   j                  d      z   }	j                  d||	gf       | j                   d   j                         y )Nc                     sy r$t        dj                        t        z
        } ndj                        j                         } r| z  } j	                  | f       y )Nr1   ry   )r4   rj   MAXWIDTH
splitlinesra   )resendr   	maxindentresulttoformatr6   s    r"   	do_formatz+TextTranslator.end_state.<locals>.do_format  sY    bggh/x)7KLggh'224s
MM63-(r$   r   r   r7   r1   r   )r   r   sumr   ra   insertr   )r!   r6   r  firstcontentr  
itemindentitem	newindentr   r   r  r  r  s    ``       @@@@r"   	end_statezTextTranslator.end_state  s'    ++//#(()	!!%%'.0 		) 		) !( 	JR%v
2D9:	 	q	!v-Iay|t#a)eW!56vay|//22a)dV!45Bv&r$   c                &    | j                  d       y rF   r   r!   nodes     r"   visit_documentzTextTranslator.visit_document      qr$   c                    | j                          | j                  j                  d | j                  d   D              | _        y )Nc              3  H   K   | ]  \  }}|D ]  }|xr d |z  |z      yw)r&   NrB   )rg   r   rG   rY   s       r"   rh   z1TextTranslator.depart_document.<locals>.<genexpr>  s@      !4%2VU-2!4%) "&!?3<$+>!? !4!? !4s    "r   )r  r   rj   r   r   r  s     r"   depart_documentzTextTranslator.depart_document  s5    GGLL !46:kk!n!4 4	r$   c                j    | j                   | j                     | _        | xj                  dz  c_        y rU   )r   r   _title_charr  s     r"   visit_sectionzTextTranslator.visit_section  s,    ,,T->->?Qr$   c                .    | xj                   dz  c_         y rU   )r   r  s     r"   depart_sectionzTextTranslator.depart_section  s    Qr$   c                &    | j                  d       y rF   r  r  s     r"   visit_topiczTextTranslator.visit_topic  r  r$   c                $    | j                          y r   r  r  s     r"   depart_topiczTextTranslator.depart_topic      r$   c                H    | j                  d       | j                  d       y )Nr   z-[ )r   r   r  s     r"   visit_rubriczTextTranslator.visit_rubric  s    qer$   c                F    | j                  d       | j                          y )Nz ]-r   r  r  s     r"   depart_rubriczTextTranslator.depart_rubric  s    er$   c                     y r   rB   r  s     r"   visit_compoundzTextTranslator.visit_compound      r$   c                     y r   rB   r  s     r"   depart_compoundzTextTranslator.depart_compound  r+  r$   c                     y r   rB   r  s     r"   visit_glossaryzTextTranslator.visit_glossary  r+  r$   c                     y r   rB   r  s     r"   depart_glossaryzTextTranslator.depart_glossary  r+  r$   c                    t        |j                  t        j                        r2| j	                  |j                         dz          t        j                  | j                  d       y )N: r   )
isinstanceparentr   
Admonitionr   astextSkipNoder   r  s     r"   visit_titlezTextTranslator.visit_title  sC    dkk5#3#34MM$++-$./.. qr$   c                j   t        |j                  t        j                        rd|j                  d   d   z   }| j                  j
                  j                  |      }|%| j                  j
                  j                  d      }|,dj                  t        t        |            | j                  z   S y)N#idsr   r1   .)r4  r5  r   sectionr   
secnumbersgetrj   mapr8   r   )r!   r  
anchornamenumberss       r"   get_section_number_stringz(TextTranslator.get_section_number_string  s    dkk5==1t{{51!44Jll--11*=G,,1155b9"xxC 12T5J5JJJr$   c                4   t        |j                  t        j                        r| j                  }nd}d}dj                  d | j                  j                         D              }| j                  r| j                  |      |z   }| j                  j                          d|d|t        |      z  z  dg}t        | j                        dk(  r,t        | j                  d         dk(  r|j                  d       | j                  d   j                  d|f       y )N^r1   c              3  8   K   | ]  }|d    dk(  s|d     yw)r   r   r7   NrB   r{   s     r"   rh   z.TextTranslator.depart_title.<locals>.<genexpr>  s     E!A$"*qtEs   
z%sr   r   r   )r4  r5  r   r>  r  rj   r   r   r   rD  r   r   rO   ra   )r!   r  r   r   titles        r"   depart_titlezTextTranslator.depart_title	  s    dkk5==1##DDwwET[[__%6EE11$7$>DT44,t*<#<=rBt{{q SR%9Q%>IIaLB5z*r$   c                     y r   rB   r  s     r"   visit_subtitlezTextTranslator.visit_subtitle  r+  r$   c                     y r   rB   r  s     r"   depart_subtitlezTextTranslator.depart_subtitle  r+  r$   c                &    | j                  d       y )Nz-- r   r  s     r"   visit_attributionz TextTranslator.visit_attribution      er$   c                     y r   rB   r  s     r"   depart_attributionz!TextTranslator.depart_attribution"  r+  r$   c                     y r   rB   r  s     r"   
visit_desczTextTranslator.visit_desc,  r+  r$   c                     y r   rB   r  s     r"   depart_desczTextTranslator.depart_desc/  r+  r$   c                &    | j                  d       y rF   r  r  s     r"   visit_desc_signaturez#TextTranslator.visit_desc_signature2  r  r$   c                *    | j                  dd        y )NFr6   r  r!  r  s     r"   depart_desc_signaturez$TextTranslator.depart_desc_signature5  s    Et,r$   c                     y r   rB   r  s     r"   visit_desc_signature_linez(TextTranslator.visit_desc_signature_line9  r+  r$   c                &    | j                  d       y Nrd   rO  r  s     r"   depart_desc_signature_linez)TextTranslator.depart_desc_signature_line<      dr$   c                Z    | j                          | j                  | j                         y r   )r   r   r   r  s     r"   visit_desc_contentz!TextTranslator.visit_desc_content?  s    dggr$   c                $    | j                          y r   r!  r  s     r"   depart_desc_contentz"TextTranslator.depart_desc_contentC  r#  r$   c                     y r   rB   r  s     r"   visit_desc_inlinez TextTranslator.visit_desc_inlineF  r+  r$   c                     y r   rB   r  s     r"   depart_desc_inlinez!TextTranslator.depart_desc_inlineI  r+  r$   c                     y r   rB   r  s     r"   visit_desc_namezTextTranslator.visit_desc_nameO  r+  r$   c                     y r   rB   r  s     r"   depart_desc_namezTextTranslator.depart_desc_nameR  r+  r$   c                     y r   rB   r  s     r"   visit_desc_addnamez!TextTranslator.visit_desc_addnameU  r+  r$   c                     y r   rB   r  s     r"   depart_desc_addnamez"TextTranslator.depart_desc_addnameX  r+  r$   c                     y r   rB   r  s     r"   visit_desc_typezTextTranslator.visit_desc_type[  r+  r$   c                     y r   rB   r  s     r"   depart_desc_typezTextTranslator.depart_desc_type^  r+  r$   c                &    | j                  d       y )Nz -> rO  r  s     r"   visit_desc_returnsz!TextTranslator.visit_desc_returnsa  s    fr$   c                     y r   rB   r  s     r"   depart_desc_returnsz"TextTranslator.depart_desc_returnsd  r+  r$   c                   | j                  |       d| _        d| _        d| _        d| _        |j
                  D cg c]  }t        ||       c}| _        t        | j                        | _	        d| _
        |j                  dd      | _        | j                  r| j                  j                         | _
        | j                  j                  |       yc c}w )zVisit a signature parameters or type parameters list.

        The *parameter_group* value is the type of a child node acting as a required parameter
        or as a set of contiguous optional parameters.
        Tr   , multi_line_parameter_listFN)r   is_first_paramoptional_param_levelparams_left_at_levelparam_group_indexchildrenr4  list_is_required_paramr  required_params_leftparam_separatorr@  r}  rstripr   ra   )r!   r  parameter_groupsig_open_parensig_close_parenr   s         r"   _visit_sig_parameter_listz(TextTranslator._visit_sig_parameter_listg  s     	n%"$%!$%!!" PT}}&]!z!_'E&]#$'(C(C$D!#)-2Mu)U&))#'#7#7#>#>#@D O, '^s   Cc                Z    | j                   j                         }| j                  |       y r   )r   r   r   )r!   r  r  s      r"   _depart_sig_parameter_listz)TextTranslator._depart_sig_parameter_list  s     ,,**,o&r$   c                H    | j                  |t        j                  dd       y )N())r  r   desc_parameterr  s     r"   visit_desc_parameterlistz'TextTranslator.visit_desc_parameterlist  s    &&tX-D-Dc3Or$   c                &    | j                  |       y r   r  r  s     r"   depart_desc_parameterlistz(TextTranslator.depart_desc_parameterlist      ''-r$   c                H    | j                  |t        j                  dd       y )N[])r  r   desc_type_parameterr  s     r"   visit_desc_type_parameter_listz-TextTranslator.visit_desc_type_parameter_list  s    &&tX-I-I3PSTr$   c                &    | j                  |       y r   r  r  s     r"   depart_desc_type_parameter_listz.TextTranslator.depart_desc_type_parameter_list  r  r$   c                   | j                   }|r+| j                  r| j                  dkD  s| j                          | j                  rd| _        n)|s'| j                  s| j                  | j                         | j                  dk(  r| xj                  dz  c_        n| xj                  dz  c_        | j                  |j                                | j                  | j                     }|r| j                  dz   t        | j                        k(  }| xr | j                  | j                  dz      }| j                  dkD  }|s|rZ|s|rV| j                  | j                         | j                  dd        n'| j                  r| j                  | j                         |r| xj                  dz  c_
        t        j                  )Nr   Fr7   r[  )r}  r~  r  r   r  r   r  r  r7  r  r  rO   r  r   r8  )r!   r  on_separate_lineis_requiredis_last_groupnext_is_requiredopt_param_left_at_levels          r"   visit_desc_parameterz#TextTranslator.visit_desc_parameter  s|   99T%8%8T=V=VYZ=ZNN"'D!$*C*CMM$../$$)%%*%%%*%dkkm$11$2H2HI 22Q6#d>Y>Y:ZZM!! L//0F0F0JK  '+&?&?!&C#&+=L\d223Et4&&MM$../""a'"nnr$   c                &    | j                  |       y r   )r  r  s     r"   visit_desc_type_parameterz(TextTranslator.visit_desc_type_parameter  s    !!$'r$   c           	        t        |j                  D cg c]  }t        |t        j                         c}      | _        | xj                  dz  c_        | j                  | _        | j                  r| j                  r"| j                          | j                  d       y | j                  r@| j                  | j                         | j                  d       | j                  dd        y | j                  d       | j                  | j                         | j                  dd        y | j                  d       y c c}w )Nr7   r  Fr[  )r  r  r4  r   r  r  r  max_optional_param_levelr}  r~  r   r   r  r  r  )r!   r  r   s      r"   visit_desc_optionalz"TextTranslator.visit_desc_optional  s    $'26--)A-. *4Ax7N7N)O )A %B!!!Q&!(,(A(A%))"" c" **d223c"Et4 c"d223Et4MM#-)As   !D?c                   | xj                   dz  c_         | j                  rk| j                   | j                  dz
  k(  r| j                  | j                         | j                  d       | j                   dk(  r%| j                  dd        n| j                  d       | j                   dk(  r| xj                  dz  c_        y y )Nr7   r  r   Fr[  )r  r}  r  r   r  r  r  r  s     r"   depart_desc_optionalz#TextTranslator.depart_desc_optional  s    !!Q&!)) ((D,I,IA,MMd223MM# ((A-Et4 MM#$$)""a'" *r$   c                     y r   rB   r  s     r"   visit_desc_annotationz$TextTranslator.visit_desc_annotation  r+  r$   c                     y r   rB   r  s     r"   depart_desc_annotationz%TextTranslator.depart_desc_annotation  r+  r$   c                $    | j                          y r   r  r  s     r"   visit_figurezTextTranslator.visit_figure  r#  r$   c                $    | j                          y r   r!  r  s     r"   depart_figurezTextTranslator.depart_figure  r#  r$   c                     y r   rB   r  s     r"   visit_captionzTextTranslator.visit_caption  r+  r$   c                     y r   rB   r  s     r"   depart_captionzTextTranslator.depart_caption  r+  r$   c                   | j                          g }t        t        t        j                     |      }|D ]  }|j                  |d           t        d |D              }d }|D ]  }|d   r,| j                  |d   j                  |      dz          |d   }n"| | j                  ddt        |      z  z         | j                  |j                         | j                  z           | j                  d       t        j                  )N	tokennamec              3  2   K   | ]  }t        |        y wr   rO   )rg   names     r"   rh   z6TextTranslator.visit_productionlist.<locals>.<genexpr>  s     14SY1ri   z ::=z%s    r&   Fr6   )r   r   r   r   
productionra   r   r   r   rO   r7  r   r  r   r8  )r!   r  namesproductionlistr  maxlenlastnames          r"   visit_productionlistz#TextTranslator.visit_productionlist  s    hx':':;TB( 	2JLLK01	21511( 	9J+&j5;;FCfLM%k2%h#H*=>?MM*++-78	9 	E"nnr$   c                    t        t        j                  |d         }|j                         j	                         | _        | j                  t        | j
                        dz          y )Nr   rm   )r   r   labelr7  r   	_footnoter   rO   )r!   r  r  s      r"   visit_footnotezTextTranslator.visit_footnote  sF    U[[$q'*--/s4>>*Q./r$   c                B    | j                  d| j                  z         y Nz[%s] r
  )r  r  r  s     r"   depart_footnotezTextTranslator.depart_footnote      Wt~~56r$   c                    t        |      r6t        |d   t        j                        r|d   j	                         | _        nd| _        | j                  t        | j
                        dz          y )Nr   r1   rm   )rO   r4  r   r  r7  	_citlabelr   r  s     r"   visit_citationzTextTranslator.visit_citation  sM    t9DGU[[9!!W^^-DNDNs4>>*Q./r$   c                B    | j                  d| j                  z         y r  )r  r  r  s     r"   depart_citationzTextTranslator.depart_citation  r  r$   c                "    t         j                  r   r   r8  r  s     r"   visit_labelzTextTranslator.visit_label      nnr$   c                     y r   rB   r  s     r"   visit_legendzTextTranslator.visit_legend  r+  r$   c                     y r   rB   r  s     r"   depart_legendzTextTranslator.depart_legend   r+  r$   c                     y r   rB   r  s     r"   visit_option_listz TextTranslator.visit_option_list%  r+  r$   c                     y r   rB   r  s     r"   depart_option_listz!TextTranslator.depart_option_list(  r+  r$   c                &    | j                  d       y rF   r  r  s     r"   visit_option_list_itemz%TextTranslator.visit_option_list_item+  r  r$   c                $    | j                          y r   r!  r  s     r"   depart_option_list_itemz&TextTranslator.depart_option_list_item.  r#  r$   c                    d| _         y )NT)_firstoptionr  s     r"   visit_option_groupz!TextTranslator.visit_option_group1  s
     r$   c                &    | j                  d       y )Nz     rO  r  s     r"   depart_option_groupz"TextTranslator.depart_option_group4  s    gr$   c                N    | j                   rd| _         y | j                  d       y )NFr|  )r  r   r  s     r"   visit_optionzTextTranslator.visit_option7  s     %DMM$r$   c                     y r   rB   r  s     r"   depart_optionzTextTranslator.depart_option=  r+  r$   c                     y r   rB   r  s     r"   visit_option_stringz"TextTranslator.visit_option_string@  r+  r$   c                     y r   rB   r  s     r"   depart_option_stringz#TextTranslator.depart_option_stringC  r+  r$   c                ,    | j                  |d          y )N	delimiterrO  r  s     r"   visit_option_argumentz$TextTranslator.visit_option_argumentF  s    d;'(r$   c                     y r   rB   r  s     r"   depart_option_argumentz%TextTranslator.depart_option_argumentI  r+  r$   c                     y r   rB   r  s     r"   visit_descriptionz TextTranslator.visit_descriptionL  r+  r$   c                     y r   rB   r  s     r"   depart_descriptionz!TextTranslator.depart_descriptionO  r+  r$   c                "    t         j                  r   r  r  s     r"   visit_tabular_col_specz%TextTranslator.visit_tabular_col_specR  r  r$   c                r    | j                   j                  j                  |d          t        j                  )NrI   )tablerI   ra   r   r8  r  s     r"   visit_colspeczTextTranslator.visit_colspecU  s)    

""4
#34nnr$   c                     y r   rB   r  s     r"   visit_tgroupzTextTranslator.visit_tgroupY  r+  r$   c                     y r   rB   r  s     r"   depart_tgroupzTextTranslator.depart_tgroup\  r+  r$   c                     y r   rB   r  s     r"   visit_theadzTextTranslator.visit_thead_  r+  r$   c                     y r   rB   r  s     r"   depart_theadzTextTranslator.depart_theadb  r+  r$   c                8    | j                   j                          y r   )r  rP   r  s     r"   visit_tbodyzTextTranslator.visit_tbodye  s    

  "r$   c                     y r   rB   r  s     r"   depart_tbodyzTextTranslator.depart_tbodyh  r+  r$   c                f    | j                   j                  r| j                   j                          y y r   )r  rG   rM   r  s     r"   	visit_rowzTextTranslator.visit_rowk  s$    ::JJ  r$   c                     y r   rB   r  s     r"   
depart_rowzTextTranslator.depart_rowo  r+  r$   c                    t        |j                  dd      dz   |j                  dd      dz         | _        | j                  d       y )Nmorerowsr   r7   morecols)r   r   )r   r@  entryr   r  s     r"   visit_entryzTextTranslator.visit_entryr  sB    HHZ+a/*a9PST9T

 	qr$   c                "     j                   j                   fd j                  j                         D              } j                  j                          | j
                  _         j                  j                   j
                          `y )Nc              3  Z   K   | ]"  }j                   j                  |d           $ yw)r7   N)r   rj   )rg   r|   r!   s     r"   rh   z.TextTranslator.depart_entry.<locals>.<genexpr>y  s"     J1DGGLL1.Js   (+)	r   rj   r   r   r   r  r   r  rS   r!   r  r   s   `  r"   depart_entryzTextTranslator.depart_entryx  s^    ww||J8IJJ



DJJ'Jr$   c                v    t        | d      rd}t        |      | j                  d       t               | _        y )Nr  z Nested tables are not supported.r   )hasattrNotImplementedErrorr   rD   r  )r!   r  rp   s      r"   visit_tablezTextTranslator.visit_table  s1    4!4C%c**qW
r$   c                t    | j                  t        | j                               | `| j                  d       y NFr  )r   r8   r  r  r  s     r"   depart_tablezTextTranslator.depart_table  s)    c$**o&JE"r$   c                4   t        t        j                  |d         }t        t        t        j                     |      }| j                  d       | j                  dj                  d |D              dz          | j                          t        j                  )Nr   r|  c              3  <   K   | ]  }|j                           y wr   )r7  )rg   ns     r"   rh   z,TextTranslator.visit_acks.<locals>.<genexpr>  s     ?q
?s   r=  )
r   r   bullet_listr   	list_itemr   r   rj   r  r8  )r!   r  r  
list_itemss       r"   
visit_ackszTextTranslator.visit_acks  sm    5,,d1g6(5??3[A
qdii?J??#EFnnr$   c                    d|j                   v r | j                  t        d      |d   z         | j                  t        d             t        j                  )Naltz[image: %s]z[image])
attributesr   r   r   r8  r  s     r"   visit_imagezTextTranslator.visit_image  sB    DOO#MM!M*T%[89a	l#nnr$   c                    t        | j                        }| j                  d       | j                  dt        |z
  z         | j                          t        j                  )Nr   r   )r  r   r   r   r   r  r   r8  )r!   r  r   s      r"   visit_transitionzTextTranslator.visit_transition  sH    T%%&qcX./0nnr$   c                :    | j                   j                  d       y r   r   ra   r  s     r"   visit_bullet_listz TextTranslator.visit_bullet_list        $r$   c                8    | j                   j                          y r   r   r   r  s     r"   depart_bullet_listz!TextTranslator.depart_bullet_list      r$   c                `    | j                   j                  |j                  dd      dz
         y )Nstartr7   )r   ra   r@  r  s     r"   visit_enumerated_listz$TextTranslator.visit_enumerated_list  s&      '1!5!9:r$   c                8    | j                   j                          y r   r.  r  s     r"   depart_enumerated_listz%TextTranslator.depart_enumerated_list  r0  r$   c                :    | j                   j                  d       y )Nr*  r  s     r"   visit_definition_listz$TextTranslator.visit_definition_list  r,  r$   c                8    | j                   j                          y r   r.  r  s     r"   depart_definition_listz%TextTranslator.depart_definition_list  r0  r$   c                   | j                   d   dk(  r| j                  d       y | j                   d   dk(  ry | j                   dxx   dz  cc<   | j                  t        t        | j                   d               dz          y )Nr   r   r7  r7   )r   r   rO   r8   r  s     r"   visit_list_itemzTextTranslator.visit_list_item  su    R B&NN1r"b( b!Q&!NN3s4#4#4R#89:Q>?r$   c                    | j                   d   dk(  r| j                  d       y | j                   d   dk(  ry | j                  d| j                   d   z         y )Nr   z* r  r7  z%s. )r   r  r  s     r"   depart_list_itemzTextTranslator.depart_list_item  sW    R B&NNN&r"b(NN$*;*;B*?!?N@r$   c                p    t        t        |j                  t        j                                    | _        y r   )rO   r   findallr   
classifier_classifier_count_in_lir  s     r"   visit_definition_list_itemz)TextTranslator.visit_definition_list_item  s#    '*4U=M=M0N+O'P$r$   c                     y r   rB   r  s     r"   depart_definition_list_itemz*TextTranslator.depart_definition_list_item  r+  r$   c                &    | j                  d       y rF   r  r  s     r"   
visit_termzTextTranslator.visit_term  r  r$   c                B    | j                   s| j                  d        y y )Nr  rB  r  r  s     r"   depart_termzTextTranslator.depart_term  s    ++NNtN$ ,r$   c                &    | j                  d       y )Nz : rO  r  s     r"   visit_classifierzTextTranslator.visit_classifier  rQ  r$   c                l    | xj                   dz  c_         | j                   s| j                  d        y y )Nr7   rI  rJ  r  s     r"   depart_classifierz TextTranslator.depart_classifier  s/    $$)$++NNtN$ ,r$   c                $    | j                          y r   r  r  s     r"   visit_definitionzTextTranslator.visit_definition  r#  r$   c                $    | j                          y r   r!  r  s     r"   depart_definitionz TextTranslator.depart_definition  r#  r$   c                     y r   rB   r  s     r"   visit_field_listzTextTranslator.visit_field_list  r+  r$   c                     y r   rB   r  s     r"   depart_field_listz TextTranslator.depart_field_list  r+  r$   c                     y r   rB   r  s     r"   visit_fieldzTextTranslator.visit_field  r+  r$   c                     y r   rB   r  s     r"   depart_fieldzTextTranslator.depart_field  r+  r$   c                &    | j                  d       y rF   r  r  s     r"   visit_field_namezTextTranslator.visit_field_name  r  r$   c                J    | j                  d       | j                  d        y )N:rI  r'  r  s     r"   depart_field_namez TextTranslator.depart_field_name  s    c4 r$   c                $    | j                          y r   r  r  s     r"   visit_field_bodyzTextTranslator.visit_field_body  r#  r$   c                $    | j                          y r   r!  r  s     r"   depart_field_bodyz TextTranslator.depart_field_body  r#  r$   c                     y r   rB   r  s     r"   visit_centeredzTextTranslator.visit_centered  r+  r$   c                     y r   rB   r  s     r"   depart_centeredzTextTranslator.depart_centered  r+  r$   c                     y r   rB   r  s     r"   visit_hlistzTextTranslator.visit_hlist   r+  r$   c                     y r   rB   r  s     r"   depart_hlistzTextTranslator.depart_hlist  r+  r$   c                     y r   rB   r  s     r"   visit_hlistcolzTextTranslator.visit_hlistcol  r+  r$   c                     y r   rB   r  s     r"   depart_hlistcolzTextTranslator.depart_hlistcol	  r+  r$   c                &    | j                  d       y rF   r  r  s     r"   visit_admonitionzTextTranslator.visit_admonition  r  r$   c                $    | j                          y r   r!  r  s     r"   depart_admonitionz TextTranslator.depart_admonition  r#  r$   c                &    | j                  d       y )Nr   r  r  s     r"   _visit_admonitionz TextTranslator._visit_admonition  r  r$   c                   t         |j                     }t        | j                        t	        |      z   }t	        | j
                  d         dk(  r}| j
                  d   d   d   dk(  ret        |z
  t        d | j
                  d   d   d   D              k\  r6| j                  dxx   t	        |      z  cc<   | j                  |dz          y | j
                  d   j                  dd| j                  gf       | j                  |dz          y )Nr   r7   r   c              3  2   K   | ]  }t        |        y wr   r  )rg   ss     r"   rh   z4TextTranslator._depart_admonition.<locals>.<genexpr>  s     (OAQ(Ori   r3  r  r_  )
r   tagnamer  r   rO   r   r   r  r	  r   )r!   r  r  r   s       r"   _depart_admonitionz!TextTranslator._depart_admonition  s     .T%%&U3B A%B"1%*6!S(OR9KA9N(O%OOR CJ. NNN. KKO""1q477)n5NNN-r$   c                &    | j                  d       y rF   r  r  s     r"   visit_versionmodifiedz$TextTranslator.visit_versionmodified8  r  r$   c                $    | j                          y r   r!  r  s     r"   depart_versionmodifiedz%TextTranslator.depart_versionmodified;  r#  r$   c                $    | j                          y r   r  r  s     r"   visit_literal_blockz"TextTranslator.visit_literal_block>  r#  r$   c                (    | j                  d       y r  r!  r  s     r"   depart_literal_blockz#TextTranslator.depart_literal_blockA      E"r$   c                &    | j                  d       y rF   r  r  s     r"   visit_doctest_blockz"TextTranslator.visit_doctest_blockD  r  r$   c                (    | j                  d       y r  r!  r  s     r"   depart_doctest_blockz#TextTranslator.depart_doctest_blockG  r  r$   c                N    | j                          | xj                  dz  c_        y rU   )r   r   r  s     r"   visit_line_blockzTextTranslator.visit_line_blockJ  s    q r$   c                    | xj                   dz  c_         | j                  dd        | j                   s| j                  d       y y )Nr7   Fr[  rd   )r   r  r   r  s     r"   depart_line_blockz TextTranslator.depart_line_blockN  s=    q Et,""MM$ #r$   c                     y r   rB   r  s     r"   
visit_linezTextTranslator.visit_lineT  r+  r$   c                &    | j                  d       y r`  rO  r  s     r"   depart_linezTextTranslator.depart_lineW  rb  r$   c                $    | j                          y r   r  r  s     r"   visit_block_quotez TextTranslator.visit_block_quoteZ  r#  r$   c                $    | j                          y r   r!  r  s     r"   depart_block_quotez!TextTranslator.depart_block_quote]  r#  r$   c                     y r   rB   r  s     r"   visit_compact_paragraphz&TextTranslator.visit_compact_paragraph`  r+  r$   c                     y r   rB   r  s     r"   depart_compact_paragraphz'TextTranslator.depart_compact_paragraphc  r+  r$   c                    t        |j                  t        j                        r$t        |j                  t        j
                        r| j                  d       y y rF   )r4  r5  r   r6  r   seealsor   r  s     r"   visit_paragraphzTextTranslator.visit_paragraphf  s;    $++u'7'78dkk8#3#34NN1 5r$   c                    t        |j                  t        j                        r$t        |j                  t        j
                        r| j                          y y r   )r4  r5  r   r6  r   r  r  r  s     r"   depart_paragraphzTextTranslator.depart_paragraphk  s9    $++u'7'78dkk8#3#34NN 5r$   c                "    t         j                  r   r  r  s     r"   visit_targetzTextTranslator.visit_targetp  r  r$   c                "    t         j                  r   r  r  s     r"   visit_indexzTextTranslator.visit_indexs  r  r$   c                "    t         j                  r   r  r  s     r"   visit_toctreezTextTranslator.visit_toctreev  r  r$   c                "    t         j                  r   r  r  s     r"   visit_substitution_definitionz,TextTranslator.visit_substitution_definitiony  r  r$   c                     y r   rB   r  s     r"   visit_pending_xrefz!TextTranslator.visit_pending_xref|  r+  r$   c                     y r   rB   r  s     r"   depart_pending_xrefz"TextTranslator.depart_pending_xref  r+  r$   c                    | j                   rP|j                  d      }|<| j                  dj                  t	        t
        |            | j                  z          y y y )N	secnumberr=  )r   r@  r   rj   rA  r8   r   )r!   r  rC  s      r"   visit_referencezTextTranslator.visit_reference  sP    hh{+G"chhs3'89D<Q<QQR # r$   c                     y r   rB   r  s     r"   depart_referencezTextTranslator.depart_reference  r+  r$   c                    t        j                  |j                  dd            }| j                  |       t         j                  )NrH  r;  )r   r   r@  
visit_Textr8  r  s      r"   visit_number_referencez%TextTranslator.visit_number_reference  s1    zz$((7C01nnr$   c                     y r   rB   r  s     r"   visit_download_referencez'TextTranslator.visit_download_reference  r+  r$   c                     y r   rB   r  s     r"   depart_download_referencez(TextTranslator.depart_download_reference  r+  r$   c                &    | j                  d       y N*rO  r  s     r"   visit_emphasiszTextTranslator.visit_emphasis      cr$   c                &    | j                  d       y r  rO  r  s     r"   depart_emphasiszTextTranslator.depart_emphasis  r  r$   c                &    | j                  d       y r  rO  r  s     r"   visit_literal_emphasisz%TextTranslator.visit_literal_emphasis  r  r$   c                &    | j                  d       y r  rO  r  s     r"   depart_literal_emphasisz&TextTranslator.depart_literal_emphasis  r  r$   c                &    | j                  d       y Nz**rO  r  s     r"   visit_strongzTextTranslator.visit_strong  rb  r$   c                &    | j                  d       y r  rO  r  s     r"   depart_strongzTextTranslator.depart_strong  rb  r$   c                &    | j                  d       y r  rO  r  s     r"   visit_literal_strongz#TextTranslator.visit_literal_strong  rb  r$   c                &    | j                  d       y r  rO  r  s     r"   depart_literal_strongz$TextTranslator.depart_literal_strong  rb  r$   c                &    | j                  d       y r0   rO  r  s     r"   visit_abbreviationz!TextTranslator.visit_abbreviation  s    br$   c                V    |j                  d      r| j                  d|d   z         y y )Nexplanationz (%s))r  r   r  s     r"   depart_abbreviationz"TextTranslator.depart_abbreviation  s)    <<&MM'D$778 'r$   c                $    | j                  |      S r   )r  r  s     r"   visit_manpagezTextTranslator.visit_manpage  s    **400r$   c                $    | j                  |      S r   )r  r  s     r"   depart_manpagezTextTranslator.depart_manpage  s    ++D11r$   c                &    | j                  d       y r  rO  r  s     r"   visit_title_referencez$TextTranslator.visit_title_reference  r  r$   c                &    | j                  d       y r  rO  r  s     r"   depart_title_referencez%TextTranslator.depart_title_reference  r  r$   c                &    | j                  d       y N"rO  r  s     r"   visit_literalzTextTranslator.visit_literal  r  r$   c                &    | j                  d       y r  rO  r  s     r"   depart_literalzTextTranslator.depart_literal  r  r$   c                &    | j                  d       y )Nr   rO  r  s     r"   visit_subscriptzTextTranslator.visit_subscript  r  r$   c                     y r   rB   r  s     r"   depart_subscriptzTextTranslator.depart_subscript  r+  r$   c                &    | j                  d       y )NrF  rO  r  s     r"   visit_superscriptz TextTranslator.visit_superscript  r  r$   c                     y r   rB   r  s     r"   depart_superscriptz!TextTranslator.depart_superscript  r+  r$   c                f    | j                  d|j                         z         t        j                  Nz[%s]r   r7  r   r8  r  s     r"   visit_footnote_referencez'TextTranslator.visit_footnote_reference  #    ft{{},-nnr$   c                f    | j                  d|j                         z         t        j                  r  r  r  s     r"   visit_citation_referencez'TextTranslator.visit_citation_reference  r  r$   c                B    | j                  |j                                y r   )r   r7  r  s     r"   r  zTextTranslator.visit_Text  s    dkkm$r$   c                     y r   rB   r  s     r"   depart_TextzTextTranslator.depart_Text  r+  r$   c                     y r   rB   r  s     r"   visit_generatedzTextTranslator.visit_generated  r+  r$   c                     y r   rB   r  s     r"   depart_generatedzTextTranslator.depart_generated  r+  r$   c                D    d|d   v sd|d   v r| j                  d       y y Nxrefclassestermr  rO  r  s     r"   visit_inlinezTextTranslator.visit_inline  +    T)_$$y/(AMM# )Br$   c                D    d|d   v sd|d   v r| j                  d       y y r  rO  r  s     r"   depart_inlinezTextTranslator.depart_inline  r  r$   c                     y r   rB   r  s     r"   visit_containerzTextTranslator.visit_container  r+  r$   c                     y r   rB   r  s     r"   depart_containerzTextTranslator.depart_container  r+  r$   c                &    | j                  d       y )Nz>>rO  r  s     r"   visit_problematicz TextTranslator.visit_problematic  rb  r$   c                &    | j                  d       y )Nz<<rO  r  s     r"   depart_problematicz!TextTranslator.depart_problematic  rb  r$   c                    | j                  d       | j                  d|j                         z         | j                          t        j
                  )Nr   z<SYSTEM MESSAGE: %s>)r   r   r7  r  r   r8  r  s     r"   visit_system_messagez#TextTranslator.visit_system_message  s:    q,t{{}<=nnr$   c                "    t         j                  r   r  r  s     r"   visit_commentzTextTranslator.visit_comment  r  r$   c                "    t         j                  r   r  r  s     r"   
visit_metazTextTranslator.visit_meta  s    nnr$   c                    d|j                  dd      j                         v rB| j                  d       | j                  |j	                                | j                  d       t        j                  )Nr   formatr1   r   Fr  )r@  r   r   r   r7  r  r   r8  r  s     r"   	visit_rawzTextTranslator.visit_raw  sT    TXXh+1133NN1MM$++-(NN%N(nnr$   c                     y r   rB   r  s     r"   
visit_mathzTextTranslator.visit_math  r+  r$   c                     y r   rB   r  s     r"   depart_mathzTextTranslator.depart_math  r+  r$   c                $    | j                          y r   r  r  s     r"   visit_math_blockzTextTranslator.visit_math_block  r#  r$   c                $    | j                          y r   r!  r  s     r"   depart_math_blockz TextTranslator.depart_math_block  r#  r$   )r   znodes.documentr   r   r:   r;   )r   r8   r:   r;   )r   r9   r:   r;   )T)r1   N)r6   r=   r  zSequence[str] | Noner
  z
str | Noner:   r;   )r  r   r:   r;   )r  r   r:   r8   )
r  r   r  ztype[Element]r  r8   r  r8   r:   r;   )r  r   r:   r;   )r>   r?   r@   r   r#   r   	STDINDENTr   r  r  r  r  r  r  r"  visit_sidebardepart_sidebarr%  r(  r*  r-  r/  r1  r9  rD  rI  rK  rM  rP  rS  rU  rW  rY  r\  r^  ra  rd  rf  rh  rj  rl  rn  rp  rr  rt  rv  rx  rz  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/  r3  r5  r8  r:  r<  r>  rC  rE  rG  rK  rM  rO  rQ  rS  rU  rW  rY  r[  r]  r`  rb  rd  rf  rh  rj  rl  rn  rp  rr  rt  rv  r{  visit_attentiondepart_attentionvisit_cautiondepart_cautionvisit_dangerdepart_dangervisit_errordepart_error
visit_hintdepart_hintvisit_importantdepart_important
visit_notedepart_note	visit_tip
depart_tipvisit_warningdepart_warningvisit_seealsodepart_seealsor}  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   s   @r"   r   r     s   6+ '0 (
 Y]$'$'&:$'KU$'	$'L4  M!N+ --- '- 	-
 - 
-6'P.U. D(2($
$0
707
! )#!#
% ; % 
@AQ%%
!. (O)%M'N$L&M#K%L"J$K'O)"J$K!I#J%M'N%M'N##! 

S
912%r$   r   )r   r8   r5   r9   r   r
   r:   r   ),rA   
__future__r   r~   r   r   textwrapcollections.abcr   r   r   	itertoolsr   r   typingr	   r
   r   docutilsr   r   docutils.utilsr   sphinxr   sphinx.localer   r   sphinx.util.docutilsr   docutils.nodesr   r   sphinx.builders.textr   r   rD   r   r   r  r4   Writerr   r   rB   r$   r"   <module>r9     s    , "  	 	  9 9 $ + + # '  - 1,01 12J JZd3(&& d3N 	 %- 
9 9"Y% Yr$   