U
    \ªShÙ¨  ã                   @  s4  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	 ddl
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„ dƒZ!G dd„ dƒZ"G dd„ dej#ƒZ#dZ$dZ%e$fdddddœdd„Z&G dd„ dej'ƒZ(G dd„ deƒZ)dS ) z&Custom docutils writer for plain text.é    )ÚannotationsN)ÚchainÚgroupby)ÚTYPE_CHECKINGÚAnyÚ	GeneratorÚIterableÚcast)ÚnodesÚwriters)ÚElementÚText©Úcolumn_width)Úaddnodes)Ú_Úadmonitionlabels)ÚSphinxTranslator)ÚTextBuilderc                   @  s`   e Zd ZdZddddddœdd	„Zdd
œdd„Zdd
œdd„Zdd
œdd„Zdddœdd„ZdS )ÚCellzVRepresents a cell in a table.
    It can span multiple columns or multiple lines.
    Ú é   ÚstrÚintÚNone)ÚtextÚrowspanÚcolspanÚreturnc                 C  s(   || _ g | _|| _|| _d | _d | _d S ©N)r   Úwrappedr   r   ÚcolÚrow)Úselfr   r   r   © r$   úF/root/rtd-docs/venv/lib/python3.8/site-packages/sphinx/writers/text.pyÚ__init__   s    zCell.__init__©r   c                 C  s.   d| j ›d| j› d| j› d| j› d| j› dS )Nz<Cell ú Úvú/ú>)r   r"   r   r!   r   ©r#   r$   r$   r%   Ú__repr__#   s    zCell.__repr__c                 C  s   t | j| jfƒS r   )Úhashr!   r"   r,   r$   r$   r%   Ú__hash__&   s    zCell.__hash__Úboolc                 C  s   | j dko| jd k	o| jd k	S ©Nr   )r   r!   r"   r,   r$   r$   r%   Ú__bool__)   s    zCell.__bool__)Úwidthr   c                 C  s   t | j|ƒ| _d S r   )Úmy_wrapr   r    )r#   r3   r$   r$   r%   Úwrap,   s    z	Cell.wrapN)r   r   r   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r&   r-   r/   r2   r5   r$   r$   r$   r%   r      s   r   c                   @  sî   e Zd ZdZd0dddœdd„Zddœd	d
„Zddœdd„Zdddœdd„Zdddœdd„Zddddœdd„Z	dddœdd„Z
dddœdd„Zddœd d!„Zdd"dd#œd$d%„Zed&dœd'd(„ƒZddœd)d*„Zd+ddœd,d-„Zddœd.d/„ZdS )1Ú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    |
       +--------+--------+

    Nzlist[int] | Noner   )Úcolwidthr   c                 C  s.   g | _ d| _|d k	r|ng | _d| _d| _d S ©Nr   )ÚlinesÚ	separatorr;   Úcurrent_lineÚcurrent_col)r#   r;   r$   r$   r%   r&   ^   s
    zTable.__init__r'   c                 C  s   |  j d7  _ 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)r?   r@   r,   r$   r$   r%   Úadd_rowe   s    zTable.add_rowc                 C  s   t | jƒ| _dS )z*Sets the separator below the current line.N)Úlenr=   r>   r,   r$   r$   r%   Úset_separatorl   s    zTable.set_separatorr   )Úcellr   c                 C  sD   | | j | jf r |  jd7  _q || | j | jf< |  j|j7  _dS )zãAdd 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)r?   r@   r   )r#   rD   r$   r$   r%   Úadd_cellp   s    zTable.add_cellztuple[int, int])Úposr   c                 C  s2   |\}}|   |d ¡ |  |d ¡ | j| | S ©Nr   )Ú_ensure_has_lineÚ_ensure_has_columnr=   )r#   rF   Úliner!   r$   r$   r%   Ú__getitem__{   s    zTable.__getitem__)rF   rD   r   c                 C  sn   |\}}|   ||j ¡ |  ||j ¡ t|jƒD ]6}t|jƒD ]&}|| j||  || < ||_||_q@q2d S r   )rH   r   rI   r   Úranger=   r"   r!   )r#   rF   rD   rJ   r!   ZdlineZdcolr$   r$   r%   Ú__setitem__   s    zTable.__setitem__r   )rJ   r   c                 C  s    t | jƒ|k r| j g ¡ q d S r   )rB   r=   Úappend)r#   rJ   r$   r$   r%   rH   ‹   s    zTable._ensure_has_line)r!   r   c                 C  s*   | j D ]}t|ƒ|k r| tƒ ¡ q
qd S r   )r=   rB   rN   r   )r#   r!   rJ   r$   r$   r%   rI      s    
zTable._ensure_has_columnr   c                 C  s   d  dd„ | jD ƒ¡S )NÚ
c                 s  s   | ]}t |ƒV  qd S r   )Úrepr)Ú.0rJ   r$   r$   r%   Ú	<genexpr>•   s     z!Table.__repr__.<locals>.<genexpr>)Újoinr=   r,   r$   r$   r%   r-   ”   s    zTable.__repr__z	list[int])rD   Úsourcer   c                 C  s`   |j dks|jdkrtdƒ‚d}t| |j |jf jƒD ]}|||j|  7 }q6||jd d  S )z¼Give 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!   Ú
ValueErrorrL   r   )r#   rD   rT   r3   Úir$   r$   r%   Ú
cell_width—   s    zTable.cell_widthzGenerator[Cell, None, None]c                 c  s<   t ƒ }| jD ]*}|D ] }|r||kr|V  | |¡ qqd S r   )Úsetr=   Úadd)r#   ÚseenrJ   rD   r$   r$   r%   Úcells£   s    
zTable.cellsc                 C  sª   | j dd… | _| jD ]Ž}|j|  || j ¡d |js8q|jdksL|jdkrTtdƒ‚t	 
tdd„ |jD ƒƒ|j ¡}t|j|j|j ƒD ]}t| j| |ƒ| j|< qˆqdS )zŽCall ``cell.wrap()`` on all cells, and measure each column width
        after wrapping (result written in ``self.measured_widths``).
        N©r3   rU   c                 s  s   | ]}t |ƒV  qd S r   r   ©rQ   Úxr$   r$   r%   rR   ·   s     zTable.rewrap.<locals>.<genexpr>)r;   Úmeasured_widthsr]   r5   rY   r    r"   r!   rW   ÚmathÚceilÚmaxr   rL   )r#   rD   r3   r!   r$   r$   r%   Úrewrap¬   s    
 zTable.rewrapz
list[Cell]c                 C  s"   d}|D ]}t |t|jƒƒ}q|S )zfFor a given line, compute the number of physical lines it spans
        due to text wrapping.
        r   )rd   rB   r    )r#   rJ   Zphysical_linesrD   r$   r$   r%   Úphysical_lines_for_line»   s    zTable.physical_lines_for_linec                   s2  g }ˆ   ¡  dddddœ‡ fdd„}tˆ jƒD ]ê\}}ˆ jrX|ˆ jkrX| |d|ƒ¡ n| |d|ƒ¡ tˆ  |¡ƒD ] }dg}t|ƒD ]|\}}|j|krœqˆ||jkr¬d	}	n|t	|j
ƒkrÀd	}	n
|j
| }	t	|	ƒt|	ƒ }
| d
|	 ˆ  |ˆ j¡d |
 ¡ d ¡ qˆ| d	 |¡¡ qvq.| |dƒ¡ d |¡S )Nú-r   z
int | None)ÚcharÚlinenor   c                   sÚ   g }t ˆ jƒD ]Z\}}|dk	rV|dkrVˆ ||f ˆ |d |f krV| d|d  ¡ q| | |d  ¡ q|d d dkr~dnd}|d	 d dkr–dnd}d
d„ t||dd… ƒD ƒ}| |¡ |d t t||ƒ¡¡ S )zfCalled on the line *before* lineno.
            Called with no *lineno* for the last sep.
            Nr   r   r(   é   rg   ú+ú|éÿÿÿÿc                 S  s0   g | ](\}}|d  dks$|d  dkr(dnd‘qS )r   rg   rk   rl   r$   )rQ   ÚleftÚrightr$   r$   r%   Ú
<listcomp>Ø   s   ÿz3Table.__str__.<locals>.writesep.<locals>.<listcomp>r   )Ú	enumeratera   rN   ÚziprS   r   Úfrom_iterable)rh   ri   ÚoutÚcolnor3   ÚheadÚtailZgluer,   r$   r%   ÚwritesepÈ   s"    ÿþýþ
zTable.__str__.<locals>.writesepú=rl   r   r(   r   rO   )rg   N)re   rq   r=   r>   rN   rL   rf   r!   r"   rB   r    r   ÚljustrY   ra   rS   )r#   rt   rx   ri   rJ   Zphysical_lineZlinestrru   rD   Zphysical_textZ
adjust_lenr$   r,   r%   Ú__str__Ä   s<    


ÿÿýÿzTable.__str__)N)r6   r7   r8   r9   r&   rA   rC   rE   rK   rM   rH   rI   r-   rY   Úpropertyr]   re   rf   r{   r$   r$   r$   r%   r:   0   s    -
	r:   c                      sj   e Zd ZdZe d¡Zdddœdd„Zddd	d
œdd„Zdddœ‡ fdd„Z	ddddddœdd„Z
‡  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))ú	list[str])Úchunksr   c                 C  s  g }| j dkrtd| j  ƒ‚| ¡  |rg }d}|r>| j}n| j}| j t|ƒ }| jrr|d  ¡ dkrr|rr|d= |rªt|d ƒ}|| |krª| | 	¡ ¡ ||7 }qrqªqr|rÎt|d ƒ|krÎ|  
||||¡ | jrî|rî|d  ¡ dkrî|d= |r$| |d |¡ ¡ q$|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)rm   r   )r3   rW   ÚreverseÚsubsequent_indentÚinitial_indentr   Údrop_whitespaceÚstriprN   ÚpopÚ_handle_long_wordrS   )r#   r   r=   Úcur_lineÚcur_lenÚindentr3   Úlr$   r$   r%   Ú_wrap_chunks  s4    

zTextWrapper._wrap_chunksr   r   ztuple[str, str])ÚwordÚ
space_leftr   c                 C  sV   d}t |ƒD ]@\}}|t|ƒ7 }||kr|d|d … ||d d… f  S q|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   )rq   r   )r#   rŒ   r   ÚtotalrX   Úcr$   r$   r%   Ú_break_word3  s    &zTextWrapper._break_word©r   r   c                   sl   dddœ‡‡ fdd„}g }||ƒD ]D}t |tƒD ]4\}}|dkrV| |d |¡ƒ¡ q0| t|ƒ¡ q0q"|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.
        r   r~   )Útr   c                   s   t tˆƒ | ¡S r   )Úsuperr}   Ú_split)r’   )Ú	__class__r#   r$   r%   ÚsplitE  s    z!TextWrapper._split.<locals>.splitr   r   )r   r   ÚextendrS   Úlist)r#   r   r–   r   ÚchunkÚwÚg©r•   r,   r%   r”   ?  s    zTextWrapper._splitr   )Úreversed_chunksr‡   rˆ   r3   r   c                 C  sR   t || dƒ}| jr<|  |d |¡\}}| |¡ ||d< n|sN| | ¡ ¡ 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   rm   N)rd   Úbreak_long_wordsr   rN   r…   )r#   r   r‡   rˆ   r3   r   rŠ   Úrr$   r$   r%   r†   P  s    

zTextWrapper._handle_long_word)r6   r7   r8   r9   ÚreÚcompileÚ
wordsep_rer‹   r   r”   r†   Ú__classcell__r$   r$   rœ   r%   r}   û   s   ÿ/r}   éF   rV   r   r   r   r~   )r   r3   Úkwargsr   c                 K  s   t f d|i|—Ž}| | ¡S )Nr3   )r}   r5   )r   r3   r¥   rš   r$   r$   r%   r4   f  s    r4   c                      sP   e Zd ZU dZdZi Zded< ded< ddd	œ‡ fd
d„Zddœdd„Z‡  Z	S )Ú
TextWriter)r   )zNo options here.r   r$   zdict[str, Any]Úsettings_defaultsr   Úoutputr   r   )Úbuilderr   c                   s   t ƒ  ¡  || _d S r   )r“   r&   r©   )r#   r©   rœ   r$   r%   r&   r  s    
zTextWriter.__init__r'   c                 C  s0   | j  | j| j ¡}| j |¡ tt|ƒj| _d S r   )r©   Zcreate_translatorÚdocumentZ	walkaboutr	   ÚTextTranslatorÚbodyr¨   )r#   Úvisitorr$   r$   r%   Ú	translatev  s    zTextWriter.translate)
r6   r7   r8   Ú	supportedZsettings_specr§   Ú__annotations__r&   r®   r£   r$   r$   rœ   r%   r¦   k  s   
r¦   c                      s"  e Zd ZU ded< ddddœ‡ fdd„Zddd	œd
d„Zefdddœdd„Zddgdfdddddœdd„Zdddœdd„Z	dddœdd„Z
dddœdd „Zdddœd!d"„Zdddœd#d$„Zdddœd%d&„ZeZeZdddœd'd(„Zdddœd)d*„Zdddœd+d,„Zdddœd-d.„Zdddœd/d0„Zdddœd1d2„Zdddœd3d4„Zdddœd5d6„Zdddœd7d8„Zdddœd9d:„Zdddœd;d<„Zdddœd=d>„Zdddœd?d@„ZdddœdAdB„ZdddœdCdD„ZdddœdEdF„Z dddœdGdH„Z!dddœdIdJ„Z"dddœdKdL„Z#dddœdMdN„Z$dddœdOdP„Z%dddœdQdR„Z&dddœdSdT„Z'dddœdUdV„Z(dddœdWdX„Z)dddœdYdZ„Z*dddœd[d\„Z+dddœd]d^„Z,dddœd_d`„Z-dddœdadb„Z.dddœdcdd„Z/ddeddddfœdgdh„Z0dddœdidj„Z1dddœdkdl„Z2dddœdmdn„Z3dddœdodp„Z4dddœdqdr„Z5dddœdsdt„Z6dddœdudv„Z7dddœdwdx„Z8dddœdydz„Z9dddœd{d|„Z:dddœd}d~„Z;dddœdd€„Z<dddœdd‚„Z=dddœdƒd„„Z>dddœd…d†„Z?dddœd‡dˆ„Z@dddœd‰dŠ„ZAdddœd‹dŒ„ZBdddœddŽ„ZCdddœdd„ZDdddœd‘d’„ZEdddœd“d”„ZFdddœd•d–„ZGdddœd—d˜„ZHdddœd™dš„ZIdddœd›dœ„ZJdddœddž„ZKdddœdŸd „ZLdddœd¡d¢„ZMdddœd£d¤„ZNdddœd¥d¦„ZOdddœd§d¨„ZPdddœd©dª„ZQdddœd«d¬„ZRdddœd­d®„ZSdddœd¯d°„ZTdddœd±d²„ZUdddœd³d´„ZVdddœdµd¶„ZWdddœd·d¸„ZXdddœd¹dº„ZYdddœd»d¼„ZZdddœd½d¾„Z[dddœd¿dÀ„Z\dddœdÁdÂ„Z]dddœdÃdÄ„Z^dddœdÅdÆ„Z_dddœdÇdÈ„Z`dddœdÉdÊ„ZadddœdËdÌ„ZbdddœdÍdÎ„ZcdddœdÏdÐ„ZddddœdÑdÒ„ZedddœdÓdÔ„ZfdddœdÕdÖ„Zgdddœd×dØ„ZhdddœdÙdÚ„ZidddœdÛdÜ„ZjdddœdÝdÞ„Zkdddœdßdà„Zldddœdádâ„Zmdddœdãdä„Zndddœdådæ„Zodddœdçdè„Zpdddœdédê„Zqdddœdëdì„Zrdddœdídî„Zsdddœdïdð„Ztdddœdñdò„Zudddœdódô„Zvdddœdõdö„Zwdddœd÷dø„Zxdddœdùdú„Zydddœdûdü„Zzdddœdýdþ„Z{dddœdÿd „Z|dddœdd„Z}dddœdd„Z~dddœdd„Zdddœdd„Z€dddœd	d
„Zdddœdd„Z‚dddœdd„Zƒdddœdd„Z„dddœdd„Z…dddœdd„Z†dddœdd„Z‡dddœdd„Zˆe‡Z‰eˆZŠe‡Z‹eˆZŒe‡ZeˆZŽe‡ZeˆZe‡Z‘eˆZ’e‡Z“eˆZ”e‡Z•eˆZ–e‡Z—eˆZ˜e‡Z™eˆZše‡Z›eˆZœdddœdd„Zdddœdd„Zždddœdd„ZŸdddœdd „Z dddœd!d"„Z¡dddœd#d$„Z¢dddœd%d&„Z£dddœd'd(„Z¤dddœd)d*„Z¥dddœd+d,„Z¦dddœd-d.„Z§dddœd/d0„Z¨dddœd1d2„Z©dddœd3d4„Zªdddœd5d6„Z«dddœd7d8„Z¬dddœd9d:„Z­dddœd;d<„Z®dddœd=d>„Z¯dddœd?d@„Z°dddœdAdB„Z±dddœdCdD„Z²dddœdEdF„Z³dddœdGdH„Z´dddœdIdJ„ZµdddœdKdL„Z¶dddœdMdN„Z·dddœdOdP„Z¸dddœdQdR„Z¹dddœdSdT„ZºdddœdUdV„Z»dddœdWdX„Z¼dddœdYdZ„Z½dddœd[d\„Z¾dddœd]d^„Z¿dddœd_d`„ZÀdddœdadb„ZÁdddœdcdd„ZÂdddœdedf„ZÃdddœdgdh„ZÄdddœdidj„ZÅdddœdkdl„ZÆdddœdmdn„ZÇdddœdodp„ZÈdddœdqdr„ZÉdddœdsdt„ZÊdddœdudv„ZËdddœdwdx„ZÌdddœdydz„ZÍd{ddœd|d}„ZÎd{ddœd~d„ZÏdddœd€d„ZÐdddœd‚dƒ„ZÑdddœd„d…„ZÒdddœd†d‡„ZÓdddœdˆd‰„ZÔdddœdŠd‹„ZÕdddœdŒd„ZÖdddœdŽd„Z×dddœdd‘„ZØdddœd’d“„ZÙdddœd”d•„ZÚdddœd–d—„ZÛdddœd˜d™„ZÜdddœdšd›„ZÝdddœdœd„ZÞdddœdždŸ„Zß‡  ZàS (   r«   r   r©   znodes.documentr   )rª   r©   r   c                   sŒ   t ƒ  ||¡ | jj}|dkr&d| _n|dkr8tj| _nd| _| jj| _| jj	| _
| jj| _g g| _dg| _g | _d| _d| _|  g | _d S )NÚwindowsz
ÚnativerO   r   )r“   r&   ÚconfigZtext_newlinesÚnlÚosÚlinesepZtext_sectioncharsÚsectioncharsZtext_add_secnumbersÚadd_secnumbersZtext_secnumber_suffixÚsecnumber_suffixÚstatesÚstateindentÚlist_counterÚsectionlevelÚlineblocklevelÚcontext)r#   rª   r©   Únewlinesrœ   r$   r%   r&     s$    



zTextTranslator.__init__r   r‘   c                 C  s   | j d  d|f¡ d S ©Nrm   )rº   rN   )r#   r   r$   r$   r%   Úadd_textš  s    zTextTranslator.add_textr   )r‰   r   c                 C  s   | j  g ¡ | j |¡ d S r   )rº   rN   r»   )r#   r‰   r$   r$   r%   Ú	new_state  s    zTextTranslator.new_stateTr   Nr0   zlist[str] | Nonez
str | None)r5   ÚendÚfirstr   c           
        s  | j  ¡ }t| jƒ‰| j ¡ ‰g ‰g ‰ddœ‡ ‡‡‡‡‡fdd„}|D ]8\}}|dkrbˆ |¡ qF|ƒ  ˆ ˆ| |f¡ g ‰qF|ƒ  |d k	rðˆrðˆd d ˆ }ˆd d dgkrÈˆ d||gf¡ n(|ˆd d  d¡ }	ˆ d||	gf¡ | j d  ˆ¡ d S )	Nr   r'   c                    sP   ˆsd S ˆr$t d ˆ¡tˆ d} nd ˆ¡ ¡ } ˆ r>| ˆ 7 } ˆ ˆ| f¡ d S )Nr   r^   )r4   rS   ÚMAXWIDTHÚ
splitlinesrN   )Úres©rÄ   r‰   Z	maxindentÚresultZtoformatr5   r$   r%   Ú	do_formatª  s    z+TextTranslator.end_state.<locals>.do_formatrm   r   r   r   )rº   r…   Úsumr»   rN   Úinsertr—   )
r#   r5   rÄ   rÅ   ÚcontentrË   Z
itemindentÚitemZ	newindentr   r$   rÉ   r%   Ú	end_state¡  s(    



zTextTranslator.end_stater   )Únoder   c                 C  s   |   d¡ d S r<   ©rÃ   ©r#   rÑ   r$   r$   r%   Úvisit_documentÇ  s    zTextTranslator.visit_documentc                 C  s*   |   ¡  | j dd„ | jd D ƒ¡| _d S )Nc                 s  s,   | ]$\}}|D ]}|o d | | V  qqdS )r(   Nr$   )rQ   r‰   r=   rJ   r$   r$   r%   rR   Ì  s    þz1TextTranslator.depart_document.<locals>.<genexpr>r   )rÐ   r´   rS   rº   r¬   rÓ   r$   r$   r%   Údepart_documentÊ  s    ÿzTextTranslator.depart_documentc                 C  s    | j | j | _|  jd7  _d S rG   )r·   r½   Ú_title_charrÓ   r$   r$   r%   Úvisit_sectionÑ  s    zTextTranslator.visit_sectionc                 C  s   |  j d8  _ d S rG   )r½   rÓ   r$   r$   r%   Údepart_sectionÕ  s    zTextTranslator.depart_sectionc                 C  s   |   d¡ d S r<   rÒ   rÓ   r$   r$   r%   Úvisit_topicØ  s    zTextTranslator.visit_topicc                 C  s   |   ¡  d S r   ©rÐ   rÓ   r$   r$   r%   Údepart_topicÛ  s    zTextTranslator.depart_topicc                 C  s   |   d¡ |  d¡ d S )Nr   z-[ )rÃ   rÂ   rÓ   r$   r$   r%   Úvisit_rubricá  s    
zTextTranslator.visit_rubricc                 C  s   |   d¡ |  ¡  d S )Nz ]-©rÂ   rÐ   rÓ   r$   r$   r%   Údepart_rubricå  s    
zTextTranslator.depart_rubricc                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_compoundé  s    zTextTranslator.visit_compoundc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_compoundì  s    zTextTranslator.depart_compoundc                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_glossaryï  s    zTextTranslator.visit_glossaryc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_glossaryò  s    zTextTranslator.depart_glossaryc                 C  s4   t |jtjƒr&|  | ¡ d ¡ tj‚|  d¡ d S )Nú: r   )Ú
isinstanceÚparentr
   Ú
AdmonitionrÂ   ÚastextÚSkipNoderÃ   rÓ   r$   r$   r%   Úvisit_titleõ  s    zTextTranslator.visit_titlec                 C  sf   t |jtjƒrbd|jd d  }| jj |¡}|d krD| jj d¡}|d k	rbd tt	|ƒ¡| j
 S dS )Nú#Zidsr   r   Ú.)rä   rå   r
   Úsectionr©   Z
secnumbersÚgetrS   Úmapr   r¹   )r#   rÑ   Z
anchornameÚnumbersr$   r$   r%   Úget_section_number_stringû  s    z(TextTranslator.get_section_number_stringc                 C  s°   t |jtjƒr| j}nd}d}d dd„ | j ¡ D ƒ¡}| jrL|  	|¡| }| j
 ¡  d|d|t|ƒ  dg}t| jƒdkr˜t| jd ƒdkr˜| d¡ | jd  d|f¡ d S )	Nú^r   c                 s  s"   | ]}|d  dkr|d V  qdS )r   rm   r   Nr$   r_   r$   r$   r%   rR     s      z.TextTranslator.depart_title.<locals>.<genexpr>z%srj   rm   r   )rä   rå   r
   rì   rÖ   rS   rº   r…   r¸   rð   r»   r   rB   rN   )r#   rÑ   rh   r   Útitler$   r$   r%   Údepart_title  s    
 
zTextTranslator.depart_titlec                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_subtitle  s    zTextTranslator.visit_subtitlec                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_subtitle  s    zTextTranslator.depart_subtitlec                 C  s   |   d¡ d S )Nz-- ©rÂ   rÓ   r$   r$   r%   Úvisit_attribution  s    z TextTranslator.visit_attributionc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_attribution  s    z!TextTranslator.depart_attributionc                 C  s   d S r   r$   rÓ   r$   r$   r%   Ú
visit_desc(  s    zTextTranslator.visit_descc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_desc+  s    zTextTranslator.depart_descc                 C  s   |   d¡ d S r<   rÒ   rÓ   r$   r$   r%   Úvisit_desc_signature.  s    z#TextTranslator.visit_desc_signaturec                 C  s   | j dd d d S )NF©r5   rÄ   rÚ   rÓ   r$   r$   r%   Údepart_desc_signature1  s    z$TextTranslator.depart_desc_signaturec                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_desc_signature_line5  s    z(TextTranslator.visit_desc_signature_linec                 C  s   |   d¡ d S ©NrO   rö   rÓ   r$   r$   r%   Údepart_desc_signature_line8  s    z)TextTranslator.depart_desc_signature_linec                 C  s   |   ¡  |  | j¡ d S r   )rÃ   rÂ   r´   rÓ   r$   r$   r%   Úvisit_desc_content;  s    z!TextTranslator.visit_desc_contentc                 C  s   |   ¡  d S r   rÚ   rÓ   r$   r$   r%   Údepart_desc_content?  s    z"TextTranslator.depart_desc_contentc                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_desc_inlineB  s    z TextTranslator.visit_desc_inlinec                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_desc_inlineE  s    z!TextTranslator.depart_desc_inlinec                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_desc_nameK  s    zTextTranslator.visit_desc_namec                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_desc_nameN  s    zTextTranslator.depart_desc_namec                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_desc_addnameQ  s    z!TextTranslator.visit_desc_addnamec                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_desc_addnameT  s    z"TextTranslator.depart_desc_addnamec                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_desc_typeW  s    zTextTranslator.visit_desc_typec                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_desc_typeZ  s    zTextTranslator.depart_desc_typec                 C  s   |   d¡ d S )Nz -> rö   rÓ   r$   r$   r%   Úvisit_desc_returns]  s    z!TextTranslator.visit_desc_returnsc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_desc_returns`  s    z"TextTranslator.depart_desc_returnsztype[Element])rÑ   Úparameter_groupÚsig_open_parenÚsig_close_parenr   c                   sz   |   |¡ d| _d| _d| _d| _‡ fdd„|jD ƒ| _t| jƒ| _d| _	| 
dd¡| _| jrj| j	 ¡ | _	| j |¡ dS )	zÕVisit 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                   s   g | ]}t |ˆ ƒ‘qS r$   )rä   ©rQ   r   ©r  r$   r%   rp   v  s     z<TextTranslator._visit_sig_parameter_list.<locals>.<listcomp>ú, Ú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_separatorrí   r  Úrstripr¿   rN   )r#   rÑ   r  r  r  r$   r  r%   Ú_visit_sig_parameter_listc  s    
z(TextTranslator._visit_sig_parameter_listc                 C  s   | j  ¡ }|  |¡ d S r   )r¿   r…   rÂ   )r#   rÑ   r  r$   r$   r%   Ú_depart_sig_parameter_list~  s    
z)TextTranslator._depart_sig_parameter_listc                 C  s   |   |tjdd¡ d S )Nú(ú))r  r   Údesc_parameterrÓ   r$   r$   r%   Úvisit_desc_parameterlist‚  s    z'TextTranslator.visit_desc_parameterlistc                 C  s   |   |¡ d S r   ©r  rÓ   r$   r$   r%   Údepart_desc_parameterlist…  s    z(TextTranslator.depart_desc_parameterlistc                 C  s   |   |tjdd¡ d S )Nú[ú])r  r   Zdesc_type_parameterrÓ   r$   r$   r%   Úvisit_desc_type_parameter_listˆ  s    z-TextTranslator.visit_desc_type_parameter_listc                 C  s   |   |¡ d S r   r#  rÓ   r$   r$   r%   Údepart_desc_type_parameter_list‹  s    z.TextTranslator.depart_desc_type_parameter_listc                 C  s  | j }|r"| jr| jdks"|  ¡  | jr0d| _n|sF| jsF|  | j¡ | jdkr`|  jd8  _n|  jd8  _|  | ¡ ¡ | j	| j
 }|rì| j
d t| j	ƒk}| o´| j	| j
d  }| jdk}|sÐ|rþ|sÐ|rþ|  | j¡ | jdd d n| jrþ|  | j¡ |r|  j
d7  _
tj‚d S )Nr   Fr   rü   )r  r  r  rÃ   r  rÂ   r  r  rç   r  r  rB   rÐ   r
   rè   )r#   rÑ   Zon_separate_lineZis_requiredZis_last_groupZnext_is_requiredZopt_param_left_at_levelr$   r$   r%   Úvisit_desc_parameterŽ  s4    

þ
z#TextTranslator.visit_desc_parameterc                 C  s   |   |¡ d S r   )r)  rÓ   r$   r$   r%   Úvisit_desc_type_parameter°  s    z(TextTranslator.visit_desc_type_parameterc                 C  s¬   t dd„ |jD ƒƒ| _|  jd7  _| j| _| jrž| jrL|  ¡  |  d¡ q¨| j	rx|  | j
¡ |  d¡ | jdd d q¨|  d¡ |  | j
¡ | jdd d n
|  d¡ d S )Nc                 S  s   g | ]}t |tjƒ‘qS r$   )rä   r   r!  r  r$   r$   r%   rp   ´  s   ÿz6TextTranslator.visit_desc_optional.<locals>.<listcomp>r   r%  Frü   )rÌ   r  r  r  Úmax_optional_param_levelr  r  rÃ   rÂ   r  r  rÐ   rÓ   r$   r$   r%   Úvisit_desc_optional³  s"    ÿ


z"TextTranslator.visit_desc_optionalc                 C  sz   |  j d8  _ | jrT| j | jd kr0|  | j¡ |  d¡ | j dkr^| jdd d n
|  d¡ | j dkrv|  jd7  _d S )Nr   r&  r   Frü   )r  r  r+  rÂ   r  rÐ   r  rÓ   r$   r$   r%   Údepart_desc_optionalÌ  s    



z#TextTranslator.depart_desc_optionalc                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_desc_annotationÞ  s    z$TextTranslator.visit_desc_annotationc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_desc_annotationá  s    z%TextTranslator.depart_desc_annotationc                 C  s   |   ¡  d S r   rÒ   rÓ   r$   r$   r%   Úvisit_figureæ  s    zTextTranslator.visit_figurec                 C  s   |   ¡  d S r   rÚ   rÓ   r$   r$   r%   Údepart_figureé  s    zTextTranslator.depart_figurec                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_captionì  s    zTextTranslator.visit_captionc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_captionï  s    zTextTranslator.depart_captionc                 C  sÆ   |   ¡  g }tttj |ƒ}|D ]}| |d ¡ q tdd„ |D ƒƒ}d }|D ]`}|d r||  |d  |¡d ¡ |d }n|d k	rš|  ddt	|ƒ  ¡ |  | 
¡ | j ¡ qN| jdd tj‚d S )	NZ	tokennamec                 s  s   | ]}t |ƒV  qd S r   ©rB   )rQ   Únamer$   r$   r%   rR   ø  s     z6TextTranslator.visit_productionlist.<locals>.<genexpr>z ::=z%s    r(   F©r5   )rÃ   r	   r   r   Ú
productionrN   rd   rÂ   rz   rB   rç   r´   rÐ   r
   rè   )r#   rÑ   ÚnamesZproductionlistr7  ÚmaxlenÚlastnamer$   r$   r%   Úvisit_productionlistò  s     
z#TextTranslator.visit_productionlistc                 C  s6   t tj|d ƒ}| ¡  ¡ | _|  t| jƒd ¡ d S )Nr   rV   )r	   r
   Úlabelrç   r„   Ú	_footnoterÃ   rB   )r#   rÑ   r<  r$   r$   r%   Úvisit_footnote  s    zTextTranslator.visit_footnotec                 C  s   | j d| j d d S ©Nz[%s] ©rÅ   )rÐ   r=  rÓ   r$   r$   r%   Údepart_footnote	  s    zTextTranslator.depart_footnotec                 C  sF   t |ƒr(t|d tjƒr(|d  ¡ | _nd| _|  t | jƒd ¡ d S )Nr   r   rV   )rB   rä   r
   r<  rç   Ú	_citlabelrÃ   rÓ   r$   r$   r%   Úvisit_citation  s    zTextTranslator.visit_citationc                 C  s   | j d| j d d S r?  )rÐ   rB  rÓ   r$   r$   r%   Údepart_citation  s    zTextTranslator.depart_citationc                 C  s
   t j‚d S r   ©r
   rè   rÓ   r$   r$   r%   Úvisit_label  s    zTextTranslator.visit_labelc                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_legend  s    zTextTranslator.visit_legendc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_legend  s    zTextTranslator.depart_legendc                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_option_list!  s    z TextTranslator.visit_option_listc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_option_list$  s    z!TextTranslator.depart_option_listc                 C  s   |   d¡ d S r<   rÒ   rÓ   r$   r$   r%   Úvisit_option_list_item'  s    z%TextTranslator.visit_option_list_itemc                 C  s   |   ¡  d S r   rÚ   rÓ   r$   r$   r%   Údepart_option_list_item*  s    z&TextTranslator.depart_option_list_itemc                 C  s
   d| _ d S )NT)Ú_firstoptionrÓ   r$   r$   r%   Úvisit_option_group-  s    z!TextTranslator.visit_option_groupc                 C  s   |   d¡ d S )Nz     rö   rÓ   r$   r$   r%   Údepart_option_group0  s    z"TextTranslator.depart_option_groupc                 C  s   | j rd| _ n
|  d¡ d S )NFr  )rM  rÂ   rÓ   r$   r$   r%   Úvisit_option3  s    zTextTranslator.visit_optionc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_option9  s    zTextTranslator.depart_optionc                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_option_string<  s    z"TextTranslator.visit_option_stringc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_option_string?  s    z#TextTranslator.depart_option_stringc                 C  s   |   |d ¡ d S )NÚ	delimiterrö   rÓ   r$   r$   r%   Úvisit_option_argumentB  s    z$TextTranslator.visit_option_argumentc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_option_argumentE  s    z%TextTranslator.depart_option_argumentc                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_descriptionH  s    z TextTranslator.visit_descriptionc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_descriptionK  s    z!TextTranslator.depart_descriptionc                 C  s
   t j‚d S r   rE  rÓ   r$   r$   r%   Úvisit_tabular_col_specN  s    z%TextTranslator.visit_tabular_col_specc                 C  s   | j j |d ¡ tj‚d S )Nr;   )Útabler;   rN   r
   rè   rÓ   r$   r$   r%   Úvisit_colspecQ  s    zTextTranslator.visit_colspecc                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_tgroupU  s    zTextTranslator.visit_tgroupc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_tgroupX  s    zTextTranslator.depart_tgroupc                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_thead[  s    zTextTranslator.visit_theadc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_thead^  s    zTextTranslator.depart_theadc                 C  s   | j  ¡  d S r   )rZ  rC   rÓ   r$   r$   r%   Úvisit_tbodya  s    zTextTranslator.visit_tbodyc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_tbodyd  s    zTextTranslator.depart_tbodyc                 C  s   | j jr| j  ¡  d S r   )rZ  r=   rA   rÓ   r$   r$   r%   Ú	visit_rowg  s    zTextTranslator.visit_rowc                 C  s   d S r   r$   rÓ   r$   r$   r%   Ú
depart_rowk  s    zTextTranslator.depart_rowc                 C  s4   t | dd¡d | dd¡d d| _|  d¡ d S )NZmorerowsr   r   Zmorecols)r   r   )r   rí   ÚentryrÃ   rÓ   r$   r$   r%   Úvisit_entryn  s
     ÿzTextTranslator.visit_entryc                   sH   ˆ j  ‡ fdd„ˆ j ¡ D ƒ¡}ˆ j ¡  |ˆ j_ˆ j ˆ j¡ ˆ `d S )Nc                 3  s   | ]}ˆ j  |d  ¡V  qdS )r   N)r´   rS   r_   r,   r$   r%   rR   u  s     z.TextTranslator.depart_entry.<locals>.<genexpr>)	r´   rS   rº   r…   r»   rd  r   rZ  rE   ©r#   rÑ   r   r$   r,   r%   Údepart_entryt  s
     
zTextTranslator.depart_entryc                 C  s(   t | dƒrtdƒ‚|  d¡ tƒ | _d S )NrZ  z Nested tables are not supported.r   )ÚhasattrÚNotImplementedErrorrÃ   r:   rZ  rÓ   r$   r$   r%   Úvisit_table{  s    

zTextTranslator.visit_tablec                 C  s$   |   t| jƒ¡ | `| jdd d S ©NFr6  )rÂ   r   rZ  rÐ   rÓ   r$   r$   r%   Údepart_table  s    zTextTranslator.depart_tablec                 C  sZ   t tj|d ƒ}t ttj |ƒ}|  d¡ |  d dd„ |D ƒ¡d ¡ |  ¡  tj	‚d S )Nr   r  c                 s  s   | ]}|  ¡ V  qd S r   )rç   )rQ   Únr$   r$   r%   rR   Š  s     z,TextTranslator.visit_acks.<locals>.<genexpr>rë   )
r	   r
   Úbullet_listr   Z	list_itemrÃ   rÂ   rS   rÐ   rè   )r#   rÑ   rn  Z
list_itemsr$   r$   r%   Ú
visit_acks†  s    
zTextTranslator.visit_acksc                 C  s8   d|j kr |  tdƒ|d  ¡ |  tdƒ¡ tj‚d S )NZaltz[image: %s]z[image])Ú
attributesrÂ   r   r
   rè   rÓ   r$   r$   r%   Úvisit_imageŽ  s    
zTextTranslator.visit_imagec                 C  s8   t | jƒ}|  d¡ |  dt|  ¡ |  ¡  tj‚d S )Nr   ry   )rÌ   r»   rÃ   rÂ   rÆ   rÐ   r
   rè   )r#   rÑ   r‰   r$   r$   r%   Úvisit_transition”  s
    

zTextTranslator.visit_transitionc                 C  s   | j  d¡ d S rÁ   ©r¼   rN   rÓ   r$   r$   r%   Úvisit_bullet_list›  s    z TextTranslator.visit_bullet_listc                 C  s   | j  ¡  d S r   ©r¼   r…   rÓ   r$   r$   r%   Údepart_bullet_listž  s    z!TextTranslator.depart_bullet_listc                 C  s   | j  | dd¡d ¡ d S )NÚstartr   )r¼   rN   rí   rÓ   r$   r$   r%   Úvisit_enumerated_list¡  s    z$TextTranslator.visit_enumerated_listc                 C  s   | j  ¡  d S r   ru  rÓ   r$   r$   r%   Údepart_enumerated_list¤  s    z%TextTranslator.depart_enumerated_listc                 C  s   | j  d¡ d S )Néþÿÿÿrs  rÓ   r$   r$   r%   Úvisit_definition_list§  s    z$TextTranslator.visit_definition_listc                 C  s   | j  ¡  d S r   ru  rÓ   r$   r$   r%   Údepart_definition_listª  s    z%TextTranslator.depart_definition_listc                 C  s\   | j d dkr|  d¡ n>| j d dkr*n.| j d  d7  < |  tt| j d ƒƒd ¡ d S )Nrm   rj   rz  r   )r¼   rÃ   rB   r   rÓ   r$   r$   r%   Úvisit_list_item­  s    zTextTranslator.visit_list_itemc                 C  sF   | j d dkr| jdd n&| j d dkr,n| jd| j d  d d S )Nrm   z* r@  rz  z%s. )r¼   rÐ   rÓ   r$   r$   r%   Údepart_list_item¹  s
    zTextTranslator.depart_list_itemc                 C  s   t t| tj¡ƒƒ| _d S r   )rB   r˜   Úfindallr
   Ú
classifierÚ_classifier_count_in_lirÓ   r$   r$   r%   Úvisit_definition_list_itemÁ  s    z)TextTranslator.visit_definition_list_itemc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_definition_list_itemÄ  s    z*TextTranslator.depart_definition_list_itemc                 C  s   |   d¡ d S r<   rÒ   rÓ   r$   r$   r%   Ú
visit_termÇ  s    zTextTranslator.visit_termc                 C  s   | j s| jd d d S )N©rÄ   ©r  rÐ   rÓ   r$   r$   r%   Údepart_termÊ  s    zTextTranslator.depart_termc                 C  s   |   d¡ d S )Nz : rö   rÓ   r$   r$   r%   Úvisit_classifierÎ  s    zTextTranslator.visit_classifierc                 C  s$   |  j d8  _ | j s | jd d d S )Nr   r…  r†  rÓ   r$   r$   r%   Údepart_classifierÑ  s    z TextTranslator.depart_classifierc                 C  s   |   ¡  d S r   rÒ   rÓ   r$   r$   r%   Úvisit_definitionÖ  s    zTextTranslator.visit_definitionc                 C  s   |   ¡  d S r   rÚ   rÓ   r$   r$   r%   Údepart_definitionÙ  s    z TextTranslator.depart_definitionc                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_field_listÜ  s    zTextTranslator.visit_field_listc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_field_listß  s    z TextTranslator.depart_field_listc                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_fieldâ  s    zTextTranslator.visit_fieldc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_fieldå  s    zTextTranslator.depart_fieldc                 C  s   |   d¡ d S r<   rÒ   rÓ   r$   r$   r%   Úvisit_field_nameè  s    zTextTranslator.visit_field_namec                 C  s   |   d¡ | jd d d S )Nú:r…  rÝ   rÓ   r$   r$   r%   Údepart_field_nameë  s    
z TextTranslator.depart_field_namec                 C  s   |   ¡  d S r   rÒ   rÓ   r$   r$   r%   Úvisit_field_bodyï  s    zTextTranslator.visit_field_bodyc                 C  s   |   ¡  d S r   rÚ   rÓ   r$   r$   r%   Údepart_field_bodyò  s    z TextTranslator.depart_field_bodyc                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_centeredõ  s    zTextTranslator.visit_centeredc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_centeredø  s    zTextTranslator.depart_centeredc                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_hlistû  s    zTextTranslator.visit_hlistc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_hlistþ  s    zTextTranslator.depart_hlistc                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_hlistcol  s    zTextTranslator.visit_hlistcolc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_hlistcol  s    zTextTranslator.depart_hlistcolc                 C  s   |   d¡ d S r<   rÒ   rÓ   r$   r$   r%   Úvisit_admonition  s    zTextTranslator.visit_admonitionc                 C  s   |   ¡  d S r   rÚ   rÓ   r$   r$   r%   Údepart_admonition
  s    z TextTranslator.depart_admonitionc                 C  s   |   d¡ d S )Nrj   rÒ   rÓ   r$   r$   r%   Ú_visit_admonition  s    z TextTranslator._visit_admonitionc                 C  sÂ   t |j }t| jƒt|ƒ }t| jd ƒdkr”| jd d d dkr”t| tdd„ | jd d d D ƒƒkr”| jd  t|ƒ7  < | j|d d n*| jd  dd| j	gf¡ | j|d d d S )	Nrm   r   r   c                 s  s   | ]}t |ƒV  qd S r   r4  )rQ   Úsr$   r$   r%   rR     s     z4TextTranslator._depart_admonition.<locals>.<genexpr>rã   r@  r‘  )
r   ÚtagnamerÌ   r»   rB   rº   rÆ   rÐ   rÍ   r´   )r#   rÑ   r<  r‰   r$   r$   r%   Ú_depart_admonition  s    
ÿ&þz!TextTranslator._depart_admonitionc                 C  s   |   d¡ d S r<   rÒ   rÓ   r$   r$   r%   Úvisit_versionmodified3  s    z$TextTranslator.visit_versionmodifiedc                 C  s   |   ¡  d S r   rÚ   rÓ   r$   r$   r%   Údepart_versionmodified6  s    z%TextTranslator.depart_versionmodifiedc                 C  s   |   ¡  d S r   rÒ   rÓ   r$   r$   r%   Úvisit_literal_block9  s    z"TextTranslator.visit_literal_blockc                 C  s   | j dd d S rk  rÚ   rÓ   r$   r$   r%   Údepart_literal_block<  s    z#TextTranslator.depart_literal_blockc                 C  s   |   d¡ d S r<   rÒ   rÓ   r$   r$   r%   Úvisit_doctest_block?  s    z"TextTranslator.visit_doctest_blockc                 C  s   | j dd d S rk  rÚ   rÓ   r$   r$   r%   Údepart_doctest_blockB  s    z#TextTranslator.depart_doctest_blockc                 C  s   |   ¡  |  jd7  _d S rG   )rÃ   r¾   rÓ   r$   r$   r%   Úvisit_line_blockE  s    zTextTranslator.visit_line_blockc                 C  s0   |  j d8  _ | jdd d | j s,|  d¡ d S )Nr   Frü   rO   )r¾   rÐ   rÂ   rÓ   r$   r$   r%   Údepart_line_blockI  s    z TextTranslator.depart_line_blockc                 C  s   d S r   r$   rÓ   r$   r$   r%   Ú
visit_lineO  s    zTextTranslator.visit_linec                 C  s   |   d¡ d S rÿ   rö   rÓ   r$   r$   r%   Údepart_lineR  s    zTextTranslator.depart_linec                 C  s   |   ¡  d S r   rÒ   rÓ   r$   r$   r%   Úvisit_block_quoteU  s    z TextTranslator.visit_block_quotec                 C  s   |   ¡  d S r   rÚ   rÓ   r$   r$   r%   Údepart_block_quoteX  s    z!TextTranslator.depart_block_quotec                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_compact_paragraph[  s    z&TextTranslator.visit_compact_paragraphc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_compact_paragraph^  s    z'TextTranslator.depart_compact_paragraphc                 C  s*   t |jtjƒrt |jtjƒr&|  d¡ d S r<   )rä   rå   r
   ræ   r   ÚseealsorÃ   rÓ   r$   r$   r%   Úvisit_paragrapha  s    ÿzTextTranslator.visit_paragraphc                 C  s(   t |jtjƒrt |jtjƒr$|  ¡  d S r   )rä   rå   r
   ræ   r   r¯  rÐ   rÓ   r$   r$   r%   Údepart_paragraphf  s    ÿzTextTranslator.depart_paragraphc                 C  s
   t j‚d S r   rE  rÓ   r$   r$   r%   Úvisit_targetk  s    zTextTranslator.visit_targetc                 C  s
   t j‚d S r   rE  rÓ   r$   r$   r%   Úvisit_indexn  s    zTextTranslator.visit_indexc                 C  s
   t j‚d S r   rE  rÓ   r$   r$   r%   Úvisit_toctreeq  s    zTextTranslator.visit_toctreec                 C  s
   t j‚d S r   rE  rÓ   r$   r$   r%   Úvisit_substitution_definitiont  s    z,TextTranslator.visit_substitution_definitionc                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_pending_xrefw  s    z!TextTranslator.visit_pending_xrefc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_pending_xrefz  s    z"TextTranslator.depart_pending_xrefc                 C  s8   | j r4| d¡}|d k	r4|  d tt|ƒ¡| j ¡ d S )NZ	secnumberrë   )r¸   rí   rÂ   rS   rî   r   r¹   )r#   rÑ   rï   r$   r$   r%   Úvisit_reference}  s    
zTextTranslator.visit_referencec                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_referenceƒ  s    zTextTranslator.depart_referencec                 C  s&   t  | dd¡¡}|  |¡ t j‚d S )Nrò   rê   )r
   r   rí   Ú
visit_Textrè   rf  r$   r$   r%   Úvisit_number_reference†  s    
z%TextTranslator.visit_number_referencec                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_download_reference‹  s    z'TextTranslator.visit_download_referencec                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_download_referenceŽ  s    z(TextTranslator.depart_download_referencec                 C  s   |   d¡ d S ©NÚ*rö   rÓ   r$   r$   r%   Úvisit_emphasis‘  s    zTextTranslator.visit_emphasisc                 C  s   |   d¡ d S r¾  rö   rÓ   r$   r$   r%   Údepart_emphasis”  s    zTextTranslator.depart_emphasisc                 C  s   |   d¡ d S r¾  rö   rÓ   r$   r$   r%   Úvisit_literal_emphasis—  s    z%TextTranslator.visit_literal_emphasisc                 C  s   |   d¡ d S r¾  rö   rÓ   r$   r$   r%   Údepart_literal_emphasisš  s    z&TextTranslator.depart_literal_emphasisc                 C  s   |   d¡ d S ©Nz**rö   rÓ   r$   r$   r%   Úvisit_strong  s    zTextTranslator.visit_strongc                 C  s   |   d¡ d S rÄ  rö   rÓ   r$   r$   r%   Údepart_strong   s    zTextTranslator.depart_strongc                 C  s   |   d¡ d S rÄ  rö   rÓ   r$   r$   r%   Úvisit_literal_strong£  s    z#TextTranslator.visit_literal_strongc                 C  s   |   d¡ d S rÄ  rö   rÓ   r$   r$   r%   Údepart_literal_strong¦  s    z$TextTranslator.depart_literal_strongc                 C  s   |   d¡ d S r1   rö   rÓ   r$   r$   r%   Úvisit_abbreviation©  s    z!TextTranslator.visit_abbreviationc                 C  s    |  d¡r|  d|d  ¡ d S )NZexplanationz (%s))rh  rÂ   rÓ   r$   r$   r%   Údepart_abbreviation¬  s    
z"TextTranslator.depart_abbreviationc                 C  s
   |   |¡S r   )rÂ  rÓ   r$   r$   r%   Úvisit_manpage°  s    zTextTranslator.visit_manpagec                 C  s
   |   |¡S r   )rÃ  rÓ   r$   r$   r%   Údepart_manpage³  s    zTextTranslator.depart_manpagec                 C  s   |   d¡ d S r¾  rö   rÓ   r$   r$   r%   Úvisit_title_reference¶  s    z$TextTranslator.visit_title_referencec                 C  s   |   d¡ d S r¾  rö   rÓ   r$   r$   r%   Údepart_title_reference¹  s    z%TextTranslator.depart_title_referencec                 C  s   |   d¡ d S ©Nú"rö   rÓ   r$   r$   r%   Úvisit_literal¼  s    zTextTranslator.visit_literalc                 C  s   |   d¡ d S rÏ  rö   rÓ   r$   r$   r%   Údepart_literal¿  s    zTextTranslator.depart_literalc                 C  s   |   d¡ d S )Nr   rö   rÓ   r$   r$   r%   Úvisit_subscriptÂ  s    zTextTranslator.visit_subscriptc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_subscriptÅ  s    zTextTranslator.depart_subscriptc                 C  s   |   d¡ d S )Nrñ   rö   rÓ   r$   r$   r%   Úvisit_superscriptÈ  s    z TextTranslator.visit_superscriptc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_superscriptË  s    z!TextTranslator.depart_superscriptc                 C  s   |   d| ¡  ¡ tj‚d S ©Nz[%s]©rÂ   rç   r
   rè   rÓ   r$   r$   r%   Úvisit_footnote_referenceÎ  s    z'TextTranslator.visit_footnote_referencec                 C  s   |   d| ¡  ¡ tj‚d S r×  rØ  rÓ   r$   r$   r%   Úvisit_citation_referenceÒ  s    z'TextTranslator.visit_citation_referencer   c                 C  s   |   | ¡ ¡ d S r   )rÂ   rç   rÓ   r$   r$   r%   rº  Ö  s    zTextTranslator.visit_Textc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_TextÙ  s    zTextTranslator.depart_Textc                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_generatedÜ  s    zTextTranslator.visit_generatedc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_generatedß  s    zTextTranslator.depart_generatedc                 C  s&   d|d ksd|d kr"|   d¡ d S ©NZxrefÚclassesÚtermr¿  rö   rÓ   r$   r$   r%   Úvisit_inlineâ  s    zTextTranslator.visit_inlinec                 C  s&   d|d ksd|d kr"|   d¡ d S rÞ  rö   rÓ   r$   r$   r%   Údepart_inlineæ  s    zTextTranslator.depart_inlinec                 C  s   d S r   r$   rÓ   r$   r$   r%   Úvisit_containerê  s    zTextTranslator.visit_containerc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_containerí  s    zTextTranslator.depart_containerc                 C  s   |   d¡ d S )Nz>>rö   rÓ   r$   r$   r%   Úvisit_problematicð  s    z TextTranslator.visit_problematicc                 C  s   |   d¡ d S )Nz<<rö   rÓ   r$   r$   r%   Údepart_problematicó  s    z!TextTranslator.depart_problematicc                 C  s.   |   d¡ |  d| ¡  ¡ |  ¡  tj‚d S )Nr   z<SYSTEM MESSAGE: %s>)rÃ   rÂ   rç   rÐ   r
   rè   rÓ   r$   r$   r%   Úvisit_system_messageö  s    
z#TextTranslator.visit_system_messagec                 C  s
   t j‚d S r   rE  rÓ   r$   r$   r%   Úvisit_commentü  s    zTextTranslator.visit_commentc                 C  s
   t j‚d S r   rE  rÓ   r$   r$   r%   Ú
visit_metaÿ  s    zTextTranslator.visit_metac                 C  sB   d|  dd¡ ¡ kr8|  d¡ |  | ¡ ¡ | jdd tj‚d S )Nr   Úformatr   r   Fr6  )rí   r–   rÃ   rÂ   rç   rÐ   r
   rè   rÓ   r$   r$   r%   Ú	visit_raw  s
    
zTextTranslator.visit_rawc                 C  s   d S r   r$   rÓ   r$   r$   r%   Ú
visit_math
  s    zTextTranslator.visit_mathc                 C  s   d S r   r$   rÓ   r$   r$   r%   Údepart_math  s    zTextTranslator.depart_mathc                 C  s   |   ¡  d S r   rÒ   rÓ   r$   r$   r%   Úvisit_math_block  s    zTextTranslator.visit_math_blockc                 C  s   |   ¡  d S r   rÚ   rÓ   r$   r$   r%   Údepart_math_block  s    z TextTranslator.depart_math_block)ár6   r7   r8   r°   r&   rÂ   Ú	STDINDENTrÃ   rÐ   rÔ   rÕ   r×   rØ   rÙ   rÛ   Zvisit_sidebarZdepart_sidebarrÜ   rÞ   rß   rà   rá   râ   ré   rð   ró   rô   rõ   r÷   rø   rù   rú   rû   rý   rþ   r   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  r1  r2  r3  r;  r>  rA  rC  rD  rF  rG  rH  rI  rJ  rK  rL  rN  rO  rP  rQ  rR  rS  rU  rV  rW  rX  rY  r[  r\  r]  r^  r_  r`  ra  rb  rc  re  rg  rj  rl  ro  rq  rr  rt  rv  rx  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   Zvisit_attentionZdepart_attentionZvisit_cautionZdepart_cautionZvisit_dangerZdepart_dangerZvisit_errorZdepart_errorZ
visit_hintZdepart_hintZvisit_importantZdepart_importantZ
visit_noteZdepart_noteZ	visit_tipZ
depart_tipZvisit_warningZdepart_warningZvisit_seealsoZ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$   r$   rœ   r%   r«   |  s¾  
  ÿ&

"r«   )*r9   Ú
__future__r   rb   rµ   r    ÚtextwrapÚ	itertoolsr   r   Útypingr   r   r   r   r	   Zdocutilsr
   r   Zdocutils.nodesr   r   Zdocutils.utilsr   Zsphinxr   Zsphinx.localer   r   Zsphinx.util.docutilsr   Zsphinx.builders.textr   r   r:   r}   rÆ   rð  r4   ÚWriterr¦   r«   r$   r$   r$   r%   Ú<module>   s0    Lg