o
    Ni                     @   s   d Z dZddlZddlmZmZmZ zddlZW n ey*   ddl	m
  mZ Y nw dZdZdZdZdZdZG dd	 d	ejZG d
d dZG dd dejZdS )a  
Simple man page writer for reStructuredText.

Man pages (short for "manual pages") contain system documentation on unix-like
systems. The pages are grouped in numbered sections:

 1 executable programs and shell commands
 2 system calls
 3 library functions
 4 special files
 5 file formats
 6 games
 7 miscellaneous
 8 system administration

Man pages are written *troff*, a text file formatting system.

See https://www.tldp.org/HOWTO/Man-Page for a start.

Man pages have no subsection only parts.
Standard parts

  NAME ,
  SYNOPSIS ,
  DESCRIPTION ,
  OPTIONS ,
  FILES ,
  SEE ALSO ,
  BUGS ,

and

  AUTHOR .

A unix-like system keeps an index of the DESCRIPTIONs, which is accessible
by the command whatis or apropos.

reStructuredText    N)nodeswriters	languages   g      @aw  .
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
c                   @   s(   e Zd ZdZ	 dZ	 dd Zdd ZdS )Writer)manpageNc                 C   s   t j|  t| _d S N)r   r   __init__
Translatortranslator_classself r   L/home/ubuntu/.local/lib/python3.10/site-packages/docutils/writers/manpage.pyr
   d   s   
zWriter.__init__c                 C   s&   |  | j}| j| | | _d S r	   )r   document	walkaboutastextoutput)r   visitorr   r   r   	translateh   s   zWriter.translate)__name__
__module____qualname__	supportedr   r
   r   r   r   r   r   r   \   s    r   c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )Tablec                 C   s    g | _ ddg| _d| _g | _d S )Nboxcenter	)_rows_options	_tab_char_coldefsr   r   r   r   r
   o   s   

zTable.__init__c                 C   s   | j g  d S r	   r   appendr   r   r   r   new_rowu      zTable.new_rowc                 C   s   | j |g dS )z$Append the separator for table head.Nr#   )r   	separatorr   r   r   append_separatorx   s   zTable.append_separatorc                 C   sd   d}t |dkr|d dkrd}| jd ||d  t | jt | jd k r0| jd dS dS )zcell_lines is an array of linesr   .sp
   Nl)lenr   r$   r"   )r   
cell_linesstartr   r   r   append_cell|   s   zTable.append_cellc                 C   s\   |r|d dv r|d= |r|d dv s|r(|d dv r,|d= |r*|d dv sdS dS dS dS )z3Remove leading and trailing blank and ``.sp`` linesr   )
r)   r+   Nr   )r   r.   r   r   r   _minimize_cell   s    zTable._minimize_cellc                 C   s   dg}| d| jd  | dd| j  | jD ]J}| d tt|D ]7}|| }| | || |d 	dsH|d  d7  < |t|d	 k r[| d
| j
 d  q)| d q)| d q|  | d |S )Nz.TS
 z;
%s.
|zT{
r+   r1   r*   zT}zT}
z_
z.TE
)r$   joinr    r"   r   ranger-   r2   extendendswithr!   pop)r   textrowicellr   r   r   as_list   s$   




zTable.as_listN)	r   r   r   r
   r%   r(   r0   r2   r?   r   r   r   r   r   n   s    	r   c                   @   s,  e Zd ZdZedZedZdZdd Z	dd Z
d	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zdzd"d#Zd$d% Zd&d' ZeZd(d) Zd*d+ Zd,d- ZeZd.d/ Zd0d1 Z d2d3 Z!d4d5 Z"d6d7 Z#d8d9 Z$d:d; Z%d<d= Z&d>d? Z'eZ(d@dA Z)dBdC Z*dDdE Z+dFdG Z,dHdI Z-dJdK Z.dLdM Z/dNdO Z0edPj1fdQdRZ2dSdT Z3eZ4dUdV Z5dWdX Z6dYdZ Z7d[d\ Z8d]d^ Z9d_d` Z:eZ;dadb Z<dcdd Z=dedf Z>dgdh Z?didj Z@dkdl ZAdmdn ZBdodp ZCdqdr ZDdsdt ZEdudv ZFdwdx ZGdydz ZHd{d| ZId}d~ ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSeZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd Zfdd Zgdd Zhdd Zidd ZjeZkdd Zldd Zmdd ZnddĄ ZoddƄ ZpddȄ Zqddʄ Zrdd̄ ZseZtdd΄ ZuddЄ Zvdd҄ ZwddԄ Zxddք Zydd؄ Zzddڄ Z{dd܄ Z|ddބ Z}dd Z~dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZeZd{ddZdd Zdd Zdd Zd d Zdd Zdd Zdd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) ZeZd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 ZeZd4d5 Zd6d7 Zd8d9 Zd:d; Zd<d= Zd>d? Zd@dA ZdBdC ZdDdE ZdFdG ZdHdI ZdJdK ZdLdM ZdNdO ZdPdQ ZdRdS ZdTdU ZdVdW ZdXdY ZdZd[ ZeZd\d] Zd^d_ Zd`da Zdbdc ZÐddde ZĐdfdg ZŐdhdi ZƐdjdk Zǐdldm ZȐdndo Zɐdpdq Zʐdrds Zːdtdu Z̐dvdw ZeZΐdxdy Zd!S (|  r    z	\S+| +|\nz\.\wz)Man page generated from reStructuredText.c                 C   s   t j| | |j | _}|j}t||j| _g | _	g | _
g | _d| _g | _d| _g | _d| _d | _g | _dddddg dddd	| _g | _i | _d | _d | _d | _d| _d| _d| _d| _g | _d| _dg| _dddd	d
dddd	ddddd| _d S )Nr   r@   r*   )	titletitle_uppersubtitlemanual_sectionmanual_groupauthordate	copyrightversionF)z.INDENT %.1f
z
.UNINDENT
)z.TPr@   ).TP
.B r1   )z\fB\fP)z.sp
.EX
z
.EE
).TP
r@   )z\fI\%rK   )z\fIrK   ).SS )z
.nf
z
.fi
)indentdefinition_list_item
field_nameliteralliteral_blockoption_list_item	referenceemphasisstrongtitle_referencetopic-titlesidebar-titleproblematic) r   NodeVisitorr
   settingslanguage_coder   get_languagereporterlanguageheadbodyfootsection_levelcontexttopic_classcolspecs	compact_pcompact_simple
_list_char_docinfo_docinfo_keys_docinfo_names_in_docinfo_field_name_active_table_has_a_table_in_literalheader_written_line_blockauthors_indentdefs)r   r   r\   lcoder   r   r   r
      s`   	zTranslator.__init__c                    s&   d d  fdd|dD }|S )zPReturn commented version of the passed text WITHOUT end of
        line/comment.z.\" r@   c                    s   g | ]} | d  qS )r1   r   ).0in_lineprefixr   r   
<listcomp>   s    z,Translator.comment_begin.<locals>.<listcomp>r1   )r6   split)r   r;   out_textr   r{   r   comment_begin   s
   zTranslator.comment_beginc                 C   s   |  |d S )z,Return commented version of the passed text..
)r   r   r;   r   r   r   comment   s   zTranslator.commentc                 C   s8   t | jdkr| jd d dkr| jd dS dS dS )z7Ensure the last line in body is terminated by new line.r   r+   r1   N)r-   rb   r$   r   r   r   r   
ensure_eol  s    zTranslator.ensure_eolc                 C   s  | j s|   tt| jd ddD ]o}| j| dkr| j|d  dd dv r.d| j|< q| j|d  dd	 d
krN| j|d  dd dkrNd| j|< q| j|d  dkr| j| j|d  s| j|d	  dd dks|| j|d	  dd dkrd| j|< qd| j| j | j	 S )z0Return the final formatted document as a string.r*   r   r+   r)   N   )z.BI z.IP r      .B    rL   r1   r   rJ   
.B r@   )
rs   append_headerr7   r-   rb   possibly_a_roff_commandmatchr6   ra   rc   )r   r=   r   r   r   r     s&   
zTranslator.astextc                 C   s   | dd}| dd}|S )N    z\ u   †z\(dg)replacer   r   r   r   	deunicode  s   zTranslator.deunicodec                 C   st   |  }|dd}g d}|D ]
\}}|||}q| |}|dr)d| }| jr2|dd}| j| d S )N\z\e))-z\-)'z\(aq)   ´z\')`z\(ga)"z\(dq.z\&z
.z
\&.)r   r   r   
startswithrr   rb   r$   )r   noder;   replace_pairsin_char
out_markupr   r   r   
visit_Text"  s   

zTranslator.visit_Textc                 C      d S r	   r   r   r   r   r   r   depart_Text7     zTranslator.depart_Textc                    s~   G  fddd}d v r| j | d  n| j |d t| j dkr3| | j d   d S | | j d   d S )Nc                       s:   e Zd ZdddZ fddZdd Zdd	 Zd
d ZdS )z'Translator.list_start.<locals>.EnumCharz\(buz\(em)bulletemdashc                    s   || _ d v r d d | _nd| _d| _|dkr3ttt j| _|  jtt| jd 7  _d S |dkrG|  jtdd 7  _d| _d S |d	kr[|  jtd
d 7  _d| _d S |dred| _d S d S )Nr/   r*   r   r   arabic
loweralphaar   
upperalphaAroman   )_style_cntrv   r-   strchildrenordr9   )r   styler   r   r   r
   A  s"    



z0Translator.list_start.<locals>.EnumChar.__init__c                 S   s   | j dkr| j| j  S | j dkr| j| j  S |  jd7  _| j dkr'd| j S | j dv r1d| j S | j drMt| jd	 }| j d
rI| S | S d| j S )Nr   r   r*   r   z%d.)r   r   z%c.r   r   upper)	r   
enum_styler   r9   r   toRomanr   r   lower)r   resr   r   r   __next__V  s   






z0Translator.list_start.<locals>.EnumChar.__next__c                 S   s   | j S r	   )rv   r   r   r   r   	get_widthi  s   z1Translator.list_start.<locals>.EnumChar.get_widthc                 S   s   dt | j S )Nzenum_style-%s)listr   r   r   r   r   __repr__l     z0Translator.list_start.<locals>.EnumChar.__repr__N)r   r   r   r   r
   r   r   r   r   r   r   r   EnumChar;  s    r   enumtyper   r*   r+   )rj   r$   r-   rN   r   )r   r   r   r   r   r   
list_start:  s   4zTranslator.list_startc                 C   s   |    | j  d S r	   )dedentrj   r:   r   r   r   r   list_endy  s   zTranslator.list_endc                 C   s<   d| j  }| j d r|d| j  7 }|d7 }d}||| j   S )NzC.TH "%(title_upper)s" "%(manual_section)s" "%(date)s" "%(version)s"rE   z "%(manual_group)s"r1   z#.SH NAME
%(title)s \- %(subtitle)s
)rk   )r   thsh_tmplr   r   r   header}  s   
zTranslator.headerc                 C   s0   | j rdS | jt | j|   d| _ dS )z#append header with .TH and .SH NAMENr*   )rs   ra   r$   	MACRO_DEFr   r   r   r   r   r     s
   
zTranslator.append_headerc                 C      |  |d d S )Naddressvisit_docinfo_itemr   r   r   r   visit_address  r&   zTranslator.visit_addressc                 C   r   r	   r   r   r   r   r   depart_address  r   zTranslator.depart_addressNc                 C   s\   |r'| j d d| jd d | jj|| | jd d f }| j | | | d S )Nr)   z%s%s:%s
rV   r   r*   )rb   r$   rw   r`   labelsgetr   visit_block_quoter   r   namer   r   r   visit_admonition  s   	zTranslator.visit_admonitionc                 C      |  | d S r	   )depart_block_quoter   r   r   r   depart_admonition  r   zTranslator.depart_admonitionc                 C   r   )N	attentionr   r   r   r   r   visit_attention  r&   zTranslator.visit_attentionc                 C   s>   |dkr| j | |  n| | j |< | j| tjNrF   )rk   r$   r   rl   r   SkipNoder   r   r   r   r     s
   zTranslator.visit_docinfo_itemc                 C   r   r	   r   r   r   r   r   depart_docinfo_item  r   zTranslator.depart_docinfo_itemc                 C   r   r   r   r   r   r   r   visit_author  r&   zTranslator.visit_authorc                 C   r   r	   r   r   r   r   r   visit_authors     zTranslator.visit_authorsc                 C   r   r	   r   r   r   r   r   depart_authors  r   zTranslator.depart_authorsc                 C   s   |  t |  d d S )Nr   )rN   BLOCKQOUTE_INDENTr   r   r   r   r     s   
zTranslator.visit_block_quotec                 C      |    |    d S r	   r   r   r   r   r   r        zTranslator.depart_block_quotec                 C   r   r	   r   r   r   r   r   visit_bullet_list  r   zTranslator.visit_bullet_listc                 C      |    d S r	   r   r   r   r   r   depart_bullet_list     zTranslator.depart_bullet_listc                 C   r   r	   r   r   r   r   r   visit_caption  r   zTranslator.visit_captionc                 C   r   r	   r   r   r   r   r   depart_caption  r   zTranslator.depart_captionc                 C   r   )Ncautionr   r   r   r   r   visit_caution  r&   zTranslator.visit_cautionc                 C   s0   |  d dd }| }| jd|  d S )Nr*   r   .IP [%s] 5
)r   r~   striprb   r$   )r   r   numr   r   r   visit_citation  s   zTranslator.visit_citationc                 C   r   r	   r   r   r   r   r   depart_citation  r   zTranslator.depart_citationc                 C   s   | j d|  d  tjN[])rb   r$   r   r   r   r   r   r   r   visit_citation_reference  s   z#Translator.visit_citation_referencec                 C      | j d d S )N(rb   r$   r   r   r   r   visit_classifier  r&   zTranslator.visit_classifierc                 C   s   | j d | | d S )N))rb   r$   depart_termr   r   r   r   depart_classifier  s   zTranslator.depart_classifierc                 C   s   | j | d S r	   )rg   r$   r   r   r   r   visit_colspec  r&   zTranslator.visit_colspecc                 C   r   r	   r   r   r   r   r   depart_colspec  r   zTranslator.depart_colspecc                 C   s   | j ddt| j   d S )Nr4   zL )rb   r$   r-   rg   r   r   r   r   write_colspecs  s   zTranslator.write_colspecsz-(?=-)c                 C   s   | j | |  tjr	   )rb   r$   r   r   r   r   )r   r   subr   r   r   visit_comment  s   zTranslator.visit_commentc                 C   r   )Ncontactr   r   r   r   r   visit_contact  r&   zTranslator.visit_contactc                 C   r   r	   r   r   r   r   r   visit_container  r   zTranslator.visit_containerc                 C   r   r	   r   r   r   r   r   depart_container  r   zTranslator.depart_containerc                 C   r   r	   r   r   r   r   r   visit_compound  r   zTranslator.visit_compoundc                 C   r   r	   r   r   r   r   r   depart_compound  r   zTranslator.depart_compoundc                 C   r   )NrH   r   r   r   r   r   visit_copyright  r&   zTranslator.visit_copyrightc                 C   r   )Ndangerr   r   r   r   r   visit_danger  r&   zTranslator.visit_dangerc                 C   r   )NrG   r   r   r   r   r   
visit_date   r&   zTranslator.visit_datec                 C   r   r	   r   r   r   r   r   visit_decoration#  r   zTranslator.visit_decorationc                 C   r   r	   r   r   r   r   r   depart_decoration&  r   zTranslator.depart_decorationc                 C   r   r	   r   r   r   r   r   visit_definition)  r   zTranslator.visit_definitionc                 C   r   r	   r   r   r   r   r   depart_definition,  r   zTranslator.depart_definitionc                 C      |  t d S r	   )rN   DEFINITION_LIST_INDENTr   r   r   r   visit_definition_list/  r   z Translator.visit_definition_listc                 C   r   r	   r   r   r   r   r   depart_definition_list2  r   z!Translator.depart_definition_listc                 C      | j | jd d  d S )NrO   r   rb   r$   rw   r   r   r   r   visit_definition_list_item5     z%Translator.visit_definition_list_itemc                 C   r  )NrO   r*   r  r   r   r   r   depart_definition_list_item8  r  z&Translator.depart_definition_list_itemc                 C   r   r	   r   r   r   r   r   visit_description;  r   zTranslator.visit_descriptionc                 C   r   r	   r   r   r   r   r   depart_description>  r   zTranslator.depart_descriptionc                 C   s
   d| _ d S Nr*   )rn   r   r   r   r   visit_docinfoA  s   
zTranslator.visit_docinfoc                 C   s   d | _ |   d S r	   )rn   r   r   r   r   r   depart_docinfoD  s   zTranslator.depart_docinfoc                 C   s    | j | jd d  d| _d S )NrR   r   T)rb   r$   rw   rr   r   r   r   r   visit_doctest_blockI  s   
zTranslator.visit_doctest_blockc                 C   s    d| _ | j| jd d  d S NFrR   r*   )rr   rb   r$   rw   r   r   r   r   depart_doctest_blockM  s   zTranslator.depart_doctest_blockc                 C   s&   | j | | j d  d| _d S )Nr1   r   )ra   r$   r   document_startrstriprs   r   r   r   r   visit_documentQ  s   
zTranslator.visit_documentc                 C   s  | j d r| jdd| j d   d}| jD ]Z}|dkrN| jd| jj||| jd d d | jd d t	 | j | | jd d	 | jd d	 f  q||vrr|| j
v r]| j
| }n| jj||}| jd
|| j | f  q| j d r| jd| j d   | j| d d S )NrF   z.SH AUTHOR
%s
z, )	rF   rH   rG   rE   rD   rC   rA   rB   rI   r   z
%s:
%s%s.nf
%s
.fi
%s%srN   r   r*   z
%s: %s
rH   z.SH COPYRIGHT
%s
z%Generated by docutils manpage writer.)rk   rb   r$   r6   rl   r`   r   r   rw   r   rm   r   )r   r   skipr   labelr   r   r   depart_documentW  s4   




zTranslator.depart_documentc                 C   r  )NrU   r   r  r   r   r   r   visit_emphasiss  r  zTranslator.visit_emphasisc                 C   r  )NrU   r*   r  r   r   r   r   depart_emphasisv  r  zTranslator.depart_emphasisc                 C   sJ   d|v r| j jjd|d d|v r| j jjd|d | jt| j d S )Nmorerowsz""table row spanning" not supported	base_nodemorecolsz#"table cell spanning" not supported)r   r_   warningre   r$   r-   rb   r   r   r   r   visit_entryy  s   zTranslator.visit_entryc                 C   s0   | j  }| j| j|d   | j|d = d S r	   )re   r:   rp   r0   rb   )r   r   r/   r   r   r   depart_entry  s   
zTranslator.depart_entryc                 C   r   r	   r   r   r   r   r   visit_enumerated_list  r   z Translator.visit_enumerated_listc                 C   r   r	   r   r   r   r   r   depart_enumerated_list  r   z!Translator.depart_enumerated_listc                 C   r   )Nerrorr   r   r   r   r   visit_error  r&   zTranslator.visit_errorc                 C   r   r	   r   r   r   r   r   visit_field  r   zTranslator.visit_fieldc                 C   r   r	   r   r   r   r   r   depart_field  r   zTranslator.depart_fieldc                 C   s:   | j r| j dd}| j| j|< | || tjd S )Nr3   _)rn   ro   r   r   rm   r   r   r   )r   r   name_normalizedr   r   r   visit_field_body  s   zTranslator.visit_field_bodyc                 C   r   r	   r   r   r   r   r   depart_field_body  r   zTranslator.depart_field_bodyc                 C   r  r	   )rN   FIELD_LIST_INDENTr   r   r   r   visit_field_list  r   zTranslator.visit_field_listc                 C   r   r	   r   r   r   r   r   depart_field_list  r   zTranslator.depart_field_listc                 C   s0   | j r| | _tj| j| jd d  d S )NrP   r   )rn   r   ro   r   r   rb   r$   rw   r   r   r   r   visit_field_name  s   
zTranslator.visit_field_namec                 C   r  )NrP   r*   r  r   r   r   r   depart_field_name  r  zTranslator.depart_field_namec                 C   s   |  d |  d d S )Ng      @r   )rN   r   r   r   r   visit_figure  s   
zTranslator.visit_figurec                 C   r   r	   r   r   r   r   r   depart_figure  r   zTranslator.depart_figurec                 C   s   | j jjd|d tj)Nz"footer" not supportedr)  )r   r_   r,  r   r   r   r   r   r   visit_footer  s   
zTranslator.visit_footerc                 C   r   r	   r   r   r   r   r   depart_footer  r   zTranslator.depart_footerc                 C   s6   |  d d\}}| }| jd| |  d S )Nr*   r   )r   r~   r   rb   r$   r   )r   r   r   r;   r   r   r   visit_footnote  s   zTranslator.visit_footnotec                 C   r   r	   r   r   r   r   r   depart_footnote  r   zTranslator.depart_footnotec                 C      | j jjd|d d S )Nz!"footnote_backrefs" not supportedr)  r   r_   r,  r   r   r   r   footnote_backrefs  s   

zTranslator.footnote_backrefsc                 C   s$   | j d| |  d  tjr   )rb   r$   r   r   r   r   r   r   r   r   visit_footnote_reference  s   z#Translator.visit_footnote_referencec                 C   r   r	   r   r   r   r   r   depart_footnote_reference  r   z$Translator.depart_footnote_referencec                 C   r   r	   r   r   r   r   r   visit_generated  r   zTranslator.visit_generatedc                 C   r   r	   r   r   r   r   r   depart_generated  r   zTranslator.depart_generatedc                 C   s   t | r	   )NotImplementedErrorr   r   r   r   r   visit_header  r   zTranslator.visit_headerc                 C   r   r	   r   r   r   r   r   depart_header  r   zTranslator.depart_headerc                 C   r   )Nhintr   r   r   r   r   
visit_hint  r&   zTranslator.visit_hintc                 C   r   )Nz\s-2\dr   r   r   r   r   visit_subscript  r&   zTranslator.visit_subscriptc                 C   r   )Nz\u\s0r   r   r   r   r   depart_subscript  r&   zTranslator.depart_subscriptc                 C   r   )Nz\s-2\ur   r   r   r   r   visit_superscript  r&   zTranslator.visit_superscriptc                 C   r   )Nz\d\s0r   r   r   r   r   depart_superscript  r&   zTranslator.depart_superscriptc                 C   r   )Nz\(em r   r   r   r   r   visit_attribution  r&   zTranslator.visit_attributionc                 C   r   Nr1   r   r   r   r   r   depart_attribution  r&   zTranslator.depart_attributionc                 C   sf   | j jjd|d g }d|jv r||jd  d|jv r%||jd  | jdd|  tj)Nz"image" not supportedr)  alturiz[image: %s]
/)	r   r_   r,  
attributesr$   rb   r6   r   r   )r   r   r;   r   r   r   visit_image  s   


zTranslator.visit_imagec                 C   r   )N	importantr   r   r   r   r   visit_important  r&   zTranslator.visit_importantc                 C   r   r	   r   r   r   r   r   visit_inline
  r   zTranslator.visit_inlinec                 C   r   r	   r   r   r   r   r   depart_inline  r   zTranslator.depart_inlinec                 C   sD   t |jtjst |jtjrtj| jjjd|d | j	
d d S )Nz"unsupported "label"r)  r   )
isinstanceparentr   footnotecitationr   r   r_   r,  rb   r$   r   r   r   r   visit_label  s   
zTranslator.visit_labelc                 C   r   )Nz]
r   r   r   r   r   depart_label  r&   zTranslator.depart_labelc                 C   r   r	   r   r   r   r   r   visit_legend  r   zTranslator.visit_legendc                 C   r   r	   r   r   r   r   r   depart_legend  r   zTranslator.depart_legendc                 C   s8   |  j d7  _ | j dkr| jd d S | jd d S )Nr*   z.nf
z.in +2
rt   rb   r$   r   r   r   r   visit_line_block#  s   
zTranslator.visit_line_blockc                 C   sD   |  j d8  _ | j dkr| jd | jd d S | jd d S )Nr*   r   z.fi
r)   z.in -2
rh  r   r   r   r   depart_line_block.  s
   
zTranslator.depart_line_blockc                 C   r   r	   r   r   r   r   r   
visit_line6  r   zTranslator.visit_linec                 C   r   rU  r   r   r   r   r   depart_line9  r&   zTranslator.depart_linec                 C   s,   | j dt| jd | jd  f  d S )Nz
.IP %s %d
r+   )rb   r$   nextrj   r   r   r   r   r   visit_list_item<  s   zTranslator.visit_list_itemc                 C   r   r	   r   r   r   r   r   depart_list_itemB  r   zTranslator.depart_list_itemc                 C   r  )NrQ   r   r  r   r   r   r   visit_literalE  r  zTranslator.visit_literalc                 C   r  )NrQ   r*   r  r   r   r   r   depart_literalH  r  zTranslator.depart_literalc                 C   s4   |  t |  d | j| jd d  d| _d S )Nr   rR   T)rN   LITERAL_BLOCK_INDENTrb   r$   rw   rr   r   r   r   r   visit_literal_blockK  s   


zTranslator.visit_literal_blockc                 C   s0   d| _ | j| jd d  |   |   d S r  )rr   rb   r$   rw   r   r   r   r   r   depart_literal_blockS  s   zTranslator.depart_literal_blockc                 C       | j jjd|d | | d S )Nz"math" role not supportedr)  )r   r_   r,  rp  r   r   r   r   
visit_mathY     
zTranslator.visit_mathc                 C   r   r	   )rq  r   r   r   r   depart_math^  r   zTranslator.depart_mathc                 C   ru  )Nz"math" directive not supportedr)  )r   r_   r,  rs  r   r   r   r   visit_math_blocka  rw  zTranslator.visit_math_blockc                 C   r   r	   )rt  r   r   r   r   depart_math_blockf  r   zTranslator.depart_math_blockc                 C   r   )Nnoter   r   r   r   r   
visit_notep  r&   zTranslator.visit_note      ?c                 C   s4   | j d }| j | | j| jd d |  d S )Nr+   rN   r   )rv   r$   rb   rw   )r   bystepr   r   r   rN   u  s   
zTranslator.indentc                 C   s$   | j   | j| jd d  d S )NrN   r*   )rv   r:   rb   r$   rw   r   r   r   r   r   {  s   
zTranslator.dedentc                 C   r  r	   )rN   OPTION_LIST_INDENTr   r   r   r   visit_option_list  r   zTranslator.visit_option_listc                 C   r   r	   r   r   r   r   r   depart_option_list  r   zTranslator.depart_option_listc                 C   r  )NrS   r   r  r   r   r   r   visit_option_list_item     z!Translator.visit_option_list_itemc                 C   r  )NrS   r*   r  r   r   r   r   depart_option_list_item  r  z"Translator.depart_option_list_itemc                 C   s.   | j d | j t| j | j d d S )Nr   r   )re   r$   r-   rb   r   r   r   r   visit_option_group  s   zTranslator.visit_option_groupc                 C   sR   | j   | j  }| j|d  }| j|d = | jd| j  d|f  d S )Nz%s%s
r@   )re   r:   rb   r$   r6   )r   r   start_positionr;   r   r   r   depart_option_group  s
   

$zTranslator.depart_option_groupc                 C   s`   | j d dkr| j d dkr| jd n| jd | j d dkr(| jd | jd d S )	Nr+   r   .BIz\fR,\fB z\fP,\fB r   r3   )re   rb   r$   r   r   r   r   visit_option  s   zTranslator.visit_optionc                 C   s   | j d  d7  < d S )Nr+   r*   )re   r   r   r   r   depart_option  s   zTranslator.depart_optionc                 C   r   r	   r   r   r   r   r   visit_option_string  r   zTranslator.visit_option_stringc                 C   r   r	   r   r   r   r   r   depart_option_string  r   zTranslator.depart_option_stringc                 C   sh   d| j d< |d dkr| jd|d   d S | jt| jd  dr,| jd d S | jd d S )	Nr  r  	delimiterr3   z\fB%s r*   =z \ )re   rb   r$   r-   r9   r   r   r   r   visit_option_argument  s   
z Translator.visit_option_argumentc                 C   r   r	   r   r   r   r   r   depart_option_argument  r   z!Translator.depart_option_argumentc                 C   r   )Norganizationr   r   r   r   r   visit_organization  r&   zTranslator.visit_organizationc                 C   r   r	   r   r   r   r   r   depart_organization  r   zTranslator.depart_organizationc                 C   sL   t |jd tj}|jj|d  D ]}t |tjrq||u r! dS  dS dS )Nr   r*   )r`  ra  r   r$  r   	Invisible)r   r   firstchildr   r   r   first_child  s   zTranslator.first_childc                 C   s(   |    | |s| jd d| _d S )Nr)   T)r   r  rb   r$   rr   r   r   r   r   visit_paragraph  s   

zTranslator.visit_paragraphc                 C   s   d| _ | jd d S )NFr1   )rr   rb   r$   r   r   r   r   depart_paragraph  s   zTranslator.depart_paragraphc                 C   r  )NrZ   r   r  r   r   r   r   visit_problematic  r  zTranslator.visit_problematicc                 C   r  )NrZ   r*   r  r   r   r   r   depart_problematic  r  zTranslator.depart_problematicc                 C   s.   d| dd v r| j| d  tj)Nr   formatr@   r1   )r   r~   rb   r$   r   r   r   r   r   r   r   	visit_raw  s   zTranslator.visit_rawc                 C   s2   d|v r|d  | r| jd dS dS dS )zE.g. link or email address.refuriz <Nr9   r   rb   r$   r   r   r   r   visit_reference  s
   zTranslator.visit_referencec                 C   sF   d|v r!|d  | r| jd d S | jd|d   d S d S )Nr  z> z <%s>
r  r   r   r   r   depart_reference  s
   zTranslator.depart_referencec                 C   r   )Nrevisionr   r   r   r   r   visit_revision   r&   zTranslator.visit_revisionc                 C   s   | j   d S r	   )rp   r%   r   r   r   r   	visit_row  r   zTranslator.visit_rowc                 C   r   r	   r   r   r   r   r   
depart_row  r   zTranslator.depart_rowc                 C   s   |  j d7  _ d S r  rd   r   r   r   r   visit_section     zTranslator.visit_sectionc                 C   s   |  j d8  _ d S r  r  r   r   r   r   depart_section  r  zTranslator.depart_sectionc                 C   r   )Nstatusr   r   r   r   r   visit_status  r&   zTranslator.visit_statusc                 C   r  )NrV   r   r  r   r   r   r   visit_strong  r  zTranslator.visit_strongc                 C   r  )NrV   r*   r  r   r   r   r   depart_strong  r  zTranslator.depart_strongc                 C      t j)zInternal only.r   r   r   r   r   r   visit_substitution_definition     z(Translator.visit_substitution_definitionc                 C   rD  )Nz&"substitution_reference" not supportedr)  rE  r   r   r   r   visit_substitution_reference   s   
z'Translator.visit_substitution_referencec                 C   sr   t |jtjr| j| jd d  d S t |jtjr#| |d d S t |jtj	r7| j| jd d  d S d S )NrV   r   rC   )
r`  ra  r   sidebarrb   r$   rw   r   r   sectionr   r   r   r   visit_subtitle$  s   zTranslator.visit_subtitlec                 C   s   | j | jd d d  d S )NrV   r*   z
.PP
r  r   r   r   r   depart_subtitle,  s   zTranslator.depart_subtitlec                 C   s^   i }| dr|d |d< | drd|d  }nd}| jd|d |d |d	 |f  d S )
Nidr   linez	, line %sr@   z$.IP "System Message: %s/%s (%s:%s)"
typelevelsource)hasattrrb   r$   )r   r   attrr  r   r   r   visit_system_message0  s   


zTranslator.visit_system_messagec                 C   r   r	   r   r   r   r   r   depart_system_message?  r   z Translator.depart_system_messagec                 C   s*   t  | _| jsd| _| jdd d S d S )NTr   z'\" t
)r   rp   rq   ra   insertr   r   r   r   visit_tableB  s
   zTranslator.visit_tablec                 C   s$   |    | j| j  d | _d S r	   )r   rb   r8   rp   r?   r   r   r   r   depart_tableI  s   
zTranslator.depart_tablec                 C   r  r	   r  r   r   r   r   visit_targetN  r  zTranslator.visit_targetc                 C   r   r	   r   r   r   r   r   visit_tbodyR  r   zTranslator.visit_tbodyc                 C   r   r	   r   r   r   r   r   depart_tbodyU  r   zTranslator.depart_tbodyc                 C   r   )Nr   r   r   r   r   r   
visit_termX  r&   zTranslator.visit_termc                 C   sX   |j d ddd}t|tjr| jd d S t|tjr$| jd d S | jd d S )NFT)descendsiblingsr3   z
.TQr1   )	next_noder`  r   
classifierrb   r$   term)r   r   _nextr   r   r   r   [  s   zTranslator.depart_termc                 C   r   r	   r   r   r   r   r   visit_tgroupf  r   zTranslator.visit_tgroupc                 C   r   r	   r   r   r   r   r   depart_tgroupi  r   zTranslator.depart_tgroupc                 C   r   r	   r   r   r   r   r   visit_theadl  r   zTranslator.visit_theadc                 C   r   r	   r   r   r   r   r   depart_theadp  r   zTranslator.depart_theadc                 C   r   )Ntipr   r   r   r   r   	visit_tipt  r&   zTranslator.visit_tipc                 C   s   t |jtjr| j| jd d  d S t |jtjr(| j| jd d  d S t |jtjr7| jd d S | j	dkrO|
 | jd< |
  | jd< tj| j	dkrf| jd| |
    tj| jd	 d S )
NrX   r   rY   z.IP "rA   rB   r*   z.SH %s
rM   )r`  ra  r   topicrb   r$   rw   r  
admonitionrd   r   rk   r   r   r   r   r   r   r   visit_titley  s   

zTranslator.visit_titlec                 C   s*   t |jtjr| jd | jd d S )Nr   r1   )r`  ra  r   r  rb   r$   r   r   r   r   depart_title  s   zTranslator.depart_titlec                 C   s   | j | jd d  dS )zinline citation referencerW   r   Nr  r   r   r   r   visit_title_reference  r  z Translator.visit_title_referencec                 C   r  )NrW   r*   r  r   r   r   r   depart_title_reference  r  z!Translator.depart_title_referencec                 C   r   r	   r   r   r   r   r   visit_topic  r   zTranslator.visit_topicc                 C   r   r	   r   r   r   r   r   depart_topic  r   zTranslator.depart_topicc                 C   r   r	   r   r   r   r   r   visit_sidebar  r   zTranslator.visit_sidebarc                 C   r   r	   r   r   r   r   r   depart_sidebar  r   zTranslator.depart_sidebarc                 C   r   r	   r   r   r   r   r   visit_rubric  r   zTranslator.visit_rubricc                 C   r   rU  r   r   r   r   r   depart_rubric  r&   zTranslator.depart_rubricc                 C   r   )Nz
.sp
.ce
----
r   r   r   r   r   visit_transition  s   zTranslator.visit_transitionc                 C   r   )Nz
.ce 0
.sp
r   r   r   r   r   depart_transition  r&   zTranslator.depart_transitionc                 C   r   )NrI   r   r   r   r   r   visit_version  r&   zTranslator.visit_versionc                 C   r   )Nr,  r   r   r   r   r   visit_warning  r&   zTranslator.visit_warningc                 C   s   t d|jj )Nz$visiting unimplemented node type: %s)rK  	__class__r   r   r   r   r   unimplemented_visit  s   zTranslator.unimplemented_visitr	   )r}  )r   r   r   __doc__recompilewords_and_spacesr   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   depart_attentionr   r   r   depart_authorr   r   r   r   r   r   r   r   r   depart_cautionr   r   r   r   r   r   r   r   r   r   r  depart_contactr  r  r  r  r  r	  depart_dangerr
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r%  r&  r'  r-  r.  r/  r0  r2  depart_errorr3  r4  r7  r8  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rF  rG  rH  rI  rJ  rL  rM  rO  depart_hintrP  rQ  rR  rS  rT  rV  r[  r]  depart_importantr^  r_  rd  re  rf  rg  ri  rj  rk  rl  rn  ro  rp  rq  rs  rt  rv  rx  ry  rz  r|  depart_noterN   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  depart_revisionr  r  r  r  r  depart_statusr  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  
depart_tipr  r  r  r  r  r  r  r  r  r  r  r  r  r  depart_warningr  r   r   r   r   r      s   

J?



	


	r   )r  __docformat__r  docutilsr   r   r   r   ImportErrordocutils.utils.romanutilsr9  r  r  r   rr  r   r   r   r[   r   r   r   r   r   <module>   s$   '5