
    }c\              
          d Z ddlZddlZddlZddlZddlmZmZ ddlm	Z	m
Z
mZmZmZmZmZmZ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$  G d d          Z% G d d          Z& G d dej'                  Z'dZ(dZ)e(fde*de+de
dee*         fdZ, G d dej-                  Z. G d de"          Z/dS )z&Custom docutils writer for plain text.    N)chaingroupby)TYPE_CHECKINGAnyDict	GeneratorIterableListOptionalSetTupleUnioncast)nodeswriters)ElementTextcolumn_width)addnodes)_admonitionlabels)SphinxTranslator)TextBuilderc            	       T    e Zd ZdZddedededdfd	Zdefd
ZdefdZdeddfdZ	dS )CellzVRepresents a cell in a table.
    It can span multiple columns or multiple lines.
        textrowspancolspanreturnNc                 Z    || _         g | _        || _        || _        d | _        d | _        d S N)r   wrappedr    r!   colrow)selfr   r    r!   s       3lib/python3.11/site-packages/sphinx/writers/text.py__init__zCell.__init__   s0    	"$"&"&    c                 f    d                     | j        | j        | j        | j        | j                  S )Nz<Cell {!r} {}v{}/{}>{}>)formatr   r'   r    r&   r!   r(   s    r)   __repr__zCell.__repr__"   s/    (//Itxtx
 
 	
r+   c                 8    t          | j        | j        f          S r$   )hashr&   r'   r.   s    r)   __hash__zCell.__hash__'   s    TXtx()))r+   widthc                 :    t          | j        |          | _        d S r$   )my_wrapr   r%   )r(   r3   s     r)   wrapz	Cell.wrap*   s    ty%00r+   )r   r   r   )
__name__
__module____qualname____doc__strintr*   r/   r2   r6    r+   r)   r   r      s         ' 'S ' '# 'd ' ' ' '
# 
 
 
 

*# * * * *1# 1$ 1 1 1 1 1 1r+   r   c                   >   e Zd ZdZddee         ddfdZddZddZde	ddfd	Z
d
eeef         de	fdZd
eeef         de	ddfdZdeddfdZdeddfdZdefdZde	dee         defdZedee	ddf         fd            ZddZdee	         defdZdef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colwidthr"   c                 T    g | _         d| _        ||ng | _        d| _        d| _        d S Nr   )lines	separatorr@   current_linecurrent_col)r(   r@   s     r)   r*   zTable.__init__\   s6    ')
08$LHH"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)rE   rF   r.   s    r)   add_rowzTable.add_rowc   s&     	Qr+   c                 8    t          | j                  | _        dS )z*Sets the separator below the current line.N)lenrC   rD   r.   s    r)   set_separatorzTable.set_separatorj   s    TZr+   cellc                     | | 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)rE   rF   r!   )r(   rL   s     r)   add_cellzTable.add_celln   s{     4$d&667 	"! 4$d&667 	"48T 001DL(r+   posc                     |\  }}|                      |dz              |                     |dz              | j        |         |         S Nr   )_ensure_has_line_ensure_has_columnrC   )r(   rO   liner&   s       r)   __getitem__zTable.__getitem__y   sM    	cdQh'''a(((z$$$r+   c                 (   |\  }}|                      ||j        z              |                     ||j        z              t	          |j                  D ]=}t	          |j                  D ]&}|| j        ||z            ||z   <   ||_        ||_        '>d S r$   )rR   r    rS   r!   rangerC   r'   r&   )r(   rO   rL   rT   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+   rT   c                     t          | j                  |k     r4| j                            g            t          | j                  |k     2d S d S r$   )rJ   rC   append)r(   rT   s     r)   rR   zTable._ensure_has_line   sX    $*oo$ 	"Jb!!! $*oo$ 	" 	" 	" 	" 	"r+   r&   c                     | j         D ]=}t          |          |k     r(|                    d            t          |          |k     (>d S r$   )rC   rJ   r\   )r(   r&   rT   s      r)   rS   zTable._ensure_has_column   sV    J 	" 	"Dd))c/ "D!!! d))c/ "	" 	"r+   c                 J    d                     d | j        D                       S )N
c              3   4   K   | ]}t          |          V  d S r$   )repr).0rT   s     r)   	<genexpr>z!Table.__repr__.<locals>.<genexpr>   s(      ;;d;;;;;;r+   )joinrC   r.   s    r)   r/   zTable.__repr__   s%    yy;;
;;;;;;r+   sourcec                     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.
        r   r      )rW   r'   r&   r!   )r(   rL   re   r3   is        r)   
cell_widthzTable.cell_width   s_    
 tDHdh./788 	* 	*AVDHqL))EEq(A---r+   c              #      K   t                      }| j        D ]&}|D ]!}|r||vr|V  |                    |           "'d S r$   )setrC   add)r(   seenrT   rL   s       r)   cellszTable.cells   sk      %%J 	# 	#D # # #D, #JJJHHTNNN#	# 	#r+   c                    | j         dd         | _        | j        D ]}|                    |                     || j                              |j        s9t          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r3   c              3   4   K   | ]}t          |          V  d S r$   r   rb   xs     r)   rc   zTable.rewrap.<locals>.<genexpr>   s(      !H!Ha,q//!H!H!H!H!H!Hr+   )r@   measured_widthsrn   r6   ri   r%   mathceilmaxr!   rW   r&   )r(   rL   r3   r&   s       r)   rewrapzTable.rewrap   s      $}QQQ/J 	R 	RDIIDOOD$-@@IAAA< Ic!H!H4<!H!H!HHH4<WXXETXtx$,'>?? R R,/0DS0I5,Q,Q$S))R	R 	Rr+   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   )rw   rJ   r%   )r(   rT   physical_linesrL   s       r)   physical_lines_for_linezTable.physical_lines_for_line   s;      	D 	DD T\1B1BCCNNr+   c                     g }                                   ddt          dt          t                   dt          f 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-charlinenor"   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}   +|c                 L    g | ]!\  }}|d          dk    s|d          dk    rdnd"S )r   r}   r   r   r=   )rb   leftrights      r)   
<listcomp>z3Table.__str__.<locals>.writesep.<locals>.<listcomp>   sJ       D% Aw#~AqSAc  r+   r   )	enumeratert   r\   ziprd   r   from_iterable)	r~   r   outcolnor3   headtailgluer(   s	           r)   writesepzTable.__str__.<locals>.writesep   sD     C )$*> ? ? 3 3u3QJ3 '4
E0A+BB3
 JJseai01111JJtuqy12222a&)s*333Db'!*+433D #&sCG#4#4  D KK"''%"5c#tnn"E"EFFFFr+   =r   r   r   r   r_   )r}   N)rx   r;   r   r<   r   rC   rD   r\   rW   r{   r&   r'   rJ   r%   r   ljustri   rt   rd   )r(   r   r   r   rT   physical_linelinestrr   rL   physical_text
adjust_lens   `          r)   __str__zTable.__str__   s6   	G 	G3 	Ghsm 	Gs 	G 	G 	G 	G 	G 	G. &dj11 	- 	-LFD~ 2&DN": 2

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

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

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

88C==!!!yy~~r+   r$   r"   N)r7   r8   r9   r:   r
   r<   r*   rH   rK   r   rN   r   rU   rZ   rR   rS   r;   r/   ri   propertyr   rn   rx   r{   r   r=   r+   r)   r?   r?   .   s       , ,Z c d       ) ) ) )	)T 	)d 	) 	) 	) 	)%uS#X %4 % % % %uS#X d t    "S "T " " " ""c "d " " " "
<# < < < <.t .T#Y .3 . . . . #ytT!12 # # # X#R R R RDJ 3    4 4 4 4 4 4 4r+   r?   c            
            e Zd ZdZ ej        d          Zdee         dee         fdZ	dede
deeef         fdZd	edee         f fd
Zdee         dee         de
de
ddf
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))chunksr"   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   )r3   
ValueErrorreversesubsequent_indentinitial_indentr   drop_whitespacestripr\   pop_handle_long_wordrd   )r(   r   rC   cur_linecur_lenindentr3   ls           r)   _wrap_chunkszTextWrapper._wrap_chunks   s    :? 	L=
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: I&&vx%HHH# ! !Xb\5G5G5I5IR5O !RL 9Vbggh&7&77888?  	9B r+   word
space_leftc                     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   totalrh   cs         r)   _break_wordzTextWrapper._break_word-  sv    
 dOO 	2 	2DAq\!__$Ez! 2FQUF|T!a%&&\11112Rxr+   r   c           	      T    dt           dt          t                    f 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"   c                 T    t          t                                        |           S r$   )superr   _split)r   	__class__r(   s    r)   splitz!TextWrapper._split.<locals>.split?  s!    d++221555r+   r   r   )r;   r
   r   r   extendrd   list)r(   r   r   r   chunkwgr   s   `      r)   r   zTextWrapper._split9  s    	6S 	6T#Y 	6 	6 	6 	6 	6 	6 	6U4[[ 	+ 	+E|44 + +16 +MM%%

"3"34444MM$q''****	+
 r+   reversed_chunksr   r   r3   Nc                    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)rw   break_long_wordsr   r\   r   )r(   r   r   r   r3   r   r   rs           r)   r   zTextWrapper._handle_long_wordJ  s     !,,
  	3##OB$7DDDAqOOA"#OB 	3OOO//1122222	3 	3r+   )r7   r8   r9   r:   recompile
wordsep_rer
   r;   r   r<   r   r   r   r   __classcell__r   s   @r)   r   r      s       EE	/0 0J-49 -c - - - -^
 
 
sCx 
 
 
 
3 49      "3c 3d3i 3#&3/237;3 3 3 3 3 3 3 3r+   r   F   rg   r   r3   kwargsr"   c                 H    t          dd|i|}|                    |           S )Nr3   r=   )r   r6   )r   r3   r   r   s       r)   r5   r5   `  s*    **%*6**A66$<<r+   c                   N     e Zd ZU dZdZi Zeed<   dZe	ed<   d fd	Z
dd
Z xZS )
TextWriter)r   )zNo options here.r   r=   settings_defaultsNoutputbuilderr   r"   c                 V    t                                                       || _        d S r$   )r   r*   r   )r(   r   r   s     r)   r*   zTextWriter.__init__l  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.translatep  sK    ,00MM(((>7338r+   )r   r   r"   Nr   )r7   r8   r9   	supportedsettings_specr   r   __annotations__r   r;   r*   r   r   r   s   @r)   r   r   e  s~         I0M t   FC     9 9 9 9 9 9 9 9r+   r   c            	           e Zd ZU dZded<   dej        ddddf fdZdeddfdZ	e
fd	eddfd
Zddgdfdedee         deddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZeZeZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdedefdZ deddfd Z!deddfd!Z"deddfd"Z#deddfd#Z$deddfd$Z%deddfd%Z&deddfd&Z'deddfd'Z(deddfd(Z)deddfd)Z*deddfd*Z+deddfd+Z,deddfd,Z-deddfd-Z.deddfd.Z/deddfd/Z0deddfd0Z1deddfd1Z2deddfd2Z3deddfd3Z4deddfd4Z5deddfd5Z6deddfd6Z7deddfd7Z8deddfd8Z9deddfd9Z:deddfd:Z;deddfd;Z<deddfd<Z=deddfd=Z>deddfd>Z?deddfd?Z@deddfd@ZAdeddfdAZBdeddfdBZCdeddfdCZDdeddfdDZEdeddfdEZFdeddfdFZGdeddfdGZHdeddfdHZIdeddfdIZJdeddfdJZKdeddfdKZLdeddfdLZMdeddfdMZNdeddfdNZOdeddfdOZPdeddfdPZQdeddfdQZRdeddfdRZSdeddfdSZTdeddfdTZUdeddfdUZVdeddfdVZWdeddfdWZXdeddfdXZYdeddfdYZZdeddfdZZ[deddfd[Z\deddfd\Z]deddfd]Z^deddfd^Z_deddfd_Z`deddfd`ZadeddfdaZbdeddfdbZcdeddfdcZddeddfddZededdfdeZfdeddfdfZgdeddfdgZhdeddfdhZideddfdiZjdeddfdjZkdeddfdkZldeddfdlZmdeddfdmZndeddfdnZodeddfdoZpdeddfdpZqdeddfdqZrdeddfdrZsdeddfdsZtdeddfdtZudeddfduZvdeddfdvZwdeddfdwZxdeddfdxZydeddfdyZzdeddfdzZ{deddfd{Z|deddfd|Z}deddfd}Z~deddfd~ZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdÄZdeddfdĄZdeddfdńZdeddfdƄZdeddfdǄZdeddfdȄZdeddfdɄZdeddfdʄZdeddfd˄Zdeddfd̄Zdeddfd̈́Z xZS )r   Nr   r   r   r"   c                 |   t                                          ||           | j        j        }|dk    rd| _        n|dk    rt
          j        | _        nd| _        | j        j        | _        | j        j	        | _
        | j        j        | _        g g| _        dg| _        g | _        d| _        d| _        d | _        d S )Nwindowsz
nativer_   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table)r(   r   r   newlinesr   s       r)   r*   zTextTranslator.__init__y  s    7+++;,y  	DGG! 	jDGGDG K9"k= $ AFHT3') 


r+   r   c                 J    | j         d                             d|f           d S Nr   )r   r\   )r(   r   s     r)   add_textzTextTranslator.add_text  s&    BDz*****r+   r   c                 n    | j                             g            | j                            |           d S r$   )r   r\   r   )r(   r   s     r)   	new_statezTextTranslator.new_state  s5    2'''''r+   Tr   r6   endfirstc                   
 | 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"   c                      sd S r-t          d                              t          z
            } n'd                                                              } r| z  }                     | f           d S )Nr   rp   )r5   rd   MAXWIDTH
splitlinesr\   )resr   r   	maxindentresulttoformatr6   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   r\   insertr   )r(   r6   r   r   contentr  
itemindentitem	newindentr   r   r   r   r   s    ``       @@@@r)   	end_statezTextTranslator.end_state  s   +//##())	!%%''.0 		) 		) 		) 		) 		) 		) 		) 		) 		) 		) 		) !( 	 	JR %%%%	v
2D9:::	 	6 	6q	!v-Iay|t# 6a)eW!56666vay|//222a)dV!4555Bv&&&&&r+   nodec                 0    |                      d           d S rB   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   Nr=   )rb   r   rC   rT   s       r)   rc   z1TextTranslator.depart_document.<locals>.<genexpr>  s]       !4 !4%2VU-2!4 !4%) "&!?3<$+> !4 !4 !4 !4 !4 !4 !4r+   r   )r  r   rd   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 rQ   )r   r   _title_charr  s     r)   visit_sectionzTextTranslator.visit_section  s/    ,T->?Qr+   c                 &    | xj         dz  c_         d S rQ   )r   r  s     r)   depart_sectionzTextTranslator.depart_section  s    Qr+   c                 0    |                      d           d S rB   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$   r=   r  s     r)   visit_compoundzTextTranslator.visit_compound      r+   c                     d S r$   r=   r  s     r)   depart_compoundzTextTranslator.depart_compound  r$  r+   c                     d S r$   r=   r  s     r)   visit_glossaryzTextTranslator.visit_glossary  r$  r+   c                     d S r$   r=   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   )
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getrd   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 K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   Nr=   rr   s     r)   rc   z.TextTranslator.depart_title.<locals>.<genexpr>  s3      EE!A$"*EqtEEEEEEr+   z%sr   r   r   )r-  r.  r   r7  r  rd   r   r   r   r=  r   r   rJ   r\   )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$   r=   r  s     r)   visit_subtitlezTextTranslator.visit_subtitle  r$  r+   c                     d S r$   r=   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$   r=   r  s     r)   depart_attributionz!TextTranslator.depart_attribution  r$  r+   c                     d S r$   r=   r  s     r)   
visit_desczTextTranslator.visit_desc  r$  r+   c                     d S r$   r=   r  s     r)   depart_desczTextTranslator.depart_desc  r$  r+   c                 0    |                      d           d S rB   r  r  s     r)   visit_desc_signaturez#TextTranslator.visit_desc_signature  r  r+   c                 4    |                      dd            d S )NFr6   r   r  r  s     r)   depart_desc_signaturez$TextTranslator.depart_desc_signature"  s    Et,,,,,r+   c                     d S r$   r=   r  s     r)   visit_desc_signature_linez(TextTranslator.visit_desc_signature_line&  r$  r+   c                 0    |                      d           d S Nr_   rH  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_content0  r  r+   c                     d S r$   r=   r  s     r)   visit_desc_inlinez TextTranslator.visit_desc_inline3  r$  r+   c                     d S r$   r=   r  s     r)   depart_desc_inlinez!TextTranslator.depart_desc_inline6  r$  r+   c                     d S r$   r=   r  s     r)   visit_desc_namezTextTranslator.visit_desc_name<  r$  r+   c                     d S r$   r=   r  s     r)   depart_desc_namezTextTranslator.depart_desc_name?  r$  r+   c                     d S r$   r=   r  s     r)   visit_desc_addnamez!TextTranslator.visit_desc_addnameB  r$  r+   c                     d S r$   r=   r  s     r)   depart_desc_addnamez"TextTranslator.depart_desc_addnameE  r$  r+   c                     d S r$   r=   r  s     r)   visit_desc_typezTextTranslator.visit_desc_typeH  r$  r+   c                     d S r$   r=   r  s     r)   depart_desc_typezTextTranslator.depart_desc_typeK  r$  r+   c                 0    |                      d           d S )Nz -> rH  r  s     r)   visit_desc_returnsz!TextTranslator.visit_desc_returnsN  s    fr+   c                     d S r$   r=   r  s     r)   depart_desc_returnsz"TextTranslator.depart_desc_returnsQ  r$  r+   c                 >    |                      d           d| _        d S )N(r   )r   first_paramr  s     r)   visit_desc_parameterlistz'TextTranslator.visit_desc_parameterlistT  s"    cr+   c                 0    |                      d           d S )N)rH  r  s     r)   depart_desc_parameterlistz(TextTranslator.depart_desc_parameterlistX      cr+   c                     | j         s|                     d           nd| _         |                     |                                           t          j        )N, r   )rv  r   r0  r   r1  r  s     r)   visit_desc_parameterz#TextTranslator.visit_desc_parameter[  sL     	!MM$ Ddkkmm$$$nr+   c                 0    |                      d           d S )N[rH  r  s     r)   visit_desc_optionalz"TextTranslator.visit_desc_optionalc  r{  r+   c                 0    |                      d           d S )N]rH  r  s     r)   depart_desc_optionalz#TextTranslator.depart_desc_optionalf  r{  r+   c                     d S r$   r=   r  s     r)   visit_desc_annotationz$TextTranslator.visit_desc_annotationi  r$  r+   c                     d S r$   r=   r  s     r)   depart_desc_annotationz%TextTranslator.depart_desc_annotationl  r$  r+   c                 .    |                                   d S r$   r  r  s     r)   visit_figurezTextTranslator.visit_figureq  r  r+   c                 .    |                                   d S r$   r  r  s     r)   depart_figurezTextTranslator.depart_figuret  r  r+   c                     d S r$   r=   r  s     r)   visit_captionzTextTranslator.visit_captionw  r$  r+   c                     d S r$   r=   r  s     r)   depart_captionzTextTranslator.depart_captionz  r$  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$   rJ   )rb   names     r)   rc   z6TextTranslator.visit_productionlist.<locals>.<genexpr>  s(      114SYY111111r+   z ::=z%s    r   Fr6   )r   r   r	   r   
productionr\   rw   r   r   rJ   r0  r   r  r   r1  )r(   r	  namesproductionlistr  maxlenlastnames          r)   visit_productionlistz#TextTranslator.visit_productionlist}  s:   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   rg   )r   r   labelr0  r   	_footnoter   rJ   )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   rg   )rJ   r-  r   r  r0  	_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   r1  r  s     r)   visit_labelzTextTranslator.visit_label  
    nr+   c                     d S r$   r=   r  s     r)   visit_legendzTextTranslator.visit_legend  r$  r+   c                     d S r$   r=   r  s     r)   depart_legendzTextTranslator.depart_legend  r$  r+   c                     d S r$   r=   r  s     r)   visit_option_listz TextTranslator.visit_option_list  r$  r+   c                     d S r$   r=   r  s     r)   depart_option_listz!TextTranslator.depart_option_list  r$  r+   c                 0    |                      d           d S rB   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_group  s     r+   c                 0    |                      d           d S )Nz     rH  r  s     r)   depart_option_groupz"TextTranslator.depart_option_group  s    gr+   c                 P    | j         r	d| _         d S |                     d           d S )NFr}  )r  r   r  s     r)   visit_optionzTextTranslator.visit_option  s3     	  %DMM$r+   c                     d S r$   r=   r  s     r)   depart_optionzTextTranslator.depart_option  r$  r+   c                     d S r$   r=   r  s     r)   visit_option_stringz"TextTranslator.visit_option_string  r$  r+   c                     d S r$   r=   r  s     r)   depart_option_stringz#TextTranslator.depart_option_string  r$  r+   c                 <    |                      |d                    d S )N	delimiterrH  r  s     r)   visit_option_argumentz$TextTranslator.visit_option_argument  s    d;'(((((r+   c                     d S r$   r=   r  s     r)   depart_option_argumentz%TextTranslator.depart_option_argument  r$  r+   c                     d S r$   r=   r  s     r)   visit_descriptionz TextTranslator.visit_description  r$  r+   c                     d S r$   r=   r  s     r)   depart_descriptionz!TextTranslator.depart_description  r$  r+   c                     t           j        r$   r  r  s     r)   visit_tabular_col_specz%TextTranslator.visit_tabular_col_spec  r  r+   c                 d    | j         j                            |d                    t          j        )Nr@   )r   r@   r\   r   r1  r  s     r)   visit_colspeczTextTranslator.visit_colspec  s(    
""4
#3444nr+   c                     d S r$   r=   r  s     r)   visit_tgroupzTextTranslator.visit_tgroup  r$  r+   c                     d S r$   r=   r  s     r)   depart_tgroupzTextTranslator.depart_tgroup  r$  r+   c                     d S r$   r=   r  s     r)   visit_theadzTextTranslator.visit_thead  r$  r+   c                     d S r$   r=   r  s     r)   depart_theadzTextTranslator.depart_thead  r$  r+   c                 8    | j                                          d S r$   )r   rK   r  s     r)   visit_tbodyzTextTranslator.visit_tbody  s    
  """""r+   c                     d S r$   r=   r  s     r)   depart_tbodyzTextTranslator.depart_tbody  r$  r+   c                 T    | j         j        r| j                                          d S d S r$   )r   rC   rH   r  s     r)   	visit_rowzTextTranslator.visit_row  s3    : 	!J     	! 	!r+   c                     d S r$   r=   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   r9  entryr   r  s     r)   visit_entryzTextTranslator.visit_entry  s^    HHZ++a/*a9P9PST9T
 
 

 	qr+   c                      j                              fd j                                        D                       } j                                         | j        _         j                             j                   d  _        d S )Nc              3   X   K   | ]$}j                             |d                    V  %dS )r   N)r   rd   )rb   rs   r(   s     r)   rc   z.TextTranslator.depart_entry.<locals>.<genexpr>   s5      JJ1DGLL1..JJJJJJr+   )	r   rd   r   r   r   r  r   r   rN   r(   r	  r   s   `  r)   depart_entryzTextTranslator.depart_entry  sx    w||JJJJ8I8IJJJJJ

DJ'''


r+   c                     | j         rt          d          |                     d           t                      | _         d S )Nz Nested tables are not supported.r   )r   NotImplementedErrorr   r?   r  s     r)   visit_tablezTextTranslator.visit_table  s=    : 	J%&HIIIqWW


r+   c                     |                      t          | j                             d | _        |                     d           d S NFr  )r   r;   r   r  r  s     r)   depart_tablezTextTranslator.depart_table  s=    c$*oo&&&
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$   )r0  )rb   ns     r)   rc   z,TextTranslator.visit_acks.<locals>.<genexpr>  s*      ??q

??????r+   r6  )
r   r   bullet_listr	   	list_itemr   r   rd   r  r1  )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   r1  r  s     r)   visit_imagezTextTranslator.visit_image  sT    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   r1  )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   r\   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   r\   r9  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 )Nr  r  s     r)   visit_definition_listz$TextTranslator.visit_definition_list2  r  r+   c                 8    | j                                          d S r$   r  r  s     r)   depart_definition_listz%TextTranslator.depart_definition_list5  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   r  r   )r   r   rJ   r;   r  s     r)   visit_list_itemzTextTranslator.visit_list_item8  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  r  z%s. )r   r  r  s     r)   depart_list_itemzTextTranslator.depart_list_itemD  st    R B& 	ANNN&&&&&r"b( 	ADNN$*;B*?!?N@@@@@r+   c                     t          t          |                    t          j                                      | _        d S r$   )rJ   r   findallr   
classifier_classifier_count_in_lir  s     r)   visit_definition_list_itemz)TextTranslator.visit_definition_list_itemL  s/    '*4U=M0N0N+O+O'P'P$$$r+   c                     d S r$   r=   r  s     r)   depart_definition_list_itemz*TextTranslator.depart_definition_list_itemO  r$  r+   c                 0    |                      d           d S rB   r  r  s     r)   
visit_termzTextTranslator.visit_termR  r  r+   c                 D    | j         s|                     d            d S d S )Nr   r  r  r  s     r)   depart_termzTextTranslator.depart_termU  s1    + 	%NNtN$$$$$	% 	%r+   c                 0    |                      d           d S )Nz : rH  r  s     r)   visit_classifierzTextTranslator.visit_classifierY  rJ  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_definitiona  r  r+   c                 .    |                                   d S r$   r  r  s     r)   depart_definitionz TextTranslator.depart_definitiond  r  r+   c                     d S r$   r=   r  s     r)   visit_field_listzTextTranslator.visit_field_listg  r$  r+   c                     d S r$   r=   r  s     r)   depart_field_listz TextTranslator.depart_field_listj  r$  r+   c                     d S r$   r=   r  s     r)   visit_fieldzTextTranslator.visit_fieldm  r$  r+   c                     d S r$   r=   r  s     r)   depart_fieldzTextTranslator.depart_fieldp  r$  r+   c                 0    |                      d           d S rB   r  r  s     r)   visit_field_namezTextTranslator.visit_field_names  r  r+   c                 \    |                      d           |                     d            d S )N:r!  r   r  s     r)   depart_field_namez TextTranslator.depart_field_namev  s.    c4     r+   c                 .    |                                   d S r$   r  r  s     r)   visit_field_bodyzTextTranslator.visit_field_bodyz  r  r+   c                 .    |                                   d S r$   r  r  s     r)   depart_field_bodyz TextTranslator.depart_field_body}  r  r+   c                     d S r$   r=   r  s     r)   visit_centeredzTextTranslator.visit_centered  r$  r+   c                     d S r$   r=   r  s     r)   depart_centeredzTextTranslator.depart_centered  r$  r+   c                     d S r$   r=   r  s     r)   visit_hlistzTextTranslator.visit_hlist  r$  r+   c                     d S r$   r=   r  s     r)   depart_hlistzTextTranslator.depart_hlist  r$  r+   c                     d S r$   r=   r  s     r)   visit_hlistcolzTextTranslator.visit_hlistcol  r$  r+   c                     d S r$   r=   r  s     r)   depart_hlistcolzTextTranslator.depart_hlistcol  r$  r+   c                 0    |                      d           d S rB   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  )rb   ss     r)   rc   z4TextTranslator._depart_admonition.<locals>.<genexpr>  s(      (O(OAQ(O(O(O(O(O(Or+   r,  r  r7  )
r   tagnamer  r   rJ   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		. R   CJJ.   NNN..... KO""1q47)n555NNN-----r+   c                 0    |                      d           d S rB   r  r  s     r)   visit_versionmodifiedz$TextTranslator.visit_versionmodified  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_block      E"""""r+   c                 0    |                      d           d S rB   r  r  s     r)   visit_doctest_blockz"TextTranslator.visit_doctest_block  r  r+   c                 2    |                      d           d S r  r  r  s     r)   depart_doctest_blockz#TextTranslator.depart_doctest_block  r\  r+   c                 N    |                                   | xj        dz  c_        d S rQ   )r   r   r  s     r)   visit_line_blockzTextTranslator.visit_line_block  s,    q r+   c                     | xj         dz  c_         |                     dd            | j         s|                     d           d S d S )Nr   FrT  r_   )r   r  r   r  s     r)   depart_line_blockz TextTranslator.depart_line_block  sY    q Et,,," 	 MM$	  	 r+   c                     d S r$   r=   r  s     r)   
visit_linezTextTranslator.visit_line  r$  r+   c                 0    |                      d           d S rY  rH  r  s     r)   depart_linezTextTranslator.depart_line  r[  r+   c                 .    |                                   d S r$   r  r  s     r)   visit_block_quotez TextTranslator.visit_block_quote  r  r+   c                 .    |                                   d S r$   r  r  s     r)   depart_block_quotez!TextTranslator.depart_block_quote  r  r+   c                     d S r$   r=   r  s     r)   visit_compact_paragraphz&TextTranslator.visit_compact_paragraph  r$  r+   c                     d S r$   r=   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 rB   )r-  r.  r   r/  r   seealsor   r  s     r)   visit_paragraphzTextTranslator.visit_paragraph  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   r/  r   rr  r  r  s     r)   depart_paragraphzTextTranslator.depart_paragraph  sP    $+u'788 	dk8#344	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$   r=   r  s     r)   visit_pending_xrefz!TextTranslator.visit_pending_xref  r$  r+   c                     d S r$   r=   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	secnumberr6  )r   r9  r   rd   r:  r;   r   )r(   r	  r<  s      r)   visit_referencezTextTranslator.visit_reference  sv     	Shh{++G Schhs3'8'899D<QQRRRRR	S 	SS Sr+   c                     d S r$   r=   r  s     r)   depart_referencezTextTranslator.depart_reference  r$  r+   c                     t          j        |                    dd                    }|                     |           t           j        )NrA  r4  )r   r   r9  
visit_Textr1  r  s      r)   visit_number_referencez%TextTranslator.visit_number_reference  s9    z$((7C0011nr+   c                     d S r$   r=   r  s     r)   visit_download_referencez'TextTranslator.visit_download_reference  r$  r+   c                     d S r$   r=   r  s     r)   depart_download_referencez(TextTranslator.depart_download_reference  r$  r+   c                 0    |                      d           d S N*rH  r  s     r)   visit_emphasiszTextTranslator.visit_emphasis  r{  r+   c                 0    |                      d           d S r  rH  r  s     r)   depart_emphasiszTextTranslator.depart_emphasis  r{  r+   c                 0    |                      d           d S r  rH  r  s     r)   visit_literal_emphasisz%TextTranslator.visit_literal_emphasis"  r{  r+   c                 0    |                      d           d S r  rH  r  s     r)   depart_literal_emphasisz&TextTranslator.depart_literal_emphasis%  r{  r+   c                 0    |                      d           d S Nz**rH  r  s     r)   visit_strongzTextTranslator.visit_strong(  r[  r+   c                 0    |                      d           d S r  rH  r  s     r)   depart_strongzTextTranslator.depart_strong+  r[  r+   c                 0    |                      d           d S r  rH  r  s     r)   visit_literal_strongz#TextTranslator.visit_literal_strong.  r[  r+   c                 0    |                      d           d S r  rH  r  s     r)   depart_literal_strongz$TextTranslator.depart_literal_strong1  r[  r+   c                 0    |                      d           d S )Nr   rH  r  s     r)   visit_abbreviationz!TextTranslator.visit_abbreviation4  s    br+   c                 p    |                     d          r |                     d|d         z             d S d S )Nexplanationz (%s))hasattrr   r  s     r)   depart_abbreviationz"TextTranslator.depart_abbreviation7  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  rH  r  s     r)   visit_title_referencez$TextTranslator.visit_title_referenceA  r{  r+   c                 0    |                      d           d S r  rH  r  s     r)   depart_title_referencez%TextTranslator.depart_title_referenceD  r{  r+   c                 0    |                      d           d S N"rH  r  s     r)   visit_literalzTextTranslator.visit_literalG  r{  r+   c                 0    |                      d           d S r  rH  r  s     r)   depart_literalzTextTranslator.depart_literalJ  r{  r+   c                 0    |                      d           d S )Nr   rH  r  s     r)   visit_subscriptzTextTranslator.visit_subscriptM  r{  r+   c                     d S r$   r=   r  s     r)   depart_subscriptzTextTranslator.depart_subscriptP  r$  r+   c                 0    |                      d           d S )Nr?  rH  r  s     r)   visit_superscriptz TextTranslator.visit_superscriptS  r{  r+   c                     d S r$   r=   r  s     r)   depart_superscriptz!TextTranslator.depart_superscriptV  r$  r+   c                 n    |                      d|                                z             t          j        Nz[%s]r   r0  r   r1  r  s     r)   visit_footnote_referencez'TextTranslator.visit_footnote_referenceY  )    ft{{}},---nr+   c                 n    |                      d|                                z             t          j        r  r  r  s     r)   visit_citation_referencez'TextTranslator.visit_citation_reference]  r  r+   c                 T    |                      |                                           d S r$   )r   r0  r  s     r)   r  zTextTranslator.visit_Texta  s"    dkkmm$$$$$r+   c                     d S r$   r=   r  s     r)   depart_TextzTextTranslator.depart_Textd  r$  r+   c                     d S r$   r=   r  s     r)   visit_generatedzTextTranslator.visit_generatedg  r$  r+   c                     d S r$   r=   r  s     r)   depart_generatedzTextTranslator.depart_generatedj  r$  r+   c                 \    d|d         v s
d|d         v r|                      d           d S d S Nxrefclassestermr  rH  r  s     r)   visit_inlinezTextTranslator.visit_inlinem  E    T)_$ 	$y/(A 	MM#	 	r+   c                 \    d|d         v s
d|d         v r|                      d           d S d S r  rH  r  s     r)   depart_inlinezTextTranslator.depart_inlineq  r  r+   c                     d S r$   r=   r  s     r)   visit_containerzTextTranslator.visit_containeru  r$  r+   c                     d S r$   r=   r  s     r)   depart_containerzTextTranslator.depart_containerx  r$  r+   c                 0    |                      d           d S )Nz>>rH  r  s     r)   visit_problematicz TextTranslator.visit_problematic{  r[  r+   c                 0    |                      d           d S )Nz<<rH  r  s     r)   depart_problematicz!TextTranslator.depart_problematic~  r[  r+   c                     |                      d           |                     d|                                z             |                                  t          j        )Nr   z<SYSTEM MESSAGE: %s>)r   r   r0  r  r   r1  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   r-   r   r   Fr  )r9  r   r   r   r0  r  r   r1  r  s     r)   	visit_rawzTextTranslator.visit_raw  sq    TXXh++11333 	)NN1MM$++--(((NN%N(((nr+   c                     d S r$   r=   r  s     r)   
visit_mathzTextTranslator.visit_math  r$  r+   c                     d S r$   r=   r  s     r)   depart_mathzTextTranslator.depart_math  r$  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+   )r7   r8   r9   r   r   r   r   r*   r;   r   	STDINDENTr<   r   boolr
   r  r   r  r  r  r  r  r  visit_sidebardepart_sidebarr  r!  r#  r&  r(  r*  r2  r=  rB  rD  rF  rI  rL  rN  rP  rR  rU  rW  rZ  r]  r_  ra  rc  re  rg  ri  rk  rm  ro  rq  rs  rw  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r#  r%  r'  r)  r+  r-  r/  r1  r3  r5  r8  r:  r<  r>  r@  rB  rD  rF  rH  rJ  rL  rN  rS  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_seealsorU  rW  rY  r[  r^  r`  rb  rd  rf  rh  rj  rl  rn  rp  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   s   @r)   r   r   v  s~        !G]!!!! !- !D ! ! ! ! ! !(+S +T + + + + '0 ( ( (D ( ( ( ( &*RDt "' "'d "'S	 "' "'X\ "' "' "' "'H7 t    4G 4 4 4 4 4' d    7 t     D     T      M!N T    ' d    7 t    G     7 t    G      D    g #    + +T + + + + 7 t    G     g $    w 4    w 4     D     T    -' -d - - - -g $    w 4    w 4     D    g $    w 4    G     W     w 4     D    G     W     w 4     D    W     g $     T     D     T    ' d    7 t    
 T    ' d    ' d    7 t     T    $07 0t 0 0 0 0
7G 7 7 7 7 707 0t 0 0 0 07G 7 7 7 7 7 D     T    ' d    
g $    w 4    7 t    G     !w !4 ! ! ! ! D       T        ' d     D     T    )' )d ) ) ) )7 t    g $    w 4    7 t    ' d     T    ' d     D     T    # #D # # # # T    !g !$ ! ! ! !w 4     D     T     D    # #T # # # #
w 4     D    W     %g %$ % % % % w  4        ;' ;d ; ; ; ; 7  t        %' %d % % % % 7  t        
@G 
@ 
@ 
@ 
@ 
@AW A A A A AQw Q4 Q Q Q Q D    w 4    % %D % % % %W     %g %$ % % % %
W     g $    W     g $     D     T    W     !g !$ ! ! ! !W     g $    7 t    G      D     T    7 t    G     W     g $    g $    .w .4 . . . . (O)%M'N$L&M#K%L"J$K'O)"J$K!I#J%M'N%M'N' d    7 t     D    # #T # # # # D    # #T # # # #!W ! ! ! ! ! g  $        w 4     D    g $    w 4    G     W     G     
W     
 T     D    ' d    ' d    w 4     D    SG S S S S SW     7 t    
W     g $    7 t    G     7 t    G      T    ' d     T    ' d    w 4    9 9D 9 9 9 91' 1d 1 1 1 127 2t 2 2 2 2' d    7 t    ' d    7 t    G     W     g $    w 4    W     W     %t % % % % %     G     W      T    ' d    G     W     g $    w 4     T    ' d    w 4    g $    w 4     D    W     g $        r+   r   )0r:   ru   r   r   textwrap	itertoolsr   r   typingr   r   r   r   r	   r
   r   r   r   r   r   docutilsr   r   docutils.nodesr   r   docutils.utilsr   sphinxr   sphinx.localer   r   sphinx.util.docutilsr   sphinx.builders.textr   r   r?   r   r   r  r;   r<   r5   Writerr   r   r=   r+   r)   <module>r     s   , ,  				 				  $ $ $ $ $ $ $ $! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! $ # # # # # # # ( ( ( ( ( ( ( ( ' ' ' ' ' '       - - - - - - - - 1 1 1 1 1 1 10000001 1 1 1 1 1 1 10D D D D D D D DNd3 d3 d3 d3 d3(& d3 d3 d3N 	 %-  # c  S	    
9 9 9 9 9 9 9 9"i i i i i% i i i i ir+   