
    ~Ti                       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 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mZ ddlmZmZ ddl m!Z!m"Z" ddl#m$Z$  G d d      Z% G d d      Z& G d dejN                        Z'ddZ(dZ)dZ*e)fddZ+ G d dejX                        Z- G d de      Z.y)z&Custom docutils writer for plain text.    )annotationsN)chaingroupbypairwise)TYPE_CHECKINGcast)nodeswriterscolumn_width)addnodes)_admonitionlabels)SphinxTranslator)IterableIteratorSequence)AnyClassVar)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       F/home/agent/.local/lib/python3.12/site-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@    TYYM488*Adll^1TXXJa~UVW	
r&   c                D    t        | j                  | j                  f      S r   )hashr!   r"   r,   s    r$   __hash__zCell.__hash__.   s    TXXtxx())r&   c                l    t        | j                        xr | j                  d uxr | j                  d uS r   )boolr   r!   r"   r,   s    r$   __bool__zCell.__bool__1   s,    DIIP4884#7PDHHD<PPr&   c                :    t        | j                  |      | _        y r   )my_wrapr   r   )r#   widths     r$   wrapz	Cell.wrap4   s    tyy%0r&   N)    r9   )r   strr   intr    r;   returnNoner<   r:   )r<   r;   )r<   r2   )r6   r;   r<   r=   )	__name__
__module____qualname____doc__r%   r-   r0   r3   r7    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#   rJ   s     r$   r%   zTable.__init__g   s.    ')
/7/C8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()``.
        r9   r   N)rK   rL   r,   s    r$   add_rowzTable.add_rown   s     	Qr&   c                8    t        | j                        | _        y)z*Sets the separator below the current line.N)lenrH   rI   r,   s    r$   set_separatorzTable.set_separatoru   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.
        r9   N)rK   rL   r    )r#   cells     r$   add_cellzTable.add_celly   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 Nr9   )_ensure_has_line_ensure_has_columnrH   )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   )rW   r   rX   r    rangerH   r"   r!   )r#   rY   rS   rZ   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   )rP   rH   append)r#   rZ   s     r$   rW   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   )rH   rP   rb   r   )r#   r!   rZ   s      r$   rX   zTable._ensure_has_column   s;    JJ 	$Dd)c/DF# d)c/	$r&   c                T    dj                  t        t        | j                              S N
)joinmapreprrH   r,   s    r$   r-   zTable.__repr__   s    yyT4::.//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   r9      )r"   r!   
ValueErrorr]   r    )r#   rS   sourcemsgr6   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   )setrH   add)r#   seenrZ   rS   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r6   rk   c              3  2   K   | ]  }t        |        y wr   r   .0xs     r$   	<genexpr>zTable.rewrap.<locals>.<genexpr>   s     !Ha,q/!H   )rJ   measured_widthsrv   r7   rq   r   r"   r!   rm   mathceilmaxr    r]   )r#   rS   ro   r6   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.
        r9   )r   rP   r   )r#   rZ   physical_linesrS   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 cg c]  \  }}|d   dk(  s|d   dk(  rdnd }	}}|	j                  |       |d	j	                  t        j                  t        ||	d
                  z   S c c}}w )zfCalled on the line *before* lineno.
            Called with no *lineno* for the last sep.
            r   r9   r(      r   +|r8   F)strict)	enumerater   rb   r   rg   r   from_iterablezip)charlinenooutcolnor6   headtailleftrightgluer#   s             r$   writesepzTable.__str__.<locals>.writesep   s'     C )$*>*> ? 3u&
VU]+tFQJ4E/FFJJseai01JJtuqy123 a&)s*3Db'!*+3D $,C=D% Aw#~qScAD  KK"''%"5"5c#tE6R"STTTs   C9=r   r8   r(   r9   rf   )r   N)r   r:   r   z
int | Noner<   r:   )r   r   rH   rI   rb   r]   r   r!   r"   rP   r   r   ljustrq   r   rg   )r#   r   r   r   rZ   physical_linelinestrr   rS   physical_text
adjust_lens   `          r$   __str__zTable.__str__   s   	U. &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 () & 

2777+,+-	-6 	

8C=!yy~r&   r   )rJ   zlist[int] | Noner<   r=   r<   r=   )rS   r   r<   r=   )rY   tuple[int, int]r<   r   )rY   r   rS   r   r<   r=   )rZ   r;   r<   r=   )r!   r;   r<   r=   r>   )rS   r   rn   z	list[int]r<   r;   )r<   zIterator[Cell])rZ   z
list[Cell]r<   r;   )r?   r@   rA   rB   r%   rN   rQ   rT   r[   r`   rW   rX   r-   rq   propertyrv   r   r   r   rC   r&   r$   rE   rE   8   s^    ,\)	)%"$
0. # #R 7r&   rE   c                  ~     e Zd ZdZ ej
                  d      ZddZe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                         s|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                         s|d= |r#|j                  |dj                  |      z          |r|S )zThe 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   r8   )r6   rm   reversesubsequent_indentinitial_indentr   drop_whitespacestriprb   pop_handle_long_wordrg   )r#   chunksrH   cur_linecur_lenindentr6   chunk_widths           r$   _wrap_chunkszTextWrapper._wrap_chunks  sE   
 ::?=

JKKHG//,, JJf!55E##F2J,<,<,>52J*6":6[(E1OOFJJL1{*G  ,vbz2U:&&vx%H##"9K9K9MRLVbggh&778? B r&   c                z    d}t        | d      D ]  \  }}|t        |      z  }||kD  s|dz
  c S  t        |       S )zBreak word by Unicode width instead of len(word).

        The returned position 'end' satisfies::

            assert column_width(word[:end]) <= space_left
            assert end == len(word) or column_width(word[:end+1]) > space_left
        r   r9   )start)r   r   rP   )word
space_lefttotalendcs        r$   _find_break_endzTextWrapper._find_break_endA  sN     A. 	FC\!_$Ez!Qw	 4yr&   c                    g }t         |   |      D ]F  }t        |t              D ]1  \  }}|dk  r"|t         |   dj	                  |            z  }-||z  }3 H |S )zOverride original method that only split by 'wordsep_re'.

        This '_split' splits wide-characters into chunks by one character.
        r9   r8   )super_splitr   _column_width_saferg   )r#   r   r   chunkwg	__class__s         r$   r   zTextWrapper._splitQ  so    
 W^D) 	 E'9:  16egnRWWQZ88FaKF	 	  r&   c                    |dk  rdn||z
  }| j                   rD|}|d   }|dkD  r| j                  ||      }|dk(  r|rd}|j                  |d|        ||d |d<   y|s |j                  |j                                yy)z8Override using self._find_break() instead of str.find().r9   r   r   N)break_long_wordsr   rb   r   )r#   reversed_chunksr   r   r6   r   r   r   s           r$   r   zTextWrapper._handle_long_word_  s      !)Q%'/
   C#B'EA~**5*=axJOOE$3K("'+OBOOO//12 r&   )r   	list[str]r<   r   )r   r:   r   r;   r<   r;   )r   r:   r<   r   )
r   r   r   r   r   r;   r6   r;   r<   r=   )r?   r@   rA   rB   recompile
wordsep_rer   staticmethodr   r   r   __classcell__r   s   @r$   r   r   	  sg    E	/J,\  3(34=3HK3TW3	3r&   r   c                ,    t        dt        |             S rV   )r   r   )r|   s    r$   r   r   y  s     q,q/""r&   F   rl   c                >    t        dd|i|}|j                  |       S )Nr6   rC   )r   r7   )r   r6   kwargsr   s       r$   r5   r5     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.r8   rC   zClassVar[dict[str, Any]]settings_defaultsr:   outputc                0    t         |           || _        y r   )r   r%   builder)r#   r   r   s     r$   r%   zTextWriter.__init__  s    r&   c                   t        | j                  t        j                        sJ | j                  j	                  | j                  | j                        }| j                  j                  |       t        d|      j                  | _        y )NTextTranslator)	
isinstancedocumentr	   r   create_translator	walkaboutr   bodyr   )r#   visitors     r$   	translatezTextWriter.translate  s_    $--888,,00M(+W5::r&   )r   r   r<   r=   r   )
r?   r@   rA   	supportedsettings_specr   __annotations__r%   r   r   r   s   @r$   r   r     s(    I0M24/4K;r&   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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| _        |  d| _        g | _        y )Nwindowsz
nativerf   r   F)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in_production_list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   rb   )r#   r   s     r$   add_textzTextTranslator.add_text  s    BDz*r&   c                p    | j                   j                  g        | j                  j                  |       y r   )r   rb   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 )Nr8   rx   )r5   rg   MAXWIDTH
splitlinesrb   )resr   r   	maxindentresulttoformatr7   s    r$   	do_formatz+TextTranslator.end_state.<locals>.do_format  sY    bggh/x)7KLggh'224s
MM63-(r&   r   r   r9   r8   r   )r   r   sumr   rb   insertextend)r#   r7   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 rG   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(   NrC   )r{   r   rH   rZ   s       r$   r}   z1TextTranslator.depart_document.<locals>.<genexpr>  sB      !
!
  *cFlT)*!
*!
s    "r   )r  r   rg   r   r   r  s     r$   depart_documentzTextTranslator.depart_document  s5    GGLL !
!%Q!
 
	r&   c                j    | j                   | j                     | _        | xj                  dz  c_        y rV   )r   r   _title_charr  s     r$   visit_sectionzTextTranslator.visit_section  s,    ,,T->->?Qr&   c                .    | xj                   dz  c_         y rV   )r   r  s     r$   depart_sectionzTextTranslator.depart_section  s    Qr&   c                &    | j                  d       y rG   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   rC   r  s     r$   visit_compoundzTextTranslator.visit_compound      r&   c                     y r   rC   r  s     r$   depart_compoundzTextTranslator.depart_compound  r/  r&   c                     y r   rC   r  s     r$   visit_glossaryzTextTranslator.visit_glossary  r/  r&   c                     y r   rC   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   )r   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   r8   .)r   r8  r	   sectionr   
secnumbersgetrg   rh   r:   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^r8   c              3  8   K   | ]  }|d    dk(  s|d     yw)r   r   r9   NrC   rz   s     r$   r}   z.TextTranslator.depart_title.<locals>.<genexpr>5  s     E!A$"*qtEs   
z%sr   r   r   )r   r8  r	   rA  r  rg   r   r   r   rF  r   r   rP   rb   )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   rC   r  s     r$   visit_subtitlezTextTranslator.visit_subtitle?  r/  r&   c                     y r   rC   r  s     r$   depart_subtitlezTextTranslator.depart_subtitleB  r/  r&   c                &    | j                  d       y )Nz-- r   r  s     r$   visit_attributionz TextTranslator.visit_attributionE      er&   c                     y r   rC   r  s     r$   depart_attributionz!TextTranslator.depart_attributionH  r/  r&   c                     y r   rC   r  s     r$   
visit_desczTextTranslator.visit_descR  r/  r&   c                     y r   rC   r  s     r$   depart_desczTextTranslator.depart_descU  r/  r&   c                &    | j                  d       y rG   r  r  s     r$   visit_desc_signaturez#TextTranslator.visit_desc_signatureX  r  r&   c                *    | j                  dd        y )NFr7   r   r%  r  s     r$   depart_desc_signaturez$TextTranslator.depart_desc_signature[  s    Et,r&   c                     y r   rC   r  s     r$   visit_desc_signature_linez(TextTranslator.visit_desc_signature_line_  r/  r&   c                &    | j                  d       y re   rQ  r  s     r$   depart_desc_signature_linez)TextTranslator.depart_desc_signature_lineb      dr&   c                Z    | j                          | j                  | j                         y r   )r  r   r   r  s     r$   visit_desc_contentz!TextTranslator.visit_desc_contente  s    dggr&   c                $    | j                          y r   r%  r  s     r$   depart_desc_contentz"TextTranslator.depart_desc_contenti  r'  r&   c                     y r   rC   r  s     r$   visit_desc_inlinez TextTranslator.visit_desc_inlinel  r/  r&   c                     y r   rC   r  s     r$   depart_desc_inlinez!TextTranslator.depart_desc_inlineo  r/  r&   c                     y r   rC   r  s     r$   visit_desc_namezTextTranslator.visit_desc_nameu  r/  r&   c                     y r   rC   r  s     r$   depart_desc_namezTextTranslator.depart_desc_namex  r/  r&   c                     y r   rC   r  s     r$   visit_desc_addnamez!TextTranslator.visit_desc_addname{  r/  r&   c                     y r   rC   r  s     r$   depart_desc_addnamez"TextTranslator.depart_desc_addname~  r/  r&   c                     y r   rC   r  s     r$   visit_desc_typezTextTranslator.visit_desc_type  r/  r&   c                     y r   rC   r  s     r$   depart_desc_typezTextTranslator.depart_desc_type  r/  r&   c                &    | j                  d       y )Nz -> rQ  r  s     r$   visit_desc_returnsz!TextTranslator.visit_desc_returns  s    fr&   c                     y r   rC   r  s     r$   depart_desc_returnsz"TextTranslator.depart_desc_returns  r/  r&   c                   | j                  |       d| _        d| _        d| _        d| _        |j
                  D cg c]  }t        ||       c}| _        t        | j                        | _	        d| _
        |j                  d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_listFmulti_line_trailing_commaN)r   is_first_paramoptional_param_levelparams_left_at_levelparam_group_indexchildrenr   list_is_required_paramr  required_params_leftparam_separatorrC  r~  trailing_commarstripr   rb   )r#   r  parameter_groupsig_open_parensig_close_parenr   s         r$   _visit_sig_parameter_listz(TextTranslator._visit_sig_parameter_list  s     	n%"$%!$%!!" 59MM'
/0Jq/*'
# %((C(C$D!#)-2Mu)U&"hh'BEJ))#'#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                     }|rt        | j                        }| j                  dz   |k(  }| xr | j                  | j                  dz      }| j                  dkD  }|s|rj|s|rf|r|s| j                  r| j                  | j                         | j                  dd        n'| j                  r| j                  | j                         |r| xj                  dz  c_
        t        j                  )Nr   Fr9   r]  )r~  r  r  r  r  r   r  r  r:  r  r  rP   r  r  r	   r;  )r#   r  on_separate_lineis_requiredlen_lirpis_last_groupnext_is_requiredopt_param_left_at_levels           r$   visit_desc_parameterz#TextTranslator.visit_desc_parameter  s   99D$=$=$ANN"'D!$*C*CMM$../$$)%%*%%%*%dkkm$11$2H2HI4667H 22Q6(BM!! L//0F0F0JK  '+&?&?!&C#'"&6$(?4CVCVMM$"6"67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        d |j                  D              | _        | 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 )Nc              3  P   K   | ]  }t        |t        j                           y wr   )r   r   r  )r{   r   s     r$   r}   z5TextTranslator.visit_desc_optional.<locals>.<genexpr>  s"      (
78Jq(112(
s   $&r9   r  Fr]  )r  r  r  r  max_optional_param_levelr~  r  r  r   r  r  r  r  s     r$   visit_desc_optionalz"TextTranslator.visit_desc_optional  s    $' (
<@MM(
 %
! 	!!Q&!(,(A(A%))"" c" **d223c"Et4 c"d223Et4MM#r&   c                   | xj                   dz  c_         | j                   }| j                  r| j                  }t        | j                        }| j
                  dz   |k(  }||dz
  k(  r.|r|dkD  s| j                  r| j                  | j                         | j                  d       |dk(  r%| j                  dd        n| j                  d       |dk(  r| xj
                  dz  c_        y y )Nr9   r   r  Fr]  )
r  r~  r  rP   r  r  r  r   r  r  )r#   r  level	max_levelr  r  s         r$   depart_desc_optionalz#TextTranslator.depart_desc_optional  s    !!Q&!))))55I4667H 22Q6(BM 	A%!UQY$2E2Ed223MM# zEt4 MM#A:""a'" r&   c                     y r   rC   r  s     r$   visit_desc_annotationz$TextTranslator.visit_desc_annotation  r/  r&   c                     y r   rC   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   rC   r  s     r$   visit_captionzTextTranslator.visit_caption)  r/  r&   c                     y r   rC   r  s     r$   depart_captionzTextTranslator.depart_caption,  r/  r&   c                2    | j                          d| _        y NT)r  r   r  s     r$   visit_productionlistz#TextTranslator.visit_productionlist/  s    "&r&   c                6    d| _         | j                  d       y NFr7   )r   r  r  s     r$   depart_productionlistz$TextTranslator.depart_productionlist3  s    "'E"r&   c                     y r   rC   r  s     r$   visit_productionzTextTranslator.visit_production7  r/  r&   c                     y r   rC   r  s     r$   depart_productionz TextTranslator.depart_production:  r/  r&   c                    t        d|d         }|j                         j                         | _        | j	                  t        | j                        dz          y )Nznodes.labelr   rl   )r   r:  r   	_footnoter  rP   )r#   r  labels      r$   visit_footnotezTextTranslator.visit_footnote=  sB    ]DG,--/s4>>*Q./r&   c                B    | j                  d| j                  z         y Nz[%s] r  )r  r  r  s     r$   depart_footnotezTextTranslator.depart_footnoteB      Wt~~56r&   c                    t        |      r6t        |d   t        j                        r|d   j	                         | _        nd| _        | j                  t        | j
                        dz          y )Nr   r8   rl   )rP   r   r	   r  r:  	_citlabelr  r  s     r$   visit_citationzTextTranslator.visit_citationE  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_citationL  r  r&   c                "    t         j                  r   r	   r;  r  s     r$   visit_labelzTextTranslator.visit_labelO      nnr&   c                     y r   rC   r  s     r$   visit_legendzTextTranslator.visit_legendR  r/  r&   c                     y r   rC   r  s     r$   depart_legendzTextTranslator.depart_legendU  r/  r&   c                     y r   rC   r  s     r$   visit_option_listz TextTranslator.visit_option_listZ  r/  r&   c                     y r   rC   r  s     r$   depart_option_listz!TextTranslator.depart_option_list]  r/  r&   c                &    | j                  d       y rG   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_itemc  r'  r&   c                    d| _         y r  )_firstoptionr  s     r$   visit_option_groupz!TextTranslator.visit_option_groupf  s
     r&   c                &    | j                  d       y )Nz     rQ  r  s     r$   depart_option_groupz"TextTranslator.depart_option_groupi  s    gr&   c                N    | j                   rd| _         y | j                  d       y )NFr}  )r  r   r  s     r$   visit_optionzTextTranslator.visit_optionl  s     %DMM$r&   c                     y r   rC   r  s     r$   depart_optionzTextTranslator.depart_optionr  r/  r&   c                     y r   rC   r  s     r$   visit_option_stringz"TextTranslator.visit_option_stringu  r/  r&   c                     y r   rC   r  s     r$   depart_option_stringz#TextTranslator.depart_option_stringx  r/  r&   c                ,    | j                  |d          y )N	delimiterrQ  r  s     r$   visit_option_argumentz$TextTranslator.visit_option_argument{  s    d;'(r&   c                     y r   rC   r  s     r$   depart_option_argumentz%TextTranslator.depart_option_argument~  r/  r&   c                     y r   rC   r  s     r$   visit_descriptionz TextTranslator.visit_description  r/  r&   c                     y r   rC   r  s     r$   depart_descriptionz!TextTranslator.depart_description  r/  r&   c                "    t         j                  r   r  r  s     r$   visit_tabular_col_specz%TextTranslator.visit_tabular_col_spec  r  r&   c                r    | j                   j                  j                  |d          t        j                  )NrJ   )tablerJ   rb   r	   r;  r  s     r$   visit_colspeczTextTranslator.visit_colspec  s)    

""4
#34nnr&   c                     y r   rC   r  s     r$   visit_tgroupzTextTranslator.visit_tgroup  r/  r&   c                     y r   rC   r  s     r$   depart_tgroupzTextTranslator.depart_tgroup  r/  r&   c                     y r   rC   r  s     r$   visit_theadzTextTranslator.visit_thead  r/  r&   c                     y r   rC   r  s     r$   depart_theadzTextTranslator.depart_thead  r/  r&   c                8    | j                   j                          y r   )r   rQ   r  s     r$   visit_tbodyzTextTranslator.visit_tbody  s    

  "r&   c                     y r   rC   r  s     r$   depart_tbodyzTextTranslator.depart_tbody  r/  r&   c                f    | j                   j                  r| j                   j                          y y r   )r   rH   rN   r  s     r$   	visit_rowzTextTranslator.visit_row  s$    ::JJ  r&   c                     y r   rC   r  s     r$   
depart_rowzTextTranslator.depart_row  r/  r&   c                    t        |j                  dd      dz   |j                  dd      dz         | _        | j                  d       y )Nmorerowsr   r9   morecols)r   r    )r   rC  entryr  r  s     r$   visit_entryzTextTranslator.visit_entry  sB    HHZ+a/HHZ+a/

 	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)r9   N)r   rg   )r{   r|   r#   s     r$   r}   z.TextTranslator.depart_entry.<locals>.<genexpr>  s"     J1DGGLL1.Js   (+)	r   rg   r   r   r   r  r   r   rT   r#   r  r   s   `  r$   depart_entryzTextTranslator.depart_entry  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  rE   r   )r#   r  ro   s      r$   visit_tablezTextTranslator.visit_table  s1    4!4C%c**qW
r&   c                t    | j                  t        | j                               | `| j                  d       y r  )r   r:   r   r  r  s     r$   depart_tablezTextTranslator.depart_table  s)    c$**o&JE"r&   c                    t        d|d         }t        d|      }| j                  d       | j                  dj                  d |D              dz          | j	                          t
        j                  )Nznodes.bullet_listr   zIterable[nodes.list_item]r}  c              3  <   K   | ]  }|j                           y wr   )r:  )r{   ns     r$   r}   z,TextTranslator.visit_acks.<locals>.<genexpr>  s     ?q
?s   r@  )r   r  r   rg   r  r	   r;  )r#   r  bullet_list
list_itemss       r$   
visit_ackszTextTranslator.visit_acks  s`    .Q85{C
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	   r;  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	   r;  )r#   r  r   s      r$   visit_transitionzTextTranslator.visit_transition  sH    T%%&qcX./0nnr&   c                :    | j                   j                  d       y r   r   rb   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 )Nr   r9   )r   rb   rC  r  s     r$   visit_enumerated_listz$TextTranslator.visit_enumerated_list  s&      '1!5!9:r&   c                8    | j                   j                          y r   r2  r  s     r$   depart_enumerated_listz%TextTranslator.depart_enumerated_list  r4  r&   c                :    | j                   j                  d       y )Nr.  r  s     r$   visit_definition_listz$TextTranslator.visit_definition_list  r0  r&   c                8    | j                   j                          y r   r2  r  s     r$   depart_definition_listz%TextTranslator.depart_definition_list  r4  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   r:  r9   )r   r  rP   r:   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  r:  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   )rP   list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   rC   r  s     r$   depart_definition_list_itemz*TextTranslator.depart_definition_list_item  r/  r&   c                &    | j                  d       y rG   r  r  s     r$   
visit_termzTextTranslator.visit_term  r  r&   c                B    | j                   s| j                  d        y y )Nr   rF  r  r  s     r$   depart_termzTextTranslator.depart_term  s    ++NNtN$ ,r&   c                &    | j                  d       y )Nz : rQ  r  s     r$   visit_classifierzTextTranslator.visit_classifier	  rS  r&   c                l    | xj                   dz  c_         | j                   s| j                  d        y y )Nr9   rM  rN  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   rC   r  s     r$   visit_field_listzTextTranslator.visit_field_list  r/  r&   c                     y r   rC   r  s     r$   depart_field_listz TextTranslator.depart_field_list  r/  r&   c                     y r   rC   r  s     r$   visit_fieldzTextTranslator.visit_field  r/  r&   c                     y r   rC   r  s     r$   depart_fieldzTextTranslator.depart_field   r/  r&   c                &    | j                  d       y rG   r  r  s     r$   visit_field_namezTextTranslator.visit_field_name#  r  r&   c                J    | j                  d       | j                  d        y )N:rM  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   rC   r  s     r$   visit_centeredzTextTranslator.visit_centered0  r/  r&   c                     y r   rC   r  s     r$   depart_centeredzTextTranslator.depart_centered3  r/  r&   c                     y r   rC   r  s     r$   visit_hlistzTextTranslator.visit_hlist6  r/  r&   c                     y r   rC   r  s     r$   depart_hlistzTextTranslator.depart_hlist9  r/  r&   c                     y r   rC   r  s     r$   visit_hlistcolzTextTranslator.visit_hlistcol<  r/  r&   c                     y r   rC   r  s     r$   depart_hlistcolzTextTranslator.depart_hlistcol?  r/  r&   c                &    | j                  d       y rG   r  r  s     r$   visit_admonitionzTextTranslator.visit_admonitionB  r  r&   c                $    | j                          y r   r%  r  s     r$   depart_admonitionz TextTranslator.depart_admonitionE  r'  r&   c                &    | j                  d       y )Nr   r  r  s     r$   _visit_admonitionz TextTranslator._visit_admonitionH  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   r9   r   c              3  2   K   | ]  }t        |        y wr   )rP   )r{   ss     r$   r}   z4TextTranslator._depart_admonition.<locals>.<genexpr>Q  s     (OAQ(Or~   r7  r  rc  )
r   tagnamer  r   rP   r   r  r  r  r   )r#   r  r  r   s       r$   _depart_admonitionz!TextTranslator._depart_admonitionK  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 rG   r  r  s     r$   visit_versionmodifiedz$TextTranslator.visit_versionmodifiedp  r  r&   c                $    | j                          y r   r%  r  s     r$   depart_versionmodifiedz%TextTranslator.depart_versionmodifieds  r'  r&   c                $    | j                          y r   r  r  s     r$   visit_literal_blockz"TextTranslator.visit_literal_blockv  r'  r&   c                (    | j                  d       y r  r%  r  s     r$   depart_literal_blockz#TextTranslator.depart_literal_blocky      E"r&   c                &    | j                  d       y rG   r  r  s     r$   visit_doctest_blockz"TextTranslator.visit_doctest_block|  r  r&   c                (    | j                  d       y r  r%  r  s     r$   depart_doctest_blockz#TextTranslator.depart_doctest_block  r  r&   c                N    | j                          | xj                  dz  c_        y rV   )r  r   r  s     r$   visit_line_blockzTextTranslator.visit_line_block  s    q r&   c                    | xj                   dz  c_         | j                  dd        | j                   s| j                  d       y y )Nr9   Fr]  rf   )r   r  r   r  s     r$   depart_line_blockz TextTranslator.depart_line_block  s=    q Et,""MM$ #r&   c                     y r   rC   r  s     r$   
visit_linezTextTranslator.visit_line  r/  r&   c                &    | j                  d       y re   rQ  r  s     r$   depart_linezTextTranslator.depart_line  rc  r&   c                $    | j                          y r   r  r  s     r$   visit_block_quotez TextTranslator.visit_block_quote  r'  r&   c                $    | j                          y r   r%  r  s     r$   depart_block_quotez!TextTranslator.depart_block_quote  r'  r&   c                     y r   rC   r  s     r$   visit_compact_paragraphz&TextTranslator.visit_compact_paragraph  r/  r&   c                     y r   rC   r  s     r$   depart_compact_paragraphz'TextTranslator.depart_compact_paragraph  r/  r&   c                    t        |j                  t        j                        r$t        |j                  t        j
                        r| j                  d       y y rG   )r   r8  r	   r9  r   seealsor  r  s     r$   visit_paragraphzTextTranslator.visit_paragraph  s;    4;;(8(89$++x'7'78NN1 9r&   c                    t        |j                  t        j                        r$t        |j                  t        j
                        r| j                          y y r   )r   r8  r	   r9  r   r  r  r  s     r$   depart_paragraphzTextTranslator.depart_paragraph  s9    4;;(8(89$++x'7'78NN 9r&   c                "    t         j                  r   r  r  s     r$   visit_targetzTextTranslator.visit_target  r  r&   c                "    t         j                  r   r  r  s     r$   visit_indexzTextTranslator.visit_index  r  r&   c                "    t         j                  r   r  r  s     r$   visit_toctreezTextTranslator.visit_toctree  r  r&   c                "    t         j                  r   r  r  s     r$   visit_substitution_definitionz,TextTranslator.visit_substitution_definition  r  r&   c                     y r   rC   r  s     r$   visit_pending_xrefz!TextTranslator.visit_pending_xref  r/  r&   c                     y r   rC   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   rC  r   rg   rh   r:   r   )r#   r  rE  s      r$   visit_referencezTextTranslator.visit_reference  sP    hh{+G"chhs3'89D<Q<QQR # r&   c                     y r   rC   r  s     r$   depart_referencezTextTranslator.depart_reference  r/  r&   c                    t        j                  |j                  dd            }| j                  |       t         j                  )NrJ  r>  )r	   r   rC  
visit_Textr;  r  s      r$   visit_number_referencez%TextTranslator.visit_number_reference  s1    zz$((7C01nnr&   c                     y r   rC   r  s     r$   visit_download_referencez'TextTranslator.visit_download_reference  r/  r&   c                     y r   rC   r  s     r$   depart_download_referencez(TextTranslator.depart_download_reference  r/  r&   c                &    | j                  d       y N*rQ  r  s     r$   visit_emphasiszTextTranslator.visit_emphasis      cr&   c                &    | j                  d       y r  rQ  r  s     r$   depart_emphasiszTextTranslator.depart_emphasis  r  r&   c                &    | j                  d       y r  rQ  r  s     r$   visit_literal_emphasisz%TextTranslator.visit_literal_emphasis  r  r&   c                &    | j                  d       y r  rQ  r  s     r$   depart_literal_emphasisz&TextTranslator.depart_literal_emphasis  r  r&   c                &    | j                  d       y Nz**rQ  r  s     r$   visit_strongzTextTranslator.visit_strong  rc  r&   c                &    | j                  d       y r  rQ  r  s     r$   depart_strongzTextTranslator.depart_strong  rc  r&   c                @    | j                   ry | j                  d       y r  r   r   r  s     r$   visit_literal_strongz#TextTranslator.visit_literal_strong      ""dr&   c                @    | j                   ry | j                  d       y r  r  r  s     r$   depart_literal_strongz$TextTranslator.depart_literal_strong  r  r&   c                &    | j                  d       y )Nr8   rQ  r  s     r$   visit_abbreviationz!TextTranslator.visit_abbreviation  s    br&   c                X    |j                  dd      x}r| j                  d| d       y y )Nexplanationr8   z (r  )rC  r   )r#   r  r  s      r$   depart_abbreviationz"TextTranslator.depart_abbreviation  s2    ((="55;5MMB{m1-. 6r&   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  rQ  r  s     r$   visit_title_referencez$TextTranslator.visit_title_reference  r  r&   c                &    | j                  d       y r  rQ  r  s     r$   depart_title_referencez%TextTranslator.depart_title_reference  r  r&   c                @    | j                   ry | j                  d       y N"r  r  s     r$   visit_literalzTextTranslator.visit_literal      ""cr&   c                @    | j                   ry | j                  d       y r  r  r  s     r$   depart_literalzTextTranslator.depart_literal  r  r&   c                &    | j                  d       y )Nr   rQ  r  s     r$   visit_subscriptzTextTranslator.visit_subscript  r  r&   c                     y r   rC   r  s     r$   depart_subscriptzTextTranslator.depart_subscript  r/  r&   c                &    | j                  d       y )NrH  rQ  r  s     r$   visit_superscriptz TextTranslator.visit_superscript  r  r&   c                     y r   rC   r  s     r$   depart_superscriptz!TextTranslator.depart_superscript  r/  r&   c                f    | j                  d|j                         z         t        j                  Nz[%s]r   r:  r	   r;  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   r:  r  s     r$   r  zTextTranslator.visit_Text  s    dkkm$r&   c                     y r   rC   r  s     r$   depart_TextzTextTranslator.depart_Text"  r/  r&   c                     y r   rC   r  s     r$   visit_generatedzTextTranslator.visit_generated%  r/  r&   c                     y r   rC   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  rQ  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  rQ  r  s     r$   depart_inlinezTextTranslator.depart_inline/  r   r&   c                     y r   rC   r  s     r$   visit_containerzTextTranslator.visit_container3  r/  r&   c                     y r   rC   r  s     r$   depart_containerzTextTranslator.depart_container6  r/  r&   c                &    | j                  d       y )Nz>>rQ  r  s     r$   visit_problematicz TextTranslator.visit_problematic9  rc  r&   c                &    | j                  d       y )Nz<<rQ  r  s     r$   depart_problematicz!TextTranslator.depart_problematic<  rc  r&   c                    | j                  d       | j                  d|j                         z         | j                          t        j
                  )Nr   z<SYSTEM MESSAGE: %s>)r  r   r:  r  r	   r;  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_commentE  r  r&   c                "    t         j                  r   r  r  s     r$   
visit_metazTextTranslator.visit_metaH  s    nnr&   c                    d|j                  dd      j                         v rB| j                  d       | j                  |j	                                | j                  d       t        j                  )Nr   formatr8   r   Fr  )rC  splitr  r   r:  r  r	   r;  r  s     r$   	visit_rawzTextTranslator.visit_rawL  sT    TXXh+1133NN1MM$++-(NNN&nnr&   c                     y r   rC   r  s     r$   
visit_mathzTextTranslator.visit_mathS  r/  r&   c                     y r   rC   r  s     r$   depart_mathzTextTranslator.depart_mathV  r/  r&   c                $    | j                          y r   r  r  s     r$   visit_math_blockzTextTranslator.visit_math_blockY  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   r:   r<   r=   )r   r;   r<   r=   )T)r8   N)r7   r2   r   zSequence[str] | Noner  z
str | Noner<   r=   )r  r   r<   r=   )r  r   r<   r:   )
r  r   r  ztype[Element]r  r:   r  r:   r<   r=   )r  r   r<   r=   )r  z
nodes.mathr<   r=   )r  znodes.math_blockr<   r=   )r?   r@   rA   r   r%   r   	STDINDENTr  r  r  r  r  r!  r#  r&  visit_sidebardepart_sidebarr)  r,  r.  r1  r3  r5  r<  rF  rK  rM  rO  rR  rU  rW  rY  r[  r^  r`  rb  re  rg  ri  rk  rm  ro  rq  rs  ru  rw  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/  r3  r6  r8  r;  r=  r?  rA  rG  rI  rK  rO  rQ  rS  rU  rW  rY  r[  r]  r_  ra  rd  rf  rh  rj  rl  rn  rp  rr  rt  rv  rx  rz  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   8+ '0 ( $) 	('(' "(' 	('
 
('T
  M!N+ --- '- 	-
 - 
-<'P.U.(T(4(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


/12

%r&   r   )r|   r:   r<   r;   )r   r:   r6   r;   r   r   r<   r   )/rB   
__future__r   r   r   r   textwrap	itertoolsr   r   r   typingr   r   docutilsr	   r
   docutils.utilsr   sphinxr   sphinx.localer   r   sphinx.util.docutilsr   collections.abcr   r   r   r   r   docutils.nodesr   r   sphinx.builders.textr   r   rE   r   r   r  r  r5   Writerr   r   rC   r&   r$   <module>rA     s    , "  	 	  . . & # '  - 1<<$,01 18N Nbm3(&& m3`# 	 %- 
; ;$~% ~r&   