
    7 fh                       d Z ddlmZ ddlZddlZddlZddlZddlmZm	Z	m
Z
 ddlmZmZ ddlmZmZmZ ddlmZmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZ erddlmZm Z  ddl!m"Z"  G d d          Z# G d d          Z$ G d de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)	GeneratorIterableSequence)chaingroupby)TYPE_CHECKINGAnycast)nodeswriterscolumn_width)addnodes)_admonitionlabels)SphinxTranslator)ElementText)TextBuilderc                  <    e Zd ZdZdddZddZddZddZddZ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       I/var/www/equiseq/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=    Z	ZZdhZZZZZZ4<ZZZZr*   c                8    t          | j        | j        f          S r#   )hashr%   r&   r0   s    r(   __hash__zCell.__hash__(   s    TXtx()))r*   boolc                <    | j         dk    o| j        d uo| j        d uS Nr   )r   r%   r&   r0   s    r(   __bool__zCell.__bool__+   s&    yBP484#7PDHD<PPr*   widthc                :    t          | j        |          | _        d S r#   )my_wrapr   r$   )r'   r9   s     r(   wrapz	Cell.wrap.   s    ty%00r*   N)r   r   r   )r   r   r   r   r   r   r    r!   r    r   )r    r   )r    r5   )r9   r   r    r!   )	__name__
__module____qualname____doc__r)   r1   r4   r8   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	separatorrE   current_linecurrent_col)r'   rE   s     r(   r)   zTable.__init__`   s6    ')
080DHH"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)rK   rL   r0   s    r(   add_rowzTable.add_rowg   s&     	Qr*   c                8    t          | j                  | _        dS )z*Sets the separator below the current line.N)lenrI   rJ   r0   s    r(   set_separatorzTable.set_separatorn   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)rK   rL   r   )r'   rR   s     r(   add_cellzTable.add_cellr   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_columnrI   )r'   rU   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#   )rY   r   rZ   r   rangerI   r&   r%   )r'   rU   rR   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#   )rP   rI   append)r'   r[   s     r(   rY   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#   )rI   rP   rc   r   )r'   r%   r[   s      r(   rZ   zTable._ensure_has_column   sT    J 	$ 	$Dd))c//DFF### d))c//	$ 	$r*   r   c                J    d                     d | j        D                       S )N
c              3  4   K   | ]}t          |          V  d S r#   )repr).0r[   s     r(   	<genexpr>z!Table.__repr__.<locals>.<genexpr>   s(      ;;d;;;;;;r*   )joinrI   r0   s    r(   r1   zTable.__repr__   s%    yy;;
;;;;;;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'   rR   rl   msgr9   is         r(   
cell_widthzTable.cell_width   s    
 8tx/7CS//!tDHdh./788 	* 	*AVDHqL))EEq(A---r*   Generator[Cell, None, None]c              #     K   t                      }| j        D ]&}|D ]!}|r||vr|V  |                    |           "'d S r#   )setrI   add)r'   seenr[   rR   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r9   ro   c              3  4   K   | ]}t          |          V  d S r#   r   ri   xs     r(   rj   zTable.rewrap.<locals>.<genexpr>   s(      !H!Ha,q//!H!H!H!H!H!Hr*   )rE   measured_widthsrz   r<   rt   r$   r&   r%   rq   mathceilmaxr   r^   )r'   rR   rr   r9   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   rP   r$   )r'   r[   physical_linesrR   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                   D             }|                    |           |d                    t          j        t          ||                              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   rB   )ri   leftrights      r(   
<listcomp>z3Table.__str__.<locals>.writesep.<locals>.<listcomp>   sH       D% Aw#~~qSc  r*   r   )	enumerater   rc   ziprk   r   from_iterable)	r   r   outcolnor9   headtailgluer'   s	           r(   writesepzTable.__str__.<locals>.writesep   s9     C )$*> ? ? 3 3u&QJJ'4
E0A+BBBJJseai01111JJtuqy12222a&)s**33Db'!*++33D #&sCG#4#4  D KK"''%"5c#tnn"E"EFFFFr*   =r   r   r,   r   rf   )r   N)r   r   r   r   r    r   )r   r   rI   rJ   rc   r^   r   r%   r&   rP   r$   r   ljustrt   r   rk   )r'   r   r   r   r[   physical_linelinestrr   rR   physical_text
adjust_lens   `          r(   __str__zTable.__str__   s   	G 	G 	G 	G 	G 	G 	G. &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!KjX        

2777++,,,,%-& 	

88C==!!!yy~~r*   r#   )rE   rF   r    r!   r    r!   )rR   r   r    r!   )rU   rV   r    r   )rU   rV   rR   r   r    r!   )r[   r   r    r!   )r%   r   r    r!   r=   )rR   r   rl   rm   r    r   )r    ru   )r[   r   r    r   )r>   r?   r@   rA   r)   rN   rQ   rT   r\   ra   rY   rZ   r1   rt   propertyrz   r   r   r   rB   r*   r(   rD   rD   2   sL       , ,Z       ) ) ) )	) 	) 	) 	)% % % %   " " " "$ $ $ $
< < < <. . . . # # # X#R R R R    4 4 4 4 4 4r*   rD   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            |                                 |r3g }d}|r| j        }n| j        }| j         t          |          z
  }| j        r#|d                                         dk    r|r|d= |rNt          |d                   }||z   |k    r-|                    |	                                           ||z  }nn|N|r1t          |d                   |k    r| 
                    ||||           | j        r#|r!|d                                         dk    r|d= |r+|                    |d                    |          z              |3|S )z_wrap_chunks(chunks : [string]) -> [string]

        The original _wrap_chunks uses len() to calculate width.
        This method respects wide/fullwidth characters for width adjustment.
        r   zinvalid width %r (must be > 0)r   r   )r9   rq   reversesubsequent_indentinitial_indentr   drop_whitespacestriprc   pop_handle_long_wordrk   )r'   r   rI   cur_linecur_lenindentr9   ls           r(   _wrap_chunkszTextWrapper._wrap_chunks  s    :??=
JKKK 	9HG -/,Jf!5!55E# r
(8(8(:(:b(@(@U(@2J  ,,Q;%''OOFJJLL111qLGG     I,vbz22U::&&vx%HHH# ! !Xb\5G5G5I5IR5O5O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 )z_break_word(word : string, space_left : int) -> (string, string)

        Break line by unicode width instead of len(word).
        r   Nr   r   )r   r   )r'   r   r   totalrs   cs         r(   _break_wordzTextWrapper._break_word7  st    
 dOO 	2 	2DAq\!__$Ez!!FQUF|T!a%&&\1111 "Rxr*   r   c           	     "    d fd}g } ||          D ]w}t          |t                    D ]_\  }}|dk    r2|                     |d                    |                               =|                    t	          |                     `x|S )	z_split(text : string) -> [string]

        Override original method that only split by 'wordsep_re'.
        This '_split' splits wide-characters into chunks by one character.
        tr   r    r   c                T    t          t                                        |           S r#   )superr   _split)r   	__class__r'   s    r(   splitz!TextWrapper._split.<locals>.splitI  s!    d++221555r*   r   r   )r   r   r    r   )r   r   extendrk   list)r'   r   r   r   chunkwgr   s   `      r(   r   zTextWrapper._splitC  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   r9   r!   c                   t          ||z
  d          }| j        r;|                     |d         |          \  }}|                    |           ||d<   dS |s)|                    |                                           dS dS )z_handle_long_word(chunks : [string],
                             cur_line : [string],
                             cur_len : int, width : int)

        Override original method for using self._break_word() instead of slice.
        r   r   N)r   break_long_wordsr   rc   r   )r'   r   r   r   r9   r   r   rs           r(   r   zTextWrapper._handle_long_wordT  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   r9   r   r    r!   )r>   r?   r@   rA   recompile
wordsep_rer   r   r   r   __classcell__r   s   @r(   r   r      s        EE	/0 0J- - - -^
 
 
 
     "3 3 3 3 3 3 3 3r*   r   F   rp   r   r   r9   r   kwargsr
   r    r   c                H    t          dd|i|}|                    |           S )Nr9   rB   )r   r<   )r   r9   r   r   s       r(   r;   r;   j  s*    **%*6**A66$<<r*   c                  J     e Zd ZU dZdZi Zded<   ded<   d fdZddZ xZ	S )
TextWriter)r   )zNo options here.r   rB   z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__v  s$    r*   c                    | j                             | j        | j                   }| j                            |           t	          t
          |          j        | _        d S r#   )r   create_translatordocument	walkaboutr   TextTranslatorbodyr   )r'   visitors     r(   	translatezTextWriter.translatez  sK    ,00MM(((>7338r*   )r   r   r    r!   r   )
r>   r?   r@   	supportedsettings_specr   __annotations__r)   r   r   r   s   @r(   r   r   o  sx         I0M(*****KKK     9 9 9 9 9 9 9 9r*   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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| _        |  g | _        d S )Nwindowsz
nativerf   r   )r   r)   configtext_newlinesnloslineseptext_sectioncharssectioncharstext_add_secnumbersadd_secnumberstext_secnumber_suffixsecnumber_suffixstatesstateindentlist_countersectionlevellineblocklevelcontext)r'   r   r   newlinesr   s       r(   r)   zTextTranslator.__init__  s    7+++;,y  DGG!!jDGGDG K9"k= $ A@Bt3')"$	 	r*   r   r   c                J    | j         d                             d|f           d S Nr   )r   rc   )r'   r   s     r(   add_textzTextTranslator.add_text  s&    BDz*****r*   r   r   c                n    | j                             g            | j                            |           d S r#   )r   rc   r   )r'   r   s     r(   	new_statezTextTranslator.new_state  s5    2'''''r*   Tr   Nr<   r5   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;   rk   MAXWIDTH
splitlinesrc   )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   rc   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 rH   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,   NrB   )ri   r   rI   r[   s       r(   rj   z1TextTranslator.depart_document.<locals>.<genexpr>  s]       !4 !4%2VU-2!4 !4%) "&!?3<$+> !4 !4 !4 !4 !4 !4 !4r*   r   )r  r   rk   r   r   r  s     r(   depart_documentzTextTranslator.depart_document  sO    GLL !4 !46:k!n!4 !4 !4 4 4			r*   c                T    | j         | j                 | _        | xj        dz  c_        d S rX   )r   r   _title_charr  s     r(   visit_sectionzTextTranslator.visit_section  s/    ,T->?Qr*   c                &    | xj         dz  c_         d S rX   )r   r  s     r(   depart_sectionzTextTranslator.depart_section  s    Qr*   c                0    |                      d           d S rH   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#   rB   r  s     r(   visit_compoundzTextTranslator.visit_compound      r*   c                    d S r#   rB   r  s     r(   depart_compoundzTextTranslator.depart_compound  r6  r*   c                    d S r#   rB   r  s     r(   visit_glossaryzTextTranslator.visit_glossary  r6  r*   c                    d S r#   rB   r  s     r(   depart_glossaryzTextTranslator.depart_glossary  r6  r*   c                    t          |j        t          j                  r6|                     |                                dz              t          j        |                     d           d S )N: r   )
isinstance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?  r@  r   sectionr   
secnumbersgetrk   mapr   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   NrB   r~   s     r(   rj   z.TextTranslator.depart_title.<locals>.<genexpr>  s.      EE!A$"**qt****EEr*   z%sr   r   r   )r?  r@  r   rI  r%  rk   r   r   r   rO  r   r   rP   rc   )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#   rB   r  s     r(   visit_subtitlezTextTranslator.visit_subtitle  r6  r*   c                    d S r#   rB   r  s     r(   depart_subtitlezTextTranslator.depart_subtitle  r6  r*   c                0    |                      d           d S )Nz-- r  r  s     r(   visit_attributionz TextTranslator.visit_attribution      er*   c                    d S r#   rB   r  s     r(   depart_attributionz!TextTranslator.depart_attribution"  r6  r*   c                    d S r#   rB   r  s     r(   
visit_desczTextTranslator.visit_desc,  r6  r*   c                    d S r#   rB   r  s     r(   depart_desczTextTranslator.depart_desc/  r6  r*   c                0    |                      d           d S rH   r  r  s     r(   visit_desc_signaturez#TextTranslator.visit_desc_signature2  r   r*   c                4    |                      dd            d S )NFr<   r  r,  r  s     r(   depart_desc_signaturez$TextTranslator.depart_desc_signature5  s    Et,,,,,r*   c                    d S r#   rB   r  s     r(   visit_desc_signature_linez(TextTranslator.visit_desc_signature_line9  r6  r*   c                0    |                      d           d S Nrf   rZ  r  s     r(   depart_desc_signature_linez)TextTranslator.depart_desc_signature_line<      dr*   c                b    |                                   |                     | j                   d S r#   )r  r  r   r  s     r(   visit_desc_contentz!TextTranslator.visit_desc_content?  s,    dgr*   c                .    |                                   d S r#   r,  r  s     r(   depart_desc_contentz"TextTranslator.depart_desc_contentC  r.  r*   c                    d S r#   rB   r  s     r(   visit_desc_inlinez TextTranslator.visit_desc_inlineF  r6  r*   c                    d S r#   rB   r  s     r(   depart_desc_inlinez!TextTranslator.depart_desc_inlineI  r6  r*   c                    d S r#   rB   r  s     r(   visit_desc_namezTextTranslator.visit_desc_nameO  r6  r*   c                    d S r#   rB   r  s     r(   depart_desc_namezTextTranslator.depart_desc_nameR  r6  r*   c                    d S r#   rB   r  s     r(   visit_desc_addnamez!TextTranslator.visit_desc_addnameU  r6  r*   c                    d S r#   rB   r  s     r(   depart_desc_addnamez"TextTranslator.depart_desc_addnameX  r6  r*   c                    d S r#   rB   r  s     r(   visit_desc_typezTextTranslator.visit_desc_type[  r6  r*   c                    d S r#   rB   r  s     r(   depart_desc_typezTextTranslator.depart_desc_type^  r6  r*   c                0    |                      d           d S )Nz -> rZ  r  s     r(   visit_desc_returnsz!TextTranslator.visit_desc_returnsa  s    fr*   c                    d S r#   rB   r  s     r(   depart_desc_returnsz"TextTranslator.depart_desc_returnsd  r6  r*   parameter_grouptype[Element]sig_open_parensig_close_parenc                   |                      |           d| _        d| _        d| _        d| _        fd|j        D             | _        t          | j                  | _        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 rB   )r?  )ri   r   r  s     r(   r   z<TextTranslator._visit_sig_parameter_list.<locals>.<listcomp>z  s#    &]&]&]!z!_'E'E&]&]&]r*   , multi_line_parameter_listFN)r  is_first_paramoptional_param_levelparams_left_at_levelparam_group_indexchildrenlist_is_required_paramr  required_params_leftparam_separatorrK  r  rstripr   rc   )r'   r  r  r  r  s     `  r(   _visit_sig_parameter_listz(TextTranslator._visit_sig_parameter_listg  s     	n%%%"$%!$%!!" '^&]&]&]t}&]&]&]#$'(C$D$D!#)-2Mu)U)U&) 	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
                 }|r}| j
        dz   t          | j	                  k    }| o| j	        | j
        dz            }| j        dk    }|s|r5|s|r1|                     | j                   |                     dd            n!| j        r|                     | j                   |r| xj
        dz  c_
        t          j        )Nr   Fr   rf  )r  r  r  r  r  r  r  r  rB  r  r  rP   r  r   rC  )r'   r  on_separate_lineis_requiredis_last_groupnext_is_requiredopt_param_left_at_levels          r(   visit_desc_parameterz#TextTranslator.visit_desc_parameter  s   9 	T%8 	T=VYZ=Z=ZNN 	0"'D! 	0$*C 	0MM$.///$))%%*%%%%%*%%dkkmm$$$1$2HI 	0 2Q6#d>Y:Z:ZZM!! L/0F0JK  '+&?!&C#& 5+ 5= 5L\ 5d2333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                B    g | ]}t          |t          j                  S rB   )r?  r   r  )ri   r   s     r(   r   z6TextTranslator.visit_desc_optional.<locals>.<listcomp>  s;     )A )A )A-. *4Ax7N)O)O )A )A )Ar*   r   r  Frf  )r  r  r  r  max_optional_param_levelr  r  r  r  r  r  r  r  s     r(   visit_desc_optionalz"TextTranslator.visit_desc_optional  sC   $' )A )A26-)A )A )A %B %B!!!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                b   | xj         dz  c_         | j        re| j         | j        dz
  k    r|                     | j                   |                     d           | j         dk    r|                     dd            n|                     d           | j         dk    r| xj        dz  c_        d S d S )Nr   r  r   Frf  )r  r  r  r  r  r  r  r  s     r(   depart_desc_optionalz#TextTranslator.depart_desc_optional  s    !!Q&!!) 	 (D,IA,MMMd2333MM# (A--Et444 MM#$))""a'"""" *)r*   c                    d S r#   rB   r  s     r(   visit_desc_annotationz$TextTranslator.visit_desc_annotation  r6  r*   c                    d S r#   rB   r  s     r(   depart_desc_annotationz%TextTranslator.depart_desc_annotation  r6  r*   c                .    |                                   d S r#   r  r  s     r(   visit_figurezTextTranslator.visit_figure  r.  r*   c                .    |                                   d S r#   r,  r  s     r(   depart_figurezTextTranslator.depart_figure  r.  r*   c                    d S r#   rB   r  s     r(   visit_captionzTextTranslator.visit_caption  r6  r*   c                    d S r#   rB   r  s     r(   depart_captionzTextTranslator.depart_caption  r6  r*   c                r   |                                   g }t          t          t          j                 |          }|D ]}|                    |d                    t          d |D                       }d }|D ]}|d         r:|                     |d                             |          dz              |d         }n*|(|                     ddt          |          z  z             |                     |
                                | j        z              |                     d           t          j        )N	tokennamec              3  4   K   | ]}t          |          V  d S r#   rP   )ri   names     r(   rj   z6TextTranslator.visit_productionlist.<locals>.<genexpr>  s(      114SYY111111r*   z ::=z%s    r,   Fr<   )r  r   r   r   
productionrc   r   r  r   rP   rB  r   r  r   rC  )r'   r  namesproductionlistr  maxlenlastnames          r(   visit_productionlistz#TextTranslator.visit_productionlist  s7   hx':;TBB( 	2 	2JLLK0111111511111( 	9 	9J+& @j5;;FCCfLMMM%k2%h#H*=>???MM*++--78888E"""nr*   c                    t          t          j        |d                   }|                                                                | _        |                     t          | j                  dz              d S )Nr   rp   )r   r   labelrB  r   	_footnoter  rP   )r'   r  r  s      r(   visit_footnotezTextTranslator.visit_footnote  sY    U[$q'**--//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   )rP   r?  r   r  rB  	_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_citation  r  r*   c                    t           j        r#   r   rC  r  s     r(   visit_labelzTextTranslator.visit_label  
    nr*   c                    d S r#   rB   r  s     r(   visit_legendzTextTranslator.visit_legend  r6  r*   c                    d S r#   rB   r  s     r(   depart_legendzTextTranslator.depart_legend   r6  r*   c                    d S r#   rB   r  s     r(   visit_option_listz TextTranslator.visit_option_list%  r6  r*   c                    d S r#   rB   r  s     r(   depart_option_listz!TextTranslator.depart_option_list(  r6  r*   c                0    |                      d           d S rH   r  r  s     r(   visit_option_list_itemz%TextTranslator.visit_option_list_item+  r   r*   c                .    |                                   d S r#   r,  r  s     r(   depart_option_list_itemz&TextTranslator.depart_option_list_item.  r.  r*   c                    d| _         d S )NT)_firstoptionr  s     r(   visit_option_groupz!TextTranslator.visit_option_group1  s     r*   c                0    |                      d           d S )Nz     rZ  r  s     r(   depart_option_groupz"TextTranslator.depart_option_group4  s    gr*   c                P    | j         r	d| _         d S |                     d           d S )NFr  )r  r  r  s     r(   visit_optionzTextTranslator.visit_option7  s3     	  %DMM$r*   c                    d S r#   rB   r  s     r(   depart_optionzTextTranslator.depart_option=  r6  r*   c                    d S r#   rB   r  s     r(   visit_option_stringz"TextTranslator.visit_option_string@  r6  r*   c                    d S r#   rB   r  s     r(   depart_option_stringz#TextTranslator.depart_option_stringC  r6  r*   c                <    |                      |d                    d S )N	delimiterrZ  r  s     r(   visit_option_argumentz$TextTranslator.visit_option_argumentF  s    d;'(((((r*   c                    d S r#   rB   r  s     r(   depart_option_argumentz%TextTranslator.depart_option_argumentI  r6  r*   c                    d S r#   rB   r  s     r(   visit_descriptionz TextTranslator.visit_descriptionL  r6  r*   c                    d S r#   rB   r  s     r(   depart_descriptionz!TextTranslator.depart_descriptionO  r6  r*   c                    t           j        r#   r  r  s     r(   visit_tabular_col_specz%TextTranslator.visit_tabular_col_specR  r  r*   c                d    | j         j                            |d                    t          j        )NrE   )tablerE   rc   r   rC  r  s     r(   visit_colspeczTextTranslator.visit_colspecU  s(    
""4
#3444nr*   c                    d S r#   rB   r  s     r(   visit_tgroupzTextTranslator.visit_tgroupY  r6  r*   c                    d S r#   rB   r  s     r(   depart_tgroupzTextTranslator.depart_tgroup\  r6  r*   c                    d S r#   rB   r  s     r(   visit_theadzTextTranslator.visit_thead_  r6  r*   c                    d S r#   rB   r  s     r(   depart_theadzTextTranslator.depart_theadb  r6  r*   c                8    | j                                          d S r#   )r  rQ   r  s     r(   visit_tbodyzTextTranslator.visit_tbodye  s    
  """""r*   c                    d S r#   rB   r  s     r(   depart_tbodyzTextTranslator.depart_tbodyh  r6  r*   c                T    | j         j        r| j                                          d S d S r#   )r  rI   rN   r  s     r(   	visit_rowzTextTranslator.visit_rowk  s3    : 	!J     	! 	!r*   c                    d S r#   rB   r  s     r(   
depart_rowzTextTranslator.depart_rowo  r6  r*   c                    t          |                    dd          dz   |                    dd          dz             | _        |                     d           d S )Nmorerowsr   r   morecols)r   r   )r   rK  entryr  r  s     r(   visit_entryzTextTranslator.visit_entryr  s^    HHZ++a/*a9P9PST9T
 
 

 	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   rk   )ri   r   r'   s     r(   rj   z.TextTranslator.depart_entry.<locals>.<genexpr>y  s5      JJ1DGLL1..JJJJJJr*   )	r   rk   r   r   r   r  r   r  rT   r'   r  r   s   `  r(   depart_entryzTextTranslator.depart_entryx  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  rD   r  )r'   r  rr   s      r(   visit_tablezTextTranslator.visit_table  sH    4!! 	+4C%c***qWW


r*   c                    |                      t          | j                             | `|                     d           d S NFr  )r  r   r  r  r  s     r(   depart_tablezTextTranslator.depart_table  s;    c$*oo&&&JE"""""r*   c                `   t          t          j        |d                   }t          t          t          j                 |          }|                     d           |                     d                    d |D                       dz              |                                  t          j	        )Nr   r  c              3  >   K   | ]}|                                 V  d S r#   )rB  )ri   ns     r(   rj   z,TextTranslator.visit_acks.<locals>.<genexpr>  s*      ??q

??????r*   rH  )
r   r   bullet_listr   	list_itemr  r  rk   r  rC  )r'   r  r-  
list_itemss       r(   
visit_ackszTextTranslator.visit_acks  s    5,d1g66(5?3[AA
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   rC  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   rC  )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   rc   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   rc   rK  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  r>  r*   c                :    | j                             d           d S )Nr8  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  r>  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   rE  r   )r   r  rP   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  rE  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#   )rP   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#   rB   r  s     r(   depart_definition_list_itemz*TextTranslator.depart_definition_list_item  r6  r*   c                0    |                      d           d S rH   r  r  s     r(   
visit_termzTextTranslator.visit_term  r   r*   c                D    | j         s|                     d            d S d S )Nr  rP  r  r  s     r(   depart_termzTextTranslator.depart_term  s1    + 	%NNtN$$$$$	% 	%r*   c                0    |                      d           d S )Nz : rZ  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   rW  rX  r  s     r(   depart_classifierz TextTranslator.depart_classifier  sE    $$)$$+ 	%NNtN$$$$$	% 	%r*   c                .    |                                   d S r#   r  r  s     r(   visit_definitionzTextTranslator.visit_definition  r.  r*   c                .    |                                   d S r#   r,  r  s     r(   depart_definitionz TextTranslator.depart_definition  r.  r*   c                    d S r#   rB   r  s     r(   visit_field_listzTextTranslator.visit_field_list  r6  r*   c                    d S r#   rB   r  s     r(   depart_field_listz TextTranslator.depart_field_list  r6  r*   c                    d S r#   rB   r  s     r(   visit_fieldzTextTranslator.visit_field  r6  r*   c                    d S r#   rB   r  s     r(   depart_fieldzTextTranslator.depart_field  r6  r*   c                0    |                      d           d S rH   r  r  s     r(   visit_field_namezTextTranslator.visit_field_name  r   r*   c                \    |                      d           |                     d            d S )N:rW  r2  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  r.  r*   c                .    |                                   d S r#   r,  r  s     r(   depart_field_bodyz TextTranslator.depart_field_body  r.  r*   c                    d S r#   rB   r  s     r(   visit_centeredzTextTranslator.visit_centered  r6  r*   c                    d S r#   rB   r  s     r(   depart_centeredzTextTranslator.depart_centered  r6  r*   c                    d S r#   rB   r  s     r(   visit_hlistzTextTranslator.visit_hlist   r6  r*   c                    d S r#   rB   r  s     r(   depart_hlistzTextTranslator.depart_hlist  r6  r*   c                    d S r#   rB   r  s     r(   visit_hlistcolzTextTranslator.visit_hlistcol  r6  r*   c                    d S r#   rB   r  s     r(   depart_hlistcolzTextTranslator.depart_hlistcol	  r6  r*   c                0    |                      d           d S rH   r  r  s     r(   visit_admonitionzTextTranslator.visit_admonition  r   r*   c                .    |                                   d S r#   r,  r  s     r(   depart_admonitionz TextTranslator.depart_admonition  r.  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#   r  )ri   ss     r(   rj   z4TextTranslator._depart_admonition.<locals>.<genexpr>  s(      (O(OAQ(O(O(O(O(O(Or*   r>  r  rm  )
r   tagnamer  r   rP   r   r  r  r  r   )r'   r  r  r   s       r(   _depart_admonitionz!TextTranslator._depart_admonition  s    .T%&&U3B  A%%B"1%**6!S(O(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 rH   r  r  s     r(   visit_versionmodifiedz$TextTranslator.visit_versionmodified8  r   r*   c                .    |                                   d S r#   r,  r  s     r(   depart_versionmodifiedz%TextTranslator.depart_versionmodified;  r.  r*   c                .    |                                   d S r#   r  r  s     r(   visit_literal_blockz"TextTranslator.visit_literal_block>  r.  r*   c                2    |                      d           d S r(  r,  r  s     r(   depart_literal_blockz#TextTranslator.depart_literal_blockA      E"""""r*   c                0    |                      d           d S rH   r  r  s     r(   visit_doctest_blockz"TextTranslator.visit_doctest_blockD  r   r*   c                2    |                      d           d S r(  r,  r  s     r(   depart_doctest_blockz#TextTranslator.depart_doctest_blockG  r  r*   c                N    |                                   | xj        dz  c_        d S rX   )r  r   r  s     r(   visit_line_blockzTextTranslator.visit_line_blockJ  s,    q r*   c                    | xj         dz  c_         |                     dd            | j         s|                     d           d S d S )Nr   Frf  rf   )r   r  r  r  s     r(   depart_line_blockz TextTranslator.depart_line_blockN  sY    q Et,,," 	 MM$	  	 r*   c                    d S r#   rB   r  s     r(   
visit_linezTextTranslator.visit_lineT  r6  r*   c                0    |                      d           d S rk  rZ  r  s     r(   depart_linezTextTranslator.depart_lineW  rm  r*   c                .    |                                   d S r#   r  r  s     r(   visit_block_quotez TextTranslator.visit_block_quoteZ  r.  r*   c                .    |                                   d S r#   r,  r  s     r(   depart_block_quotez!TextTranslator.depart_block_quote]  r.  r*   c                    d S r#   rB   r  s     r(   visit_compact_paragraphz&TextTranslator.visit_compact_paragraph`  r6  r*   c                    d S r#   rB   r  s     r(   depart_compact_paragraphz'TextTranslator.depart_compact_paragraphc  r6  r*   c                    t          |j        t          j                  rt          |j        t          j                  r|                     d           d S d S rH   )r?  r@  r   rA  r   seealsor  r  s     r(   visit_paragraphzTextTranslator.visit_paragraphf  sR    $+u'788 	dk8#344	NN1	 	r*   c                    t          |j        t          j                  rt          |j        t          j                  r|                                  d S d S r#   )r?  r@  r   rA  r   r  r  r  s     r(   depart_paragraphzTextTranslator.depart_paragraphk  sP    $+u'788 	dk8#344	NN	 	r*   c                    t           j        r#   r  r  s     r(   visit_targetzTextTranslator.visit_targetp  r  r*   c                    t           j        r#   r  r  s     r(   visit_indexzTextTranslator.visit_indexs  r  r*   c                    t           j        r#   r  r  s     r(   visit_toctreezTextTranslator.visit_toctreev  r  r*   c                    t           j        r#   r  r  s     r(   visit_substitution_definitionz,TextTranslator.visit_substitution_definitiony  r  r*   c                    d S r#   rB   r  s     r(   visit_pending_xrefz!TextTranslator.visit_pending_xref|  r6  r*   c                    d S r#   rB   r  s     r(   depart_pending_xrefz"TextTranslator.depart_pending_xref  r6  r*   c                    | j         r\|                    d          }|G|                     d                    t	          t
          |                    | j        z              d S d S d S )N	secnumberrH  )r   rK  r  rk   rL  r   r   )r'   r  rN  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#   rB   r  s     r(   depart_referencezTextTranslator.depart_reference  r6  r*   c                    t          j        |                    dd                    }|                     |           t           j        )NrS  rF  )r   r   rK  
visit_TextrC  r!  s      r(   visit_number_referencez%TextTranslator.visit_number_reference  s9    z$((7C0011nr*   c                    d S r#   rB   r  s     r(   visit_download_referencez'TextTranslator.visit_download_reference  r6  r*   c                    d S r#   rB   r  s     r(   depart_download_referencez(TextTranslator.depart_download_reference  r6  r*   c                0    |                      d           d S N*rZ  r  s     r(   visit_emphasiszTextTranslator.visit_emphasis      cr*   c                0    |                      d           d S r  rZ  r  s     r(   depart_emphasiszTextTranslator.depart_emphasis  r  r*   c                0    |                      d           d S r  rZ  r  s     r(   visit_literal_emphasisz%TextTranslator.visit_literal_emphasis  r  r*   c                0    |                      d           d S r  rZ  r  s     r(   depart_literal_emphasisz&TextTranslator.depart_literal_emphasis  r  r*   c                0    |                      d           d S Nz**rZ  r  s     r(   visit_strongzTextTranslator.visit_strong  rm  r*   c                0    |                      d           d S r  rZ  r  s     r(   depart_strongzTextTranslator.depart_strong  rm  r*   c                0    |                      d           d S r  rZ  r  s     r(   visit_literal_strongz#TextTranslator.visit_literal_strong  rm  r*   c                0    |                      d           d S r  rZ  r  s     r(   depart_literal_strongz$TextTranslator.depart_literal_strong  rm  r*   c                0    |                      d           d S r7   rZ  r  s     r(   visit_abbreviationz!TextTranslator.visit_abbreviation  s    br*   c                p    |                     d          r |                     d|d         z             d S d S )Nexplanationz (%s))r$  r  r  s     r(   depart_abbreviationz"TextTranslator.depart_abbreviation  sB    <<&& 	9MM'D$7788888	9 	9r*   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  rZ  r  s     r(   visit_title_referencez$TextTranslator.visit_title_reference  r  r*   c                0    |                      d           d S r  rZ  r  s     r(   depart_title_referencez%TextTranslator.depart_title_reference  r  r*   c                0    |                      d           d S N"rZ  r  s     r(   visit_literalzTextTranslator.visit_literal  r  r*   c                0    |                      d           d S r  rZ  r  s     r(   depart_literalzTextTranslator.depart_literal  r  r*   c                0    |                      d           d S )Nr   rZ  r  s     r(   visit_subscriptzTextTranslator.visit_subscript  r  r*   c                    d S r#   rB   r  s     r(   depart_subscriptzTextTranslator.depart_subscript  r6  r*   c                0    |                      d           d S )NrQ  rZ  r  s     r(   visit_superscriptz TextTranslator.visit_superscript  r  r*   c                    d S r#   rB   r  s     r(   depart_superscriptz!TextTranslator.depart_superscript  r6  r*   c                n    |                      d|                                z             t          j        Nz[%s]r  rB  r   rC  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  rB  r  s     r(   r  zTextTranslator.visit_Text  s"    dkkmm$$$$$r*   c                    d S r#   rB   r  s     r(   depart_TextzTextTranslator.depart_Text  r6  r*   c                    d S r#   rB   r  s     r(   visit_generatedzTextTranslator.visit_generated  r6  r*   c                    d S r#   rB   r  s     r(   depart_generatedzTextTranslator.depart_generated  r6  r*   c                \    d|d         v s
d|d         v r|                      d           d S d S Nxrefclassestermr  rZ  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  rZ  r  s     r(   depart_inlinezTextTranslator.depart_inline  r  r*   c                    d S r#   rB   r  s     r(   visit_containerzTextTranslator.visit_container  r6  r*   c                    d S r#   rB   r  s     r(   depart_containerzTextTranslator.depart_container  r6  r*   c                0    |                      d           d S )Nz>>rZ  r  s     r(   visit_problematicz TextTranslator.visit_problematic  rm  r*   c                0    |                      d           d S )Nz<<rZ  r  s     r(   depart_problematicz!TextTranslator.depart_problematic  rm  r*   c                    |                      d           |                     d|                                z             |                                  t          j        )Nr   z<SYSTEM MESSAGE: %s>)r  r  rB  r  r   rC  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  )rK  r   r  r  rB  r  r   rC  r  s     r(   	visit_rawzTextTranslator.visit_raw  so    TXXh++113333NN1MM$++--(((NN%N(((nr*   c                    d S r#   rB   r  s     r(   
visit_mathzTextTranslator.visit_math  r6  r*   c                    d S r#   rB   r  s     r(   depart_mathzTextTranslator.depart_math  r6  r*   c                .    |                                   d S r#   r  r  s     r(   visit_math_blockzTextTranslator.visit_math_block  r.  r*   c                .    |                                   d S r#   r,  r  s     r(   depart_math_blockz TextTranslator.depart_math_block  r.  r*   )r   r   r   r   r    r!   )r   r   r    r!   )r   r   r    r!   )Tr  N)r<   r5   r  r  r	  r
  r    r!   )r  r   r    r!   )r  r   r    r   )
r  r   r  r  r  r   r  r   r    r!   )r  r   r    r!   )r>   r?   r@   r   r)   r  	STDINDENTr  r  r  r#  r&  r(  r*  r-  visit_sidebardepart_sidebarr0  r3  r5  r8  r:  r<  rD  rO  rT  rV  rX  r[  r^  r`  rb  rd  rg  ri  rl  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)  r0  r4  r6  r9  r=  rA  rC  rF  rH  rJ  rL  rQ  rS  rU  rY  r[  r]  r_  ra  rc  re  rg  ri  rk  rn  rp  rr  rt  rv  rx  rz  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?             6+ + + + '0 ( ( ( ( (
 Y]$' $' $' $' $'L   4 4 4 4              M!N                        + + + +                      - - - -                                          - - - -6' ' ' 'P P P P. . . .U U U U. . . .       D( ( ( (   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      
                                 9 9 9 91 1 1 12 2 2 2                              % % % %                                                       r*   r   )r   r   r9   r   r   r
   r    r   ),rA   
__future__r   r   r   r   textwrapcollections.abcr   r   r   	itertoolsr   r   typingr	   r
   r   docutilsr   r   docutils.utilsr   sphinxr   sphinx.localer   r   sphinx.util.docutilsr   docutils.nodesr   r   sphinx.builders.textr   r   rD   r   r  r#  r;   Writerr   r   rB   r*   r(   <module>rG     sQ   , , " " " " " "  				 				  9 9 9 9 9 9 9 9 9 9 $ $ $ $ $ $ $ $ + + + + + + + + + + # # # # # # # # ' ' ' ' ' '       - - - - - - - - 1 1 1 1 1 1 1,,,,,,,,0000001 1 1 1 1 1 1 12J J J J J J J JZd3 d3 d3 d3 d3(& d3 d3 d3N 	 %-     
9 9 9 9 9 9 9 9"Y Y Y Y Y% Y Y Y Y Yr*   