
    -Ph                       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j'                  Z'dZ(dZ)e(fd$dZ* G d  d!ej+                  Z, G d" d#e          Z-dS )%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dS )CellzVRepresents a cell in a table.
    It can span multiple columns or multiple lines.
        textstrrowspanintcolspanreturnNonec                Z    || _         g | _        || _        || _        d | _        d | _        d S N)r   wrappedr   r!   colrow)selfr   r   r!   s       S/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinx/writers/text.py__init__zCell.__init__!   s0    	"$##    c                X    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?    WTYWW48WWdlWWTXWWWWW	
r,   c                8    t          | j        | j        f          S r%   )hashr'   r(   r2   s    r*   __hash__zCell.__hash__.   s    TXtx()))r,   boolc                N    t          | j                  o| j        d uo| j        d uS r%   )r7   r   r'   r(   r2   s    r*   __bool__zCell.__bool__1   s(    DIP484#7PDHD<PPr,   widthc                :    t          | j        |          | _        d S r%   )my_wrapr   r&   )r)   r:   s     r*   wrapz	Cell.wrap4   s    ty%00r,   N)r   r   r   )r   r   r   r    r!   r    r"   r#   r"   r   )r"   r    )r"   r7   )r:   r    r"   r#   )	__name__
__module____qualname____doc__r+   r3   r6   r9   r=    r,   r*   r   r      s         $ $ $ $ $
 
 
 

* * * *Q Q Q Q1 1 1 1 1 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dS )-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    |
       +--------+--------+

    Ncolwidthlist[int] | Noner"   r#   c                T    g | _         d| _        ||ng | _        d| _        d| _        d S Nr   )lines	separatorrF   current_linecurrent_col)r)   rF   s     r*   r+   zTable.__init__g   s6    ')
/7/C88r,   c                4    | xj         dz  c_         d| _        dS )zAdd a row to the table, to use with ``add_cell()``.  It is not needed
        to call ``add_row()`` before the first ``add_cell()``.
        r   r   N)rL   rM   r2   s    r*   add_rowzTable.add_rown   s&     	Qr,   c                8    t          | j                  | _        dS )z*Sets the separator below the current line.N)lenrJ   rK   r2   s    r*   set_separatorzTable.set_separatoru   s    TZr,   cellr   c                    | | j         | j        f         r$| xj        dz  c_        | | j         | j        f         $|| | j         | j        f<   | xj        |j        z  c_        dS )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.
        r   N)rL   rM   r!   )r)   rS   s     r*   add_cellzTable.add_celly   s{     4$d&667 	"! 4$d&667 	"48T 001DL(r,   postuple[int, int]c                    |\  }}|                      |dz              |                     |dz              | j        |         |         S Nr   )_ensure_has_line_ensure_has_columnrJ   )r)   rV   liner'   s       r*   __getitem__zTable.__getitem__   sM    	cdQh'''a(((z$$$r,   c                (   |\  }}|                      ||j        z              |                     ||j        z              t	          |j                  D ]=}t	          |j                  D ]&}|| j        ||z            ||z   <   ||_        ||_        '>d S r%   )rZ   r   r[   r!   rangerJ   r(   r'   )r)   rV   rS   r\   r'   dlinedcols          r*   __setitem__zTable.__setitem__   s    	cdT\1222dl 23334<(( 	 	Edl++  7;
4%<(t4	 	r,   r\   r    c                    t          | j                  |k     r4| j                            g            t          | j                  |k     2d S d S r%   )rQ   rJ   append)r)   r\   s     r*   rZ   zTable._ensure_has_line   sL    $*oo$$Jb!!! $*oo$$$$$$r,   r'   c                    | j         D ]I}t          |          |k     r4|                    t                                 t          |          |k     4Jd S r%   )rJ   rQ   rd   r   )r)   r'   r\   s      r*   r[   zTable._ensure_has_column   sT    J 	$ 	$Dd))c//DFF### d))c//	$ 	$r,   r   c                \    d                     t          t          | j                            S N
)joinmapreprrJ   r2   s    r*   r3   zTable.__repr__   s     yyT4:..///r,   source	list[int]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.
        N#Cell co-ordinates have not been setr   r      )r(   r'   
ValueErrorr_   r!   )r)   rS   rl   msgr:   is         r*   
cell_widthzTable.cell_width   s    
 8tx/7CS//!tDHdh./788 	* 	*AVDHqL))EEq(A---r,   Iterator[Cell]c              #     K   t                      }| j        D ]&}|D ]!}|r||vr|V  |                    |           "'d S r%   )setrJ   add)r)   seenr\   rS   s       r*   cellszTable.cells   si      %%J 	# 	#D # # #D,,JJJHHTNNN#	# 	#r,   c                   | j         dd         | _        | j        D ]}|                    |                     || j                              |j        s9|j        |j        d}t          |          t          j
        t          d |j        D                       |j        z            }t          |j        |j        |j        z             D ]%}t          | j        |         |          | j        |<   &dS )zCall ``cell.wrap()`` on all cells, and measure each column width
        after wrapping (result written in ``self.measured_widths``).
        Nr:   ro   c              3  4   K   | ]}t          |          V  d S r%   r   .0xs     r*   	<genexpr>zTable.rewrap.<locals>.<genexpr>   s(      !H!Ha,q//!H!H!H!H!H!Hr,   )rF   measured_widthsrz   r=   rt   r&   r(   r'   rq   mathceilmaxr!   r_   )r)   rS   rr   r:   r'   s        r*   rewrapzTable.rewrap   s     $}QQQ/J 		R 		RDIIDOOD$-@@IAAA< x48#3; oo%Ic!H!H4<!H!H!HHH4<WXXETXtx$,'>?? R R,/0DS0I5,Q,Q$S))R		R 		Rr,   
list[Cell]c                X    d}|D ]$}t          |t          |j                            }%|S )zfFor a given line, compute the number of physical lines it spans
        due to text wrapping.
        r   )r   rQ   r&   )r)   r\   physical_linesrS   s       r*   physical_lines_for_linezTable.physical_lines_for_line   s;      	D 	DD T\1B1BCCNNr,   c                    g }                                   dd fd}t           j                  D ]j\  }} j        r+| j        k    r |                     |d|                     n|                     |d|                     t                               |                    D ]}d	g}t          |          D ]\  }}|j        |k    r||j        k    rd
}	n(|t          |j
                  k    rd
}	n|j
        |         }	t          |	          t          |	          z
  }
|                    d|	                                         | j                  dz   |
z             z   d	z              |                    d
                    |                     l|                     |d                     d                    |          S )N-charr   lineno
int | Noner"   c           
        g }t          j                  D ][\  }}|9|dk    r3||f         |dz
  |f         u r|                    d|dz   z             @|                    | |dz   z             \|d         d         dk    rdnd}|d	         d         dk    rdnd}d
 t          |          D             }|                    |           |d                    t          j        t          ||d                              z   S )zfCalled on the line *before* lineno.
            Called with no *lineno* for the last sep.
            Nr   r   r.      r   +|c                L    g | ]!\  }}|d          dk    s|d          dk    rdnd"S )r   r   r   r   rC   )r   leftrights      r*   
<listcomp>z3Table.__str__.<locals>.writesep.<locals>.<listcomp>   sH       D% Aw#~~qSc  r,   r   F)strict)	enumerater   rd   r   ri   r   from_iterablezip)	r   r   outcolnor:   headtailgluer)   s	           r*   writesepzTable.__str__.<locals>.writesep   s4     C )$*> ? ? 3 3u&

VU]+tFQJ4E/FFFJJseai01111JJtuqy12222a&)s**33Db'!*++33D #+C==  D KK"''%"5c#tE6R6R6R"S"STTTTr,   =r   r   r.   r   rh   )r   N)r   r   r   r   r"   r   )r   r   rJ   rK   rd   r_   r   r'   r(   rQ   r&   r   ljustrt   r   ri   )r)   r   r   r   r\   physical_linelinestrr   rS   physical_text
adjust_lens   `          r*   __str__zTable.__str__   s   	U 	U 	U 	U 	U 	U 	U. &dj11 	- 	-LFD~ 2&DN":":

88C001111

88C00111!&t'C'CD'I'I!J!J - -%#,T??  KE4x5(( ))(*&#dl*;*;;;(*(,](C!$]!3!3l=6Q6Q!QJNN'-- OOD$2FGG ()      

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

88C==!!!yy~~r,   r%   )rF   rG   r"   r#   r"   r#   )rS   r   r"   r#   )rV   rW   r"   r   )rV   rW   rS   r   r"   r#   )r\   r    r"   r#   )r'   r    r"   r#   r>   )rS   r   rl   rm   r"   r    )r"   ru   )r\   r   r"   r    )r?   r@   rA   rB   r+   rO   rR   rU   r]   rb   rZ   r[   r3   rt   propertyrz   r   r   r   rC   r,   r*   rE   rE   8   sL       , ,\       ) ) ) )	) 	) 	) 	)% % % %   " " " "$ $ $ $
0 0 0 0. . . . # # # X#R R R R    7 7 7 7 7 7r,   rE   c                  \     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))chunks	list[str]r"   c                   g }| j         dk    rt          d| j         z            |                                 |r+g }d}|r| j        }n| j        }| j         t          |          z
  }| j        r|d                                         s|r|d= |rNt          |d                   }||z   |k    r-|                    |	                                           ||z  }nn|N|r1t          |d                   |k    r| 
                    ||||           | j        r|r|d                                         s|d= |r+|                    |d                    |          z              |+|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   r   )r:   rq   reversesubsequent_indentinitial_indentr   drop_whitespacestriprd   pop_handle_long_wordri   )r)   r   rJ   cur_linecur_lenindentr:   ls           r*   _wrap_chunkszTextWrapper._wrap_chunks  s   
 :??=
JKKK 	9HG -/,Jf!5!55E# F2J,<,<,>,> 5 2J  ,,Q;%''OOFJJLL111qLGG     I,vbz22U::&&vx%HHH# ! !"9K9K9M9M !RL 9Vbggh&7&77888?  	9B r,   wordr   
space_leftr    tuple[str, str]c                    d}t          |          D ]9\  }}|t          |          z  }||k    r|d|dz
           ||dz
  d         fc S :|dfS )z1Break line by unicode width instead of len(word).r   Nr   r   )r   r   )r)   r   r   totalrs   cs         r*   _break_wordzTextWrapper._break_wordA  sr    dOO 	4 	4DAq\!__$Ez!!Ga!eG}d1q577m3333 "Rxr,   r   c           	     "    d fd}g } ||          D ]w}t          |t                    D ]_\  }}|dk    r2|                     |d                    |                               =|                    t	          |                     `x|S )	zOverride original method that only split by 'wordsep_re'.

        This '_split' splits wide-characters into chunks by one character.
        tr   r"   r   c                T    t          t                                        |           S r%   )superr   _split)r   	__class__r)   s    r*   splitz!TextWrapper._split.<locals>.splitP  s!    d++221555r,   r   r   )r   r   r"   r   )r   r   extendri   list)r)   r   r   r   chunkwgr   s   `      r*   r   zTextWrapper._splitJ  s    	6 	6 	6 	6 	6 	6 	6 U4[[ 	+ 	+E|44 + +166MM%%

"3"34444MM$q''****	+
 r,   reversed_chunksr   r   r:   r#   c                   t          ||z
  d          }| j        r;|                     |d         |          \  }}|                    |           ||d<   dS |s)|                    |                                           dS dS )zGOverride original method for using self._break_word() instead of slice.r   r   N)r   break_long_wordsr   rd   r   )r)   r   r   r   r:   r   r   rs           r*   r   zTextWrapper._handle_long_word\  s     !,,
  	3##OB$7DDDAqOOA"#OB 	3OOO//1122222	3 	3r,   )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@   rA   rB   recompile
wordsep_rer   r   r   r   __classcell__r   s   @r*   r   r   	  s        EE	/ J, , , ,\        $3 3 3 3 3 3 3 3r,   r   F   rp   r   r   r:   r    kwargsr   r"   r   c                H    t          dd|i|}|                    |           S )Nr:   rC   )r   r=   )r   r:   r   r   s       r*   r<   r<   n  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.r   rC   zClassVar[dict[str, Any]]settings_defaultsr   outputbuilderr   r"   r#   c                V    t                                                       || _        d S r%   )r   r+   r   )r)   r   r   s     r*   r+   zTextWriter.__init__z  s$    r,   c                    t          | j        t          j                  sJ | j                            | j        | j                  }| j                            |           t          d|          j        | _        d S )NTextTranslator)	
isinstancedocumentr	   r   create_translator	walkaboutr   bodyr   )r)   visitors     r*   	translatezTextWriter.translate~  sf    $-88888,00MM(((+W55:r,   )r   r   r"   r#   r   )
r?   r@   rA   	supportedsettings_specr   __annotations__r+   r   r   r   s   @r*   r   r   s  sx         I0M244444KKK     ; ; ; ; ; ; ; ;r,   r   c                      e Zd ZU ded<   d fdZdd
ZefddZ	 	 	 ddd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 dd0Z!dd1Z"dd2Z#dd3Z$dd4Z%dd5Z&dd6Z'dd7Z(dd8Z)dd9Z*dd:Z+dd;Z,dd<Z-dd=Z.dd>Z/ddCZ0ddDZ1ddEZ2ddFZ3ddGZ4ddHZ5ddIZ6ddJZ7ddKZ8ddLZ9ddMZ:ddNZ;ddOZ<ddPZ=ddQZ>ddRZ?ddSZ@ddTZAddUZBddVZCddWZDddXZEddYZFddZZGdd[ZHdd\ZIdd]ZJdd^ZKdd_ZLdd`ZMddaZNddbZOddcZPdddZQddeZRddfZSddgZTddhZUddiZVddjZWddkZXddlZYddmZZddnZ[ddoZ\ddpZ]ddqZ^ddrZ_ddsZ`ddtZadduZbddvZcddwZdddxZeddyZfddzZgdd{Zhdd|Zidd}Zjdd~ZkddZlddZmddZnddZoddZpddZqddZrddZsddZtddZuddZvddZwddZxddZyddZzddZ{ddZ|ddZ}ddZ~ddZddZddZddZdd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   r   nodes.documentr"   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 | _        d S )Nwindowsz
nativerh   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  DGG!!jDGGDG K9"k= $ A@Bt3')"'"$	 	r,   r   r   c                J    | j         d                             d|f           d S Nr   )r   rd   )r)   r   s     r*   add_textzTextTranslator.add_text  s&    BDz*****r,   r   r    c                n    | j                             g            | j                            |           d S r%   )r   rd   r   )r)   r   s     r*   	new_statezTextTranslator.new_state  s5    2'''''r,   Tr   Nr=   r7   endSequence[str] | Nonefirst
str | Nonec                  
 | j                                         }t          | j                  | j                                        
g g d
fd}|D ]G\  }}|dk    r                    |           ! |                                 
|z   |f           g H |             |}r{d         d         
z
  }d         d         dgk    r                    d||gf           n=|d         d                             d          z   }	                    d||	gf           | j         d                                        d S )	Nr"   r#   c                     sd S r-t          d                              t          z
            } n'd                                                              } r| z  }                     | f           d S )Nr   r|   )r<   ri   MAXWIDTH
splitlinesrd   )resr  r   	maxindentresulttoformatr=   s    r*   	do_formatz+TextTranslator.end_state.<locals>.do_format  s      5bggh//x)7KLLLggh''2244 s
MM63-(((((r,   r   r   r   r   r   )r   r   sumr   rd   insertr   )r)   r=   r  r  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666vay|//222a)dV!4555Bv&&&&&r,   noder   c                0    |                      d           d S rI   r
  r)   r   s     r*   visit_documentzTextTranslator.visit_document      qr,   c                    |                                   | j                            d | j        d         D                       | _        d S )Nc              3  :   K   | ]\  }}|D ]}|od |z  |z   V  dS )r.   NrC   )r   r   rJ   r\   s       r*   r   z1TextTranslator.depart_document.<locals>.<genexpr>  s_       !
 !
!
 !
  *cFlT)!
 !
 !
 !
 !
 !
 !
r,   r   )r  r   ri   r   r   r#  s     r*   depart_documentzTextTranslator.depart_document  sO    GLL !
 !
!%Q!
 !
 !
 
 
			r,   c                T    | j         | j                 | _        | xj        dz  c_        d S rY   )r   r  _title_charr#  s     r*   visit_sectionzTextTranslator.visit_section  s/    ,T->?Qr,   c                &    | xj         dz  c_         d S rY   )r  r#  s     r*   depart_sectionzTextTranslator.depart_section  s    Qr,   c                0    |                      d           d S rI   r"  r#  s     r*   visit_topiczTextTranslator.visit_topic  r%  r,   c                .    |                                   d S r%   r  r#  s     r*   depart_topiczTextTranslator.depart_topic      r,   c                Z    |                      d           |                     d           d S )Nr   z-[ )r
  r  r#  s     r*   visit_rubriczTextTranslator.visit_rubric  s,    qer,   c                X    |                      d           |                                  d S )Nz ]-r  r  r#  s     r*   depart_rubriczTextTranslator.depart_rubric  s*    er,   c                    d S r%   rC   r#  s     r*   visit_compoundzTextTranslator.visit_compound      r,   c                    d S r%   rC   r#  s     r*   depart_compoundzTextTranslator.depart_compound  r;  r,   c                    d S r%   rC   r#  s     r*   visit_glossaryzTextTranslator.visit_glossary  r;  r,   c                    d S r%   rC   r#  s     r*   depart_glossaryzTextTranslator.depart_glossary  r;  r,   c                    t          |j        t          j                  r6|                     |                                dz              t          j        |                     d           d S )N: r   )r   parentr	   
Admonitionr  astextSkipNoder
  r#  s     r*   visit_titlezTextTranslator.visit_title  sX    dk5#344 	!MM$++--$.///. qr,   c                T   t          |j        t          j                  rd|j        d         d         z   }| j        j                            |          }|| j        j                            d          }|0d                    t          t          |                    | j
        z   S dS )N#idsr   r   .)r   rD  r	   sectionr   
secnumbersgetri   rj   r   r   )r)   r   
anchornamenumberss       r*   get_section_number_stringz(TextTranslator.get_section_number_string  s    dk5=11 	Kt{51!44Jl-11*==G,155b99"xxC 1 122T5JJJrr,   c                D   t          |j        t          j                  r| j        }nd}d}d                    d | j                                        D                       }| j        r| 	                    |          |z   }| j
                                         d|d|t          |          z  z  dg}t          | j                  dk    r3t          | j        d                   dk    r|                    d           | j        d                             d|f           d S )N^r   c              3  >   K   | ]}|d          dk    |d         V  dS )r   r   r   NrC   r~   s     r*   r   z.TextTranslator.depart_title.<locals>.<genexpr>  s.      EE!A$"**qt****EEr,   z%sr   r   r   )r   rD  r	   rM  r*  ri   r   r   r   rR  r   r   rQ   rd   )r)   r   r   r   titles        r*   depart_titlezTextTranslator.depart_title  s   dk5=11 	#DDDwwEET[__%6%6EEEEE 	?11$77$>DT44,t*<*<#<=rBt{q  SR%9%9Q%>%>IIaLLLB5z*****r,   c                    d S r%   rC   r#  s     r*   visit_subtitlezTextTranslator.visit_subtitle%  r;  r,   c                    d S r%   rC   r#  s     r*   depart_subtitlezTextTranslator.depart_subtitle(  r;  r,   c                0    |                      d           d S )Nz-- r  r#  s     r*   visit_attributionz TextTranslator.visit_attribution+      er,   c                    d S r%   rC   r#  s     r*   depart_attributionz!TextTranslator.depart_attribution.  r;  r,   c                    d S r%   rC   r#  s     r*   
visit_desczTextTranslator.visit_desc8  r;  r,   c                    d S r%   rC   r#  s     r*   depart_desczTextTranslator.depart_desc;  r;  r,   c                0    |                      d           d S rI   r"  r#  s     r*   visit_desc_signaturez#TextTranslator.visit_desc_signature>  r%  r,   c                4    |                      dd            d S )NFr=   r  r1  r#  s     r*   depart_desc_signaturez$TextTranslator.depart_desc_signatureA  s    Et,,,,,r,   c                    d S r%   rC   r#  s     r*   visit_desc_signature_linez(TextTranslator.visit_desc_signature_lineE  r;  r,   c                0    |                      d           d S rg   r]  r#  s     r*   depart_desc_signature_linez)TextTranslator.depart_desc_signature_lineH      dr,   c                b    |                                   |                     | j                   d S r%   )r
  r  r   r#  s     r*   visit_desc_contentz!TextTranslator.visit_desc_contentK  s,    dgr,   c                .    |                                   d S r%   r1  r#  s     r*   depart_desc_contentz"TextTranslator.depart_desc_contentO  r3  r,   c                    d S r%   rC   r#  s     r*   visit_desc_inlinez TextTranslator.visit_desc_inlineR  r;  r,   c                    d S r%   rC   r#  s     r*   depart_desc_inlinez!TextTranslator.depart_desc_inlineU  r;  r,   c                    d S r%   rC   r#  s     r*   visit_desc_namezTextTranslator.visit_desc_name[  r;  r,   c                    d S r%   rC   r#  s     r*   depart_desc_namezTextTranslator.depart_desc_name^  r;  r,   c                    d S r%   rC   r#  s     r*   visit_desc_addnamez!TextTranslator.visit_desc_addnamea  r;  r,   c                    d S r%   rC   r#  s     r*   depart_desc_addnamez"TextTranslator.depart_desc_addnamed  r;  r,   c                    d S r%   rC   r#  s     r*   visit_desc_typezTextTranslator.visit_desc_typeg  r;  r,   c                    d S r%   rC   r#  s     r*   depart_desc_typezTextTranslator.depart_desc_typej  r;  r,   c                0    |                      d           d S )Nz -> r]  r#  s     r*   visit_desc_returnsz!TextTranslator.visit_desc_returnsm  s    fr,   c                    d S r%   rC   r#  s     r*   depart_desc_returnsz"TextTranslator.depart_desc_returnsp  r;  r,   parameter_grouptype[Element]sig_open_parensig_close_parenc                   |                      |           d| _        d| _        d| _        d| _        fd|j        D             | _        t          | j                  | _        d| _	        |
                    dd          | _        |
                    dd          | _        | j        r| j	                                        | _	        | j                            |           dS )	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   c                0    g | ]}t          |          S rC   )r   )r   r   r  s     r*   r   z<TextTranslator._visit_sig_parameter_list.<locals>.<listcomp>  s0     '
 '
 '
/0Jq/**'
 '
 '
r,   , multi_line_parameter_listFmulti_line_trailing_commaN)r  is_first_paramoptional_param_levelparams_left_at_levelparam_group_indexchildrenlist_is_required_paramr  required_params_leftparam_separatorrO  r  trailing_commarstripr  rd   )r)   r   r  r  r  s     `  r*   _visit_sig_parameter_listz(TextTranslator._visit_sig_parameter_lists  s     	n%%%"$%!$%!!"'
 '
 '
 '
48M'
 '
 '
# %((C$D$D!#)-2Mu)U)U&"hh'BEJJ) 	A#'#7#>#>#@#@D O,,,,,r,   c                b    | j                                         }|                     |           d S r%   )r  r   r  )r)   r   r  s      r*   _depart_sig_parameter_listz)TextTranslator._depart_sig_parameter_list  s-    ,**,,o&&&&&r,   c                J    |                      |t          j        dd           d S )N())r  r   desc_parameterr#  s     r*   visit_desc_parameterlistz'TextTranslator.visit_desc_parameterlist  s%    &&tX-Dc3OOOOOr,   c                0    |                      |           d S r%   r  r#  s     r*   depart_desc_parameterlistz(TextTranslator.depart_desc_parameterlist      ''-----r,   c                J    |                      |t          j        dd           d S )N[])r  r   desc_type_parameterr#  s     r*   visit_desc_type_parameter_listz-TextTranslator.visit_desc_type_parameter_list  s&    &&tX-I3PSTTTTTr,   c                0    |                      |           d S 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k    s|                                  | j        rd| _        n#|s!| j        s|                     | j                   | j        dk    r| xj        dz  c_        n| xj        dz  c_        |                     |                                           | j	        | j
                 }|rt          | j	                  }| j
        dz   |k    }| o| j	        | j
        dz            }| j        dk    }|s|r@|s|r<|r	|s| j        r|                     | j                   |                     dd            n!| j        r|                     | j                   |r| xj
        dz  c_
        t          j        )Nr   Fr   ri  )r  r  r  r
  r  r  r  r  rF  r  r  rQ   r  r  r	   rG  )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 		$($=$A$ANN 	0"'D! 	0$*C 	0MM$.///$))%%*%%%%%*%%dkkmm$$$1$2HI 	04677H 2Q6(BM!! L/0F0JK  '+&?!&C#'55 #5 '75
 % 8(? 84CV 8MM$"6777Et444& 	0MM$./// 	(""a'""nr,   c                0    |                      |           d S r%   )r  r#  s     r*   visit_desc_type_parameterz(TextTranslator.visit_desc_type_parameter  s    !!$'''''r,   c                N   t          d |j        D                       | _        | xj        dz  c_        | j        | _        | j        r| j        r+|                                  |                     d           d S | j	        rH|                     | j
                   |                     d           |                     dd            d S |                     d           |                     | j
                   |                     dd            d S |                     d           d S )Nc              3  J   K   | ]}t          |t          j                  V  d S r%   )r   r   r  )r   r   s     r*   r   z5TextTranslator.visit_desc_optional.<locals>.<genexpr>  s@       (
 (
78Jq(122(
 (
 (
 (
 (
 (
r,   r   r  Fri  )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>   $' (
 (
<@M(
 (
 (
 %
 %
! 	!!Q&!!(,(A%) 	" 5   c""""" * 	5d2333c"""Et44444 c"""d2333Et4444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k    s| j        r|                     | j                   |                     d           |dk    r| 	                    dd            n|                     d           |dk    r| xj        dz  c_        d S d S )Nr   r   r  Fri  )
r  r  r  rQ   r  r  r  r  r  r  )r)   r   level	max_levelr  r  s         r*   depart_desc_optionalz#TextTranslator.depart_desc_optional  s   !!Q&!!)) 	5I4677H 2Q6(BM 	A%%! &%*QYY$2EYd2333MM# zzEt444 MM#A::""a'"""" :r,   c                    d S r%   rC   r#  s     r*   visit_desc_annotationz$TextTranslator.visit_desc_annotation  r;  r,   c                    d S r%   rC   r#  s     r*   depart_desc_annotationz%TextTranslator.depart_desc_annotation  r;  r,   c                .    |                                   d S r%   r"  r#  s     r*   visit_figurezTextTranslator.visit_figure	  r3  r,   c                .    |                                   d S r%   r1  r#  s     r*   depart_figurezTextTranslator.depart_figure  r3  r,   c                    d S r%   rC   r#  s     r*   visit_captionzTextTranslator.visit_caption  r;  r,   c                    d S r%   rC   r#  s     r*   depart_captionzTextTranslator.depart_caption  r;  r,   c                <    |                                   d| _        d S NT)r
  r  r#  s     r*   visit_productionlistz#TextTranslator.visit_productionlist  s     "&r,   c                @    d| _         |                     d           d S NFr=   )r  r  r#  s     r*   depart_productionlistz$TextTranslator.depart_productionlist  s$    "'E"""""r,   c                    d S r%   rC   r#  s     r*   visit_productionzTextTranslator.visit_production  r;  r,   c                    d S r%   rC   r#  s     r*   depart_productionz TextTranslator.depart_production   r;  r,   c                    t          d|d                   }|                                                                | _        |                     t          | j                  dz              d S )Nznodes.labelr   rp   )r   rF  r   	_footnoter
  rQ   )r)   r   labels      r*   visit_footnotezTextTranslator.visit_footnote#  sW    ]DG,,--//s4>**Q./////r,   c                B    |                      d| j        z             d S Nz[%s] r  )r  r  r#  s     r*   depart_footnotezTextTranslator.depart_footnote(  #    Wt~566666r,   c                   t          |          r@t          |d         t          j                  r |d                                         | _        nd| _        |                     t          | j                  dz              d S )Nr   r   rp   )rQ   r   r	   r  rF  	_citlabelr
  r#  s     r*   visit_citationzTextTranslator.visit_citation+  sl    t99 	 DGU[99 	 !!W^^--DNNDNs4>**Q./////r,   c                B    |                      d| j        z             d S r  )r  r  r#  s     r*   depart_citationzTextTranslator.depart_citation2  r  r,   c                    t           j        r%   r	   rG  r#  s     r*   visit_labelzTextTranslator.visit_label5  
    nr,   c                    d S r%   rC   r#  s     r*   visit_legendzTextTranslator.visit_legend8  r;  r,   c                    d S r%   rC   r#  s     r*   depart_legendzTextTranslator.depart_legend;  r;  r,   c                    d S r%   rC   r#  s     r*   visit_option_listz TextTranslator.visit_option_list@  r;  r,   c                    d S r%   rC   r#  s     r*   depart_option_listz!TextTranslator.depart_option_listC  r;  r,   c                0    |                      d           d S rI   r"  r#  s     r*   visit_option_list_itemz%TextTranslator.visit_option_list_itemF  r%  r,   c                .    |                                   d S r%   r1  r#  s     r*   depart_option_list_itemz&TextTranslator.depart_option_list_itemI  r3  r,   c                    d| _         d S r  )_firstoptionr#  s     r*   visit_option_groupz!TextTranslator.visit_option_groupL  s     r,   c                0    |                      d           d S )Nz     r]  r#  s     r*   depart_option_groupz"TextTranslator.depart_option_groupO  s    gr,   c                P    | j         r	d| _         d S |                     d           d S )NFr  )r  r  r#  s     r*   visit_optionzTextTranslator.visit_optionR  s3     	  %DMM$r,   c                    d S r%   rC   r#  s     r*   depart_optionzTextTranslator.depart_optionX  r;  r,   c                    d S r%   rC   r#  s     r*   visit_option_stringz"TextTranslator.visit_option_string[  r;  r,   c                    d S r%   rC   r#  s     r*   depart_option_stringz#TextTranslator.depart_option_string^  r;  r,   c                <    |                      |d                    d S )N	delimiterr]  r#  s     r*   visit_option_argumentz$TextTranslator.visit_option_argumenta  s    d;'(((((r,   c                    d S r%   rC   r#  s     r*   depart_option_argumentz%TextTranslator.depart_option_argumentd  r;  r,   c                    d S r%   rC   r#  s     r*   visit_descriptionz TextTranslator.visit_descriptiong  r;  r,   c                    d S r%   rC   r#  s     r*   depart_descriptionz!TextTranslator.depart_descriptionj  r;  r,   c                    t           j        r%   r  r#  s     r*   visit_tabular_col_specz%TextTranslator.visit_tabular_col_specm  r  r,   c                d    | j         j                            |d                    t          j        )NrF   )tablerF   rd   r	   rG  r#  s     r*   visit_colspeczTextTranslator.visit_colspecp  s(    
""4
#3444nr,   c                    d S r%   rC   r#  s     r*   visit_tgroupzTextTranslator.visit_tgroupt  r;  r,   c                    d S r%   rC   r#  s     r*   depart_tgroupzTextTranslator.depart_tgroupw  r;  r,   c                    d S r%   rC   r#  s     r*   visit_theadzTextTranslator.visit_theadz  r;  r,   c                    d S r%   rC   r#  s     r*   depart_theadzTextTranslator.depart_thead}  r;  r,   c                8    | j                                          d S r%   )r  rR   r#  s     r*   visit_tbodyzTextTranslator.visit_tbody  s    
  """""r,   c                    d S r%   rC   r#  s     r*   depart_tbodyzTextTranslator.depart_tbody  r;  r,   c                T    | j         j        r| j                                          d S d S r%   )r  rJ   rO   r#  s     r*   	visit_rowzTextTranslator.visit_row  s3    : 	!J     	! 	!r,   c                    d S r%   rC   r#  s     r*   
depart_rowzTextTranslator.depart_row  r;  r,   c                    t          |                    dd          dz   |                    dd          dz             | _        |                     d           d S )Nmorerowsr   r   morecols)r   r!   )r   rO  entryr
  r#  s     r*   visit_entryzTextTranslator.visit_entry  s^    HHZ++a/HHZ++a/
 
 

 	qr,   c                     j                              fd j                                        D                       } j                                         | j        _         j                             j                    `d S )Nc              3  X   K   | ]$}j                             |d                    V  %dS )r   N)r   ri   )r   r   r)   s     r*   r   z.TextTranslator.depart_entry.<locals>.<genexpr>  s5      JJ1DGLL1..JJJJJJr,   )	r   ri   r   r   r   r#  r   r  rU   r)   r   r   s   `  r*   depart_entryzTextTranslator.depart_entry  sv    w||JJJJ8I8IJJJJJ

DJ'''JJJr,   c                    t          | d          rd}t          |          |                     d           t                      | _        d S )Nr  z Nested tables are not supported.r   )hasattrNotImplementedErrorr
  rE   r  )r)   r   rr   s      r*   visit_tablezTextTranslator.visit_table  sH    4!! 	+4C%c***qWW


r,   c                    |                      t          | j                             | `|                     d           d S r  )r  r   r  r  r#  s     r*   depart_tablezTextTranslator.depart_table  s;    c$*oo&&&JE"""""r,   c                "   t          d|d                   }t          d|          }|                     d           |                     d                    d |D                       dz              |                                  t
          j        )Nznodes.bullet_listr   zIterable[nodes.list_item]r  c              3  >   K   | ]}|                                 V  d S r%   )rF  )r   ns     r*   r   z,TextTranslator.visit_acks.<locals>.<genexpr>  s*      ??q

??????r,   rL  )r   r
  r  ri   r  r	   rG  )r)   r   bullet_list
list_itemss       r*   
visit_ackszTextTranslator.visit_acks  s    .Q885{CC
qdii??J?????#EFFFnr,   c                    d|j         v r+|                     t          d          |d         z             |                     t          d                     t          j        )Naltz[image: %s]z[image])
attributesr  r   r	   rG  r#  s     r*   visit_imagezTextTranslator.visit_image  sR    DO##MM!M**T%[8999a	ll###nr,   c                    t          | j                  }|                     d           |                     dt          |z
  z             |                                  t          j        )Nr   r   )r  r   r
  r  r  r  r	   rG  )r)   r   r   s      r*   visit_transitionzTextTranslator.visit_transition  sX    T%&&qcX./000nr,   c                :    | j                             d           d S r  r   rd   r#  s     r*   visit_bullet_listz TextTranslator.visit_bullet_list        $$$$$r,   c                8    | j                                          d S r%   r   r   r#  s     r*   depart_bullet_listz!TextTranslator.depart_bullet_list      r,   c                h    | j                             |                    dd          dz
             d S )Nstartr   )r   rd   rO  r#  s     r*   visit_enumerated_listz$TextTranslator.visit_enumerated_list  s2      '1!5!5!9:::::r,   c                8    | j                                          d S r%   r@  r#  s     r*   depart_enumerated_listz%TextTranslator.depart_enumerated_list  rB  r,   c                :    | j                             d           d S )Nr<  r#  s     r*   visit_definition_listz$TextTranslator.visit_definition_list  r>  r,   c                8    | j                                          d S r%   r@  r#  s     r*   depart_definition_listz%TextTranslator.depart_definition_list  rB  r,   c                    | j         d         dk    r|                     d           d S | j         d         dk    rd S | j         dxx         dz  cc<   |                     t          t          | j         d                             dz              d S )Nr   r   rI  r   )r   r
  rQ   r   r#  s     r*   visit_list_itemzTextTranslator.visit_list_item  s    R B&&NN1r"b((D b!!!Q&!!!NN3s4#4R#899::Q>?????r,   c                    | j         d         dk    r|                     d           d S | j         d         dk    rd S |                     d| j         d         z             d S )Nr   z* r  rI  z%s. )r   r  r#  s     r*   depart_list_itemzTextTranslator.depart_list_item  sn    R B&&NNN&&&&&r"b((DNN$*;B*?!?N@@@@@r,   c                    t          t          |                    t          j                                      | _        d S r%   )rQ   r   findallr	   
classifier_classifier_count_in_lir#  s     r*   visit_definition_list_itemz)TextTranslator.visit_definition_list_item  s/    '*4U=M0N0N+O+O'P'P$$$r,   c                    d S r%   rC   r#  s     r*   depart_definition_list_itemz*TextTranslator.depart_definition_list_item  r;  r,   c                0    |                      d           d S rI   r"  r#  s     r*   
visit_termzTextTranslator.visit_term  r%  r,   c                D    | j         s|                     d            d S d S )Nr  rT  r  r#  s     r*   depart_termzTextTranslator.depart_term  s1    + 	%NNtN$$$$$	% 	%r,   c                0    |                      d           d S )Nz : r]  r#  s     r*   visit_classifierzTextTranslator.visit_classifier  r_  r,   c                d    | xj         dz  c_         | j         s|                     d            d S d S )Nr   r[  r\  r#  s     r*   depart_classifierz TextTranslator.depart_classifier  sE    $$)$$+ 	%NNtN$$$$$	% 	%r,   c                .    |                                   d S r%   r"  r#  s     r*   visit_definitionzTextTranslator.visit_definition  r3  r,   c                .    |                                   d S r%   r1  r#  s     r*   depart_definitionz TextTranslator.depart_definition  r3  r,   c                    d S r%   rC   r#  s     r*   visit_field_listzTextTranslator.visit_field_list  r;  r,   c                    d S r%   rC   r#  s     r*   depart_field_listz TextTranslator.depart_field_list   r;  r,   c                    d S r%   rC   r#  s     r*   visit_fieldzTextTranslator.visit_field  r;  r,   c                    d S r%   rC   r#  s     r*   depart_fieldzTextTranslator.depart_field  r;  r,   c                0    |                      d           d S rI   r"  r#  s     r*   visit_field_namezTextTranslator.visit_field_name	  r%  r,   c                \    |                      d           |                     d            d S )N:r[  r7  r#  s     r*   depart_field_namez TextTranslator.depart_field_name  s.    c4     r,   c                .    |                                   d S r%   r"  r#  s     r*   visit_field_bodyzTextTranslator.visit_field_body  r3  r,   c                .    |                                   d S r%   r1  r#  s     r*   depart_field_bodyz TextTranslator.depart_field_body  r3  r,   c                    d S r%   rC   r#  s     r*   visit_centeredzTextTranslator.visit_centered  r;  r,   c                    d S r%   rC   r#  s     r*   depart_centeredzTextTranslator.depart_centered  r;  r,   c                    d S r%   rC   r#  s     r*   visit_hlistzTextTranslator.visit_hlist  r;  r,   c                    d S r%   rC   r#  s     r*   depart_hlistzTextTranslator.depart_hlist  r;  r,   c                    d S r%   rC   r#  s     r*   visit_hlistcolzTextTranslator.visit_hlistcol"  r;  r,   c                    d S r%   rC   r#  s     r*   depart_hlistcolzTextTranslator.depart_hlistcol%  r;  r,   c                0    |                      d           d S rI   r"  r#  s     r*   visit_admonitionzTextTranslator.visit_admonition(  r%  r,   c                .    |                                   d S r%   r1  r#  s     r*   depart_admonitionz TextTranslator.depart_admonition+  r3  r,   c                0    |                      d           d S )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    ryt          |z
  t          d | j        d         d         d         D                       k    r=| j        dxx         t	          |          z  cc<   |                     |dz              d S | j        d                             dd| j	        gf           |                     |dz              d S )Nr   r   r   c              3  4   K   | ]}t          |          V  d S r%   )rQ   )r   ss     r*   r   z4TextTranslator._depart_admonition.<locals>.<genexpr>7  s(      (O(OAQ(O(O(O(O(O(Or,   rC  r  rq  )
r   tagnamer  r   rQ   r   r  r  r  r   )r)   r   r  r   s       r*   _depart_admonitionz!TextTranslator._depart_admonition1  s    .T%&&U3B  A%%B"1%**6!S(O(OR9KA9N(O(O(O%O%OOO R   CJJ.   NNN..... KO""1q47)n555NNN-----r,   c                0    |                      d           d S rI   r"  r#  s     r*   visit_versionmodifiedz$TextTranslator.visit_versionmodifiedV  r%  r,   c                .    |                                   d S r%   r1  r#  s     r*   depart_versionmodifiedz%TextTranslator.depart_versionmodifiedY  r3  r,   c                .    |                                   d S r%   r"  r#  s     r*   visit_literal_blockz"TextTranslator.visit_literal_block\  r3  r,   c                2    |                      d           d S r  r1  r#  s     r*   depart_literal_blockz#TextTranslator.depart_literal_block_      E"""""r,   c                0    |                      d           d S rI   r"  r#  s     r*   visit_doctest_blockz"TextTranslator.visit_doctest_blockb  r%  r,   c                2    |                      d           d S r  r1  r#  s     r*   depart_doctest_blockz#TextTranslator.depart_doctest_blocke  r  r,   c                N    |                                   | xj        dz  c_        d S rY   )r
  r  r#  s     r*   visit_line_blockzTextTranslator.visit_line_blockh  s,    q r,   c                    | xj         dz  c_         |                     dd            | j         s|                     d           d S d S )Nr   Fri  rh   )r  r  r  r#  s     r*   depart_line_blockz TextTranslator.depart_line_blockl  sY    q Et,,," 	 MM$	  	 r,   c                    d S r%   rC   r#  s     r*   
visit_linezTextTranslator.visit_liner  r;  r,   c                0    |                      d           d S rg   r]  r#  s     r*   depart_linezTextTranslator.depart_lineu  ro  r,   c                .    |                                   d S r%   r"  r#  s     r*   visit_block_quotez TextTranslator.visit_block_quotex  r3  r,   c                .    |                                   d S r%   r1  r#  s     r*   depart_block_quotez!TextTranslator.depart_block_quote{  r3  r,   c                    d S r%   rC   r#  s     r*   visit_compact_paragraphz&TextTranslator.visit_compact_paragraph~  r;  r,   c                    d S 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|                     d           d S d S rI   )r   rD  r	   rE  r   seealsor
  r#  s     r*   visit_paragraphzTextTranslator.visit_paragraph  sT    4;(899	$+x'788	 NN1		 	r,   c                    t          |j        t          j                  rt          |j        t          j                  r|                                  d S d S r%   )r   rD  r	   rE  r   r  r  r#  s     r*   depart_paragraphzTextTranslator.depart_paragraph  sR    4;(899	$+x'788	 NN		 	r,   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                    d S r%   rC   r#  s     r*   visit_pending_xrefz!TextTranslator.visit_pending_xref  r;  r,   c                    d S r%   rC   r#  s     r*   depart_pending_xrefz"TextTranslator.depart_pending_xref  r;  r,   c                    | j         r\|                    d          }|G|                     d                    t	          t
          |                    | j        z              d S d S d S )N	secnumberrL  )r   rO  r  ri   rj   r   r   )r)   r   rQ  s      r*   visit_referencezTextTranslator.visit_reference  sm     	Shh{++G"chhs3'8'899D<QQRRRRR	S 	S""r,   c                    d S r%   rC   r#  s     r*   depart_referencezTextTranslator.depart_reference  r;  r,   c                    t          j        |                    dd                    }|                     |           t           j        )NrV  rJ  )r	   r   rO  
visit_TextrG  r'  s      r*   visit_number_referencez%TextTranslator.visit_number_reference  s9    z$((7C0011nr,   c                    d S r%   rC   r#  s     r*   visit_download_referencez'TextTranslator.visit_download_reference  r;  r,   c                    d S r%   rC   r#  s     r*   depart_download_referencez(TextTranslator.depart_download_reference  r;  r,   c                0    |                      d           d S N*r]  r#  s     r*   visit_emphasiszTextTranslator.visit_emphasis      cr,   c                0    |                      d           d S r  r]  r#  s     r*   depart_emphasiszTextTranslator.depart_emphasis  r  r,   c                0    |                      d           d S r  r]  r#  s     r*   visit_literal_emphasisz%TextTranslator.visit_literal_emphasis  r  r,   c                0    |                      d           d S r  r]  r#  s     r*   depart_literal_emphasisz&TextTranslator.depart_literal_emphasis  r  r,   c                0    |                      d           d S Nz**r]  r#  s     r*   visit_strongzTextTranslator.visit_strong  ro  r,   c                0    |                      d           d S r  r]  r#  s     r*   depart_strongzTextTranslator.depart_strong  ro  r,   c                B    | j         rd S |                     d           d S r  r  r  r#  s     r*   visit_literal_strongz#TextTranslator.visit_literal_strong  *    " 	Fdr,   c                B    | j         rd S |                     d           d S r  r  r#  s     r*   depart_literal_strongz$TextTranslator.depart_literal_strong  r  r,   c                0    |                      d           d S )Nr   r]  r#  s     r*   visit_abbreviationz!TextTranslator.visit_abbreviation  s    br,   c                l    |                     dd          x}r|                     d| d           d S d S )Nexplanationr   z (r  )rO  r  )r)   r   r  s      r*   depart_abbreviationz"TextTranslator.depart_abbreviation  sK    ((="555; 	/MM-{---.....	/ 	/r,   c                ,    |                      |          S r%   )r  r#  s     r*   visit_manpagezTextTranslator.visit_manpage  s    **4000r,   c                ,    |                      |          S r%   )r  r#  s     r*   depart_manpagezTextTranslator.depart_manpage  s    ++D111r,   c                0    |                      d           d S r  r]  r#  s     r*   visit_title_referencez$TextTranslator.visit_title_reference  r  r,   c                0    |                      d           d S r  r]  r#  s     r*   depart_title_referencez%TextTranslator.depart_title_reference  r  r,   c                B    | j         rd S |                     d           d S N"r  r#  s     r*   visit_literalzTextTranslator.visit_literal  *    " 	Fcr,   c                B    | j         rd S |                     d           d S r  r  r#  s     r*   depart_literalzTextTranslator.depart_literal  r  r,   c                0    |                      d           d S )Nr   r]  r#  s     r*   visit_subscriptzTextTranslator.visit_subscript  r  r,   c                    d S r%   rC   r#  s     r*   depart_subscriptzTextTranslator.depart_subscript  r;  r,   c                0    |                      d           d S )NrT  r]  r#  s     r*   visit_superscriptz TextTranslator.visit_superscript  r  r,   c                    d S r%   rC   r#  s     r*   depart_superscriptz!TextTranslator.depart_superscript  r;  r,   c                n    |                      d|                                z             t          j        Nz[%s]r  rF  r	   rG  r#  s     r*   visit_footnote_referencez'TextTranslator.visit_footnote_reference  )    ft{{}},---nr,   c                n    |                      d|                                z             t          j        r  r  r#  s     r*   visit_citation_referencez'TextTranslator.visit_citation_reference  r  r,   r   c                T    |                      |                                           d S r%   )r  rF  r#  s     r*   r  zTextTranslator.visit_Text  s"    dkkmm$$$$$r,   c                    d S r%   rC   r#  s     r*   depart_TextzTextTranslator.depart_Text  r;  r,   c                    d S r%   rC   r#  s     r*   visit_generatedzTextTranslator.visit_generated  r;  r,   c                    d S r%   rC   r#  s     r*   depart_generatedzTextTranslator.depart_generated  r;  r,   c                \    d|d         v s
d|d         v r|                      d           d S d S Nxrefclassestermr  r]  r#  s     r*   visit_inlinezTextTranslator.visit_inline  @    T)_$$$y/(A(AMM# )B(Ar,   c                \    d|d         v s
d|d         v r|                      d           d S d S r	  r]  r#  s     r*   depart_inlinezTextTranslator.depart_inline  r  r,   c                    d S r%   rC   r#  s     r*   visit_containerzTextTranslator.visit_container  r;  r,   c                    d S r%   rC   r#  s     r*   depart_containerzTextTranslator.depart_container  r;  r,   c                0    |                      d           d S )Nz>>r]  r#  s     r*   visit_problematicz TextTranslator.visit_problematic  ro  r,   c                0    |                      d           d S )Nz<<r]  r#  s     r*   depart_problematicz!TextTranslator.depart_problematic"  ro  r,   c                    |                      d           |                     d|                                z             |                                  t          j        )Nr   z<SYSTEM MESSAGE: %s>)r
  r  rF  r  r	   rG  r#  s     r*   visit_system_messagez#TextTranslator.visit_system_message%  sL    q,t{{}}<===n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
    nr,   c                   d|                     dd                                          v rR|                     d           |                     |                                           |                     d           t          j        )Nr   formatr   r   Fr  )rO  r   r
  r  rF  r  r	   rG  r#  s     r*   	visit_rawzTextTranslator.visit_raw2  so    TXXh++113333NN1MM$++--(((NNN&&&nr,   
nodes.mathc                    d S r%   rC   r#  s     r*   
visit_mathzTextTranslator.visit_math9  r;  r,   c                    d S r%   rC   r#  s     r*   depart_mathzTextTranslator.depart_math<  r;  r,   nodes.math_blockc                .    |                                   d S r%   r"  r#  s     r*   visit_math_blockzTextTranslator.visit_math_block?  r3  r,   c                .    |                                   d S r%   r1  r#  s     r*   depart_math_blockz TextTranslator.depart_math_blockB  r3  r,   )r   r   r   r   r"   r#   )r   r   r"   r#   )r   r    r"   r#   )Tr  N)r=   r7   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@   rA   r   r+   r  	STDINDENTr
  r  r$  r(  r+  r-  r/  r2  visit_sidebardepart_sidebarr5  r8  r:  r=  r?  rA  rH  rR  rW  rY  r[  r^  ra  rc  re  rg  rj  rl  rn  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(  r,  r.  r4  r8  r:  r=  rA  rE  rG  rJ  rL  rN  rP  rU  rW  rY  r]  r_  ra  rc  re  rg  ri  rk  rm  ro  rr  rt  rv  rx  rz  r|  r~  r  r  r  r  r  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 P P P. . . .U U U U. . . .( ( ( (T( ( ( (   4( ( ( (2      
            ' ' ' '# # # #      0 0 0 0
7 7 7 70 0 0 07 7 7 7         
            ! ! ! !                   ) ) ) )                           # # # #   ! ! ! !            # # # #
         % % % %       ; ; ; ;       % % % %       
@ 
@ 
@ 
@A A A AQ Q Q Q      % % % %   % % % %
                     ! ! ! !                                 . . . .  (O)%M'N$L&M#K%L"J$K'O)"J$K!I#J%M'N%M'N         # # # #   # # # #! ! ! !                                                 S S S S      
                           
   
   / / / /1 1 1 12 2 2 2         
   
                  % % % %                                                       r,   r   )r   r   r:   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<   Writerr   r   rC   r,   r*   <module>rP     si   , , " " " " " "  				 				  . . . . . . . . . . & & & & & & & & # # # # # # # # ' ' ' ' ' '       - - - - - - - - 1 1 1 1 1 1 1<<<<<<<<<<$$$$$$$$,,,,,,,,0000001 1 1 1 1 1 1 18N N N N N N N Nb^3 ^3 ^3 ^3 ^3(& ^3 ^3 ^3B 	 %-     
; ; ; ; ; ; ; ;$~ ~ ~ ~ ~% ~ ~ ~ ~ ~r,   