B
    ûgÅb¯Ž  ã               @   s¦   d Z dZddlZddlmZmZmZ yddlZW n& ek
rV   ddl	m
  mZ Y nX 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 http://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.

Z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   ú7lib/python3.7/site-packages/docutils/writers/manpage.pyr   d   s    zWriter.__init__c             C   s&   |   | j¡}| j |¡ | ¡ | _d S )N)r
   ÚdocumentZ	walkaboutÚastextÚoutput)r   Zvisitorr   r   r   Ú	translateh   s    zWriter.translate)Ú__name__Ú
__module__Ú__qualname__Z	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g| _d| _g | _d S )NÚcenterú	)Ú_rowsÚ_optionsÚ	_tab_charÚ_coldefs)r   r   r   r   r   o   s    zTable.__init__c             C   s   | j  g ¡ d S )N)r   Úappend)r   r   r   r   Únew_rowu   s    zTable.new_rowc             C   s   | j  |g¡ dS )z$Append the separator for table head.N)r   r   )r   Z	separatorr   r   r   Úappend_separatorx   s    zTable.append_separatorc             C   s`   d}t |ƒdkr |d dkr d}| jd  ||d… ¡ t | jƒt | jd ƒk r\| j d¡ dS )zcell_lines is an array of linesr   z.sp
é   éÿÿÿÿNÚl)Úlenr   r   r   )r   Ú
cell_linesÚstartr   r   r   Úappend_cell|   s    zTable.append_cellc             C   s<   x|r|d dkr|d= qW x|r6|d dkr6|d= qW dS )z3Remove leading and trailing blank and ``.sp`` linesr   )Ú
z.sp
r    Nr   )r   r#   r   r   r   Ú_minimize_cell…   s    
zTable._minimize_cellc             C   sî   dg}|  d | j¡d ¡ |  dd | j¡ ¡ x¢| jD ]˜}|  d¡ |  d¡ x~tt|ƒƒD ]n}|| }|  |¡ | |¡ |d  	d	¡sž|d  d	7  < |t|ƒd
 k rÄ|  d| j
 d ¡ q`|  d¡ q`W q:W |  d¡ |  d¡ |S )Nz.TS
ú z;
z|%s|.
ú|z_
zT{
r    r&   r   zT}zT}
z.TE
)r   Újoinr   r   r   Úranger"   r'   ÚextendÚendswithr   )r   ÚtextÚrowÚiZcellr   r   r   Úas_listŒ   s$    





zTable.as_listN)	r   r   r   r   r   r   r%   r'   r1   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‚„ ZLdƒd„„ ZMd…d†„ ZNd‡dˆ„ ZOd‰dŠ„ ZPd‹dŒ„ ZQddŽ„ ZRdd„ ZSeZTd‘d’„ ZUd“d”„ ZVd•d–„ ZWd—d˜„ ZXd™dš„ ZYd›dœ„ ZZddž„ Z[dŸd „ Z\d¡d¢„ Z]d£d¤„ Z^d¥d¦„ Z_d§d¨„ Z`d©dª„ Zad«d¬„ Zbd­d®„ Zcd¯d°„ Zdd±d²„ Zed³d´„ Zfdµd¶„ Zgd·d¸„ Zhd¹dº„ Zid»d¼„ ZjeZkd½d¾„ Zld¿dÀ„ ZmdÁdÂ„ ZndÃdÄ„ ZodÅdÆ„ ZpdÇdÈ„ ZqdÉdÊ„ ZrdËdÌ„ ZseZtdÍdÎ„ ZudÏdÐ„ ZvdÑdÒ„ ZwdÓdÔ„ ZxdÕdÖ„ Zyd×dØ„ ZzdÙdÚ„ Z{dÛdÜ„ Z|dÝdÞ„ Z}dßdà„ Z~dádâ„ Zdãdä„ Z€dådæ„ Zdçdè„ Z‚dédê„ Zƒdëdì„ Z„dídî„ Z…dïdð„ Z†dñdò„ Z‡dódô„ Zˆdõdö„ Z‰eZŠd{dødù„Z‹dúdû„ ZŒdüdý„ Zdþ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'„ Z¢d(d)„ Z£eZ¤d*d+„ Z¥d,d-„ Z¦d.d/„ Z§d0d1„ Z¨d2d3„ Z©e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[„ Z¾e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ÍeZÎdxdy„ ZÏd!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| _g | _d| _dg| _dddd	d
dddd	ddddddœ| _d S )Nr   r2   r   )	ÚtitleÚtitle_upperÚsubtitleÚmanual_sectionÚmanual_groupÚauthorÚdateÚ	copyrightÚversionF)z.INDENT %.1f
z
.UNINDENT
)z.TPr2   )z.TP
.B r&   )z\fBz\fP)z.sp
.nf
.ft C
z
.ft P
.fi
)z.TP
r2   )z\fI\%z\fP)z\fIz\fP)z
.B r&   )z.SS )z
.nf
z
.fi
)ÚindentÚdefinition_list_itemÚ
field_nameÚliteralÚliteral_blockÚoption_list_itemÚ	referenceÚemphasisÚstrongÚtermÚtitle_referenceztopic-titlezsidebar-titleÚproblematic)r   ÚNodeVisitorr   ÚsettingsZlanguage_coder   Zget_languageÚreporterÚlanguageÚheadÚbodyÚfootÚsection_levelÚcontextZtopic_classÚcolspecsZ	compact_pZcompact_simpleÚ
_list_charÚ_docinfoÚ_docinfo_keysÚ_docinfo_namesÚ_in_docinfoÚ_field_nameÚ_active_tableÚ_in_literalÚheader_writtenÚ_line_blockZauthorsÚ_indentÚdefs)r   r   rI   Z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.\" r2   c                s   g | ]}ˆ | d  ‘qS )r&   r   )Ú.0Zin_line)Úprefixr   r   ú
<listcomp>õ   s   z,Translator.comment_begin.<locals>.<listcomp>r&   )r*   Úsplit)r   r.   Zout_textr   )r_   r   Úcomment_beginñ   s    zTranslator.comment_beginc             C   s   |   |¡d S )z,Return commented version of the passed text.z.
)rb   )r   r.   r   r   r   Úcommentù   s    zTranslator.commentc             C   s0   t | jƒdkr,| jd d dkr,| j d¡ dS )z7Ensure the last line in body is terminated by new line.r   r    r&   N)r"   rM   r   )r   r   r   r   Ú
ensure_eolý   s     zTranslator.ensure_eolc             C   s$  | j s|  ¡   xútt| jƒd ddƒD ]à}| j| dkr(| j|d  dd… dkr`d| j|< q(| j|d  dd	… d
kr | j|d  dd… dkr d| j|< q(| j|d  dkr(| j | j|d  ¡s(| j|d	  dd… dk sþ| j|d	  dd… dkr(d| j|< q(W d | j| j | j	 ¡S )z0Return the final formatted document as a string.r   r   r    z.sp
Né   )z.BI z.IP z.
é   z.B é   z.TP
r&   r   z.TP
.B z
.B r2   )
rZ   Úappend_headerr+   r"   rM   Úpossibly_a_roff_commandÚmatchr*   rL   rN   )r   r0   r   r   r   r     s     zTranslator.astextc             C   s   |  dd¡}|  dd¡}|S )Nõ   Â z\ u   â€ z\(dg)Úreplace)r   r.   r   r   r   Ú	deunicode  s    zTranslator.deunicodec             C   s~   |  ¡ }| dd¡}dddddg}x|D ]\}}| ||¡}q(W |  |¡}| d¡r\d	| }| jrn| d
d¡}| j |¡ d S )Nú\z\e)ú-z\-)ú'z\(aq)õ   Â´z\')ú`z\(ga)ú"z\(dqÚ.z\&z
.z
\&.)r   rl   rm   Ú
startswithrY   rM   r   )r   Únoder.   Zreplace_pairsZin_charZ
out_markupr   r   r   Ú
visit_Text  s    

zTranslator.visit_Textc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_Text3  s    zTranslator.depart_Textc                s|   G ‡ fdd„dƒ}dˆ kr0| j  |ˆ d ƒ¡ n| j  |dƒ¡ t| j ƒdkrd|  | j d  ¡ ¡ n|  | 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ˆ krˆ d d | _nd| _d| _|dkrdtttˆ jƒƒƒ| _|  jtt| jƒƒd 7  _n\|dkrŠ|  jtdƒd 7  _d| _n6|d	kr°|  jtd
ƒd 7  _d| _n| d¡rÀd| _d S )Nr$   r   r   rg   ÚarabicÚ
loweralphaÚarf   Ú
upperalphaÚAÚromané   )Ú_styleÚ_cntr\   r"   ÚstrÚchildrenÚordr-   )r   Zstyle)rv   r   r   r   =  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rNd| j S | j dkrbd| j S | j  d¡ršt | j¡d	 }| j  d
¡r’| ¡ S | ¡ S d| j S d S )Nry   rz   r   r{   z%d.)r|   r~   z%c.r€   rt   Úupper)	r‚   Ú
enum_stylerƒ   r-   r€   ZtoRomanru   r‡   Úlower)r   Zresr   r   r   Ú__next__R  s    





z0Translator.list_start.<locals>.EnumChar.__next__c             S   s   | j S )N)r\   )r   r   r   r   Ú	get_widthe  s    z1Translator.list_start.<locals>.EnumChar.get_widthc             S   s   dt | jƒ S )Nzenum_style-%s)Úlistr‚   )r   r   r   r   Ú__repr__h  s    z0Translator.list_start.<locals>.EnumChar.__repr__N)r   r   r   rˆ   r   rŠ   r‹   r   r   )rv   r   r   ÚEnumChar7  s   rŽ   Zenumtypery   r   éþÿÿÿr    )rR   r   r"   r<   r‹   )r   rv   rŽ   r   )rv   r   Ú
list_start6  s    4zTranslator.list_startc             C   s   |   ¡  | j ¡  d S )N)ÚdedentrR   Úpop)r   r   r   r   Úlist_endu  s    zTranslator.list_endc             C   s   d}|| j  S )Nzx.TH "%(title_upper)s" %(manual_section)s "%(date)s" "%(version)s" "%(manual_group)s"
.SH NAME
%(title)s \- %(subtitle)s
)rS   )r   Ztmplr   r   r   Úheadery  s    zTranslator.headerc             C   s0   | j r
dS | j t¡ | j |  ¡ ¡ d| _ dS )z#append header with .TH and .SH NAMENr   )rZ   rL   r   Ú	MACRO_DEFr”   )r   r   r   r   rh   €  s
    zTranslator.append_headerc             C   s   |   |d¡ d S )NÚaddress)Úvisit_docinfo_item)r   rv   r   r   r   Úvisit_address‹  s    zTranslator.visit_addressc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_addressŽ  s    zTranslator.depart_addressNc             C   s\   |rN| j  d¡ d| jd d | jj ||¡ ¡ | jd d f }| j  |¡ |  |¡ d S )Nz.sp
z%s%s:%s
rD   r   r   )rM   r   r]   rK   ÚlabelsÚgetr‡   Úvisit_block_quote)r   rv   Únamer   r   r   Úvisit_admonition‘  s    	zTranslator.visit_admonitionc             C   s   |   |¡ d S )N)Údepart_block_quote)r   rv   r   r   r   Údepart_admonition¥  s    zTranslator.depart_admonitionc             C   s   |   |d¡ d S )NZ	attention)rž   )r   rv   r   r   r   Úvisit_attention¨  s    zTranslator.visit_attentionc             C   sB   |dkr| j |  | ¡ ¡ n| ¡ | j |< | j |¡ tj‚d S )Nr8   )rS   r   r   rT   r   ÚSkipNode)r   rv   r   r   r   r   r—   ­  s
    zTranslator.visit_docinfo_itemc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_docinfo_itemµ  s    zTranslator.depart_docinfo_itemc             C   s   |   |d¡ d S )Nr8   )r—   )r   rv   r   r   r   Úvisit_author¸  s    zTranslator.visit_authorc             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_authors½  s    zTranslator.visit_authorsc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_authorsÁ  s    zTranslator.depart_authorsc             C   s   |   t¡ |   d¡ d S )Nr   )r<   ÚBLOCKQOUTE_INDENT)r   rv   r   r   r   rœ   Ä  s    
zTranslator.visit_block_quotec             C   s   |   ¡  |   ¡  d S )N)r‘   )r   rv   r   r   r   rŸ   Ê  s    zTranslator.depart_block_quotec             C   s   |   |¡ d S )N)r   )r   rv   r   r   r   Úvisit_bullet_listÎ  s    zTranslator.visit_bullet_listc             C   s   |   ¡  d S )N)r“   )r   rv   r   r   r   Údepart_bullet_listÑ  s    zTranslator.depart_bullet_listc             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_captionÔ  s    zTranslator.visit_captionc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_caption×  s    zTranslator.depart_captionc             C   s   |   |d¡ d S )NZcaution)rž   )r   rv   r   r   r   Úvisit_cautionÚ  s    zTranslator.visit_cautionc             C   s0   |  ¡  d d¡d }| ¡ }| j d| ¡ d S )Nr   r   z.IP [%s] 5
)r   ra   ÚstriprM   r   )r   rv   Únumr   r   r   Úvisit_citationß  s    zTranslator.visit_citationc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_citationä  s    zTranslator.depart_citationc             C   s"   | j  d| ¡  d ¡ tj‚d S )Nú[ú])rM   r   r   r   r¢   )r   rv   r   r   r   Úvisit_citation_referenceç  s    z#Translator.visit_citation_referencec             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_classifierë  s    zTranslator.visit_classifierc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_classifierî  s    zTranslator.depart_classifierc             C   s   | j  |¡ d S )N)rQ   r   )r   rv   r   r   r   Úvisit_colspecñ  s    zTranslator.visit_colspecc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_colspecô  s    zTranslator.depart_colspecc             C   s   | j  ddt| jƒ  ¡ d S )Nz%s.
zL )rM   r   r"   rQ   )r   r   r   r   Úwrite_colspecs÷  s    zTranslator.write_colspecsz-(?=-)c             C   s    | j  |  | ¡ ¡¡ tj‚d S )N)rM   r   rc   r   r   r¢   )r   rv   Úsubr   r   r   Úvisit_commentú  s    zTranslator.visit_commentc             C   s   |   |d¡ d S )NZcontact)r—   )r   rv   r   r   r   Úvisit_contactÿ  s    zTranslator.visit_contactc             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_container  s    zTranslator.visit_containerc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_container  s    zTranslator.depart_containerc             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_compound
  s    zTranslator.visit_compoundc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_compound  s    zTranslator.depart_compoundc             C   s   |   |d¡ d S )Nr:   )r—   )r   rv   r   r   r   Úvisit_copyright  s    zTranslator.visit_copyrightc             C   s   |   |d¡ d S )NZdanger)rž   )r   rv   r   r   r   Úvisit_danger  s    zTranslator.visit_dangerc             C   s   |   |d¡ d S )Nr9   )r—   )r   rv   r   r   r   Ú
visit_date  s    zTranslator.visit_datec             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_decoration  s    zTranslator.visit_decorationc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_decoration  s    zTranslator.depart_decorationc             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_definition!  s    zTranslator.visit_definitionc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_definition$  s    zTranslator.depart_definitionc             C   s   |   t¡ d S )N)r<   ÚDEFINITION_LIST_INDENT)r   rv   r   r   r   Úvisit_definition_list'  s    z Translator.visit_definition_listc             C   s   |   ¡  d S )N)r‘   )r   rv   r   r   r   Údepart_definition_list*  s    z!Translator.depart_definition_listc             C   s   | j  | jd d ¡ d S )Nr=   r   )rM   r   r]   )r   rv   r   r   r   Úvisit_definition_list_item-  s    z%Translator.visit_definition_list_itemc             C   s   | j  | jd d ¡ d S )Nr=   r   )rM   r   r]   )r   rv   r   r   r   Údepart_definition_list_item0  s    z&Translator.depart_definition_list_itemc             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_description3  s    zTranslator.visit_descriptionc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_description6  s    zTranslator.depart_descriptionc             C   s
   d| _ d S )Nr   )rV   )r   rv   r   r   r   Úvisit_docinfo9  s    zTranslator.visit_docinfoc             C   s   d | _ |  ¡  d S )N)rV   rh   )r   rv   r   r   r   Údepart_docinfo<  s    zTranslator.depart_docinfoc             C   s    | j  | jd d ¡ d| _d S )Nr@   r   T)rM   r   r]   rY   )r   rv   r   r   r   Úvisit_doctest_blockA  s    zTranslator.visit_doctest_blockc             C   s    d| _ | j | jd d ¡ d S )NFr@   r   )rY   rM   r   r]   )r   rv   r   r   r   Údepart_doctest_blockE  s    zTranslator.depart_doctest_blockc             C   s&   | j  |  | j¡ ¡ d ¡ d| _d S )Nr&   r   )rL   r   rc   Údocument_startÚrstriprZ   )r   rv   r   r   r   Úvisit_documentI  s    zTranslator.visit_documentc             C   s"  | j d r&| j dd | j d ¡ ¡ d}x¾| jD ]´}|dkrž| j d| jj ||¡| jd d d | jd d t	 | j | | jd d	 | jd d	 f ¡ q2||kr2|| j
kr¼| j
| }n| jj ||¡}| j d
|| j | f ¡ q2W | j d r| j d| j d  ¡ | j |  d¡¡ d S )Nr8   z.SH AUTHOR
%s
z, )	r8   r:   r9   r7   r6   r5   r3   r4   r;   r–   z
%s:
%s%s.nf
%s
.fi
%s%sr<   r   r   z
%s: %s
r:   z.SH COPYRIGHT
%s
z%Generated by docutils manpage writer.)rS   rM   r   r*   rT   rK   rš   r›   r]   r§   rU   rc   )r   rv   Úskipr   Úlabelr   r   r   Údepart_documentO  s,    

zTranslator.depart_documentc             C   s   | j  | jd d ¡ d S )NrC   r   )rM   r   r]   )r   rv   r   r   r   Úvisit_emphasisk  s    zTranslator.visit_emphasisc             C   s   | j  | jd d ¡ d S )NrC   r   )rM   r   r]   )r   rv   r   r   r   Údepart_emphasisn  s    zTranslator.depart_emphasisc             C   sJ   d|kr| j jjd|d d|kr4| j jjd|d | j t| jƒ¡ d S )NZmorerowsz""table row spanning" not supported)Ú	base_nodeZmorecolsz#"table cell spanning" not supported)r   rJ   ÚwarningrP   r   r"   rM   )r   rv   r   r   r   Úvisit_entryq  s    

zTranslator.visit_entryc             C   s0   | j  ¡ }| j | j|d … ¡ | j|d …= d S )N)rP   r’   rX   r%   rM   )r   rv   r$   r   r   r   Údepart_entry{  s    
zTranslator.depart_entryc             C   s   |   |¡ d S )N)r   )r   rv   r   r   r   Úvisit_enumerated_list€  s    z Translator.visit_enumerated_listc             C   s   |   ¡  d S )N)r“   )r   rv   r   r   r   Údepart_enumerated_listƒ  s    z!Translator.depart_enumerated_listc             C   s   |   |d¡ d S )NÚerror)rž   )r   rv   r   r   r   Úvisit_error†  s    zTranslator.visit_errorc             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_field‹  s    zTranslator.visit_fieldc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_fieldŽ  s    zTranslator.depart_fieldc             C   s:   | j r6| j ¡  dd¡}| j| j|< |  ||¡ tj‚d S )Nr(   Ú_)rV   rW   r‰   rl   rU   r—   r   r¢   )r   rv   Zname_normalizedr   r   r   Úvisit_field_body‘  s
    zTranslator.visit_field_bodyc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_field_body˜  s    zTranslator.depart_field_bodyc             C   s   |   t¡ d S )N)r<   ÚFIELD_LIST_INDENT)r   rv   r   r   r   Úvisit_field_list›  s    zTranslator.visit_field_listc             C   s   |   ¡  d S )N)r‘   )r   rv   r   r   r   Údepart_field_listž  s    zTranslator.depart_field_listc             C   s2   | j r| ¡ | _tj‚n| j | jd d ¡ d S )Nr>   r   )rV   r   rW   r   r¢   rM   r   r]   )r   rv   r   r   r   Úvisit_field_name¡  s    
zTranslator.visit_field_namec             C   s   | j  | jd d ¡ d S )Nr>   r   )rM   r   r]   )r   rv   r   r   r   Údepart_field_name¨  s    zTranslator.depart_field_namec             C   s   |   d¡ |   d¡ d S )Ng      @r   )r<   )r   rv   r   r   r   Úvisit_figure«  s    
zTranslator.visit_figurec             C   s   |   ¡  |   ¡  d S )N)r‘   )r   rv   r   r   r   Údepart_figure¯  s    zTranslator.depart_figurec             C   s   | j jjd|d d S )Nz"footer" not supported)rÚ   )r   rJ   rÛ   )r   rv   r   r   r   Úvisit_footer³  s    
zTranslator.visit_footerc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_footer·  s    zTranslator.depart_footerc             C   s6   |  ¡  d d¡\}}| ¡ }| j d|  |¡ ¡ d S )Nr   z.IP [%s] 5
)r   ra   r­   rM   r   rm   )r   rv   r®   r.   r   r   r   Úvisit_footnoteº  s    zTranslator.visit_footnotec             C   s   d S )Nr   )r   rv   r   r   r   Údepart_footnote¿  s    zTranslator.depart_footnotec             C   s   | j jjd|d d S )Nz!"footnote_backrefs" not supported)rÚ   )r   rJ   rÛ   )r   rv   r   r   r   Úfootnote_backrefsÂ  s    
zTranslator.footnote_backrefsc             C   s(   | j  d|  | ¡ ¡ d ¡ tj‚d S )Nr±   r²   )rM   r   rm   r   r   r¢   )r   rv   r   r   r   Úvisit_footnote_referenceÆ  s    z#Translator.visit_footnote_referencec             C   s   d S )Nr   )r   rv   r   r   r   Údepart_footnote_referenceÊ  s    z$Translator.depart_footnote_referencec             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_generatedÍ  s    zTranslator.visit_generatedc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_generatedÐ  s    zTranslator.depart_generatedc             C   s   t | ¡ ƒ‚d S )N)ÚNotImplementedErrorr   )r   rv   r   r   r   Úvisit_headerÓ  s    zTranslator.visit_headerc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_headerÖ  s    zTranslator.depart_headerc             C   s   |   |d¡ d S )NZhint)rž   )r   rv   r   r   r   Ú
visit_hintÙ  s    zTranslator.visit_hintc             C   s   | j  d¡ d S )Nz\s-2\d)rM   r   )r   rv   r   r   r   Úvisit_subscriptÞ  s    zTranslator.visit_subscriptc             C   s   | j  d¡ d S )Nz\u\s0)rM   r   )r   rv   r   r   r   Údepart_subscriptá  s    zTranslator.depart_subscriptc             C   s   | j  d¡ d S )Nz\s-2\u)rM   r   )r   rv   r   r   r   Úvisit_superscriptä  s    zTranslator.visit_superscriptc             C   s   | j  d¡ d S )Nz\d\s0)rM   r   )r   rv   r   r   r   Údepart_superscriptç  s    zTranslator.depart_superscriptc             C   s   | j  d¡ d S )Nz\(em )rM   r   )r   rv   r   r   r   Úvisit_attributionê  s    zTranslator.visit_attributionc             C   s   | j  d¡ d S )Nr&   )rM   r   )r   rv   r   r   r   Údepart_attributioní  s    zTranslator.depart_attributionc             C   sj   | j jjd|d g }d|jkr0| |jd ¡ d|jkrJ| |jd ¡ | j dd |¡ ¡ tj‚d S )Nz"image" not supported)rÚ   ZaltZuriz[image: %s]
ú/)	r   rJ   rÛ   Z
attributesr   rM   r*   r   r¢   )r   rv   r.   r   r   r   Úvisit_imageð  s    


zTranslator.visit_imagec             C   s   |   |d¡ d S )NZ	important)rž   )r   rv   r   r   r   Úvisit_importantû  s    zTranslator.visit_importantc             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_inline   s    zTranslator.visit_inlinec             C   s   d S )Nr   )r   rv   r   r   r   Údepart_inline  s    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   ZfootnoteZcitationr¢   r   rJ   rÛ   rM   r   )r   rv   r   r   r   Úvisit_label  s    
zTranslator.visit_labelc             C   s   | j  d¡ d S )Nz]
)rM   r   )r   rv   r   r   r   Údepart_label  s    zTranslator.depart_labelc             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_legend  s    zTranslator.visit_legendc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_legend  s    zTranslator.depart_legendc             C   s6   |  j d7  _ | j dkr&| j d¡ n| j d¡ d S )Nr   z.nf
z.in +2
)r[   rM   r   )r   rv   r   r   r   Úvisit_line_block  s    
zTranslator.visit_line_blockc             C   sB   |  j d8  _ | j dkr2| j d¡ | j d¡ n| j d¡ d S )Nr   r   z.fi
z.sp
z.in -2
)r[   rM   r   )r   rv   r   r   r   Údepart_line_block$  s
    
zTranslator.depart_line_blockc             C   s   d S )Nr   )r   rv   r   r   r   Ú
visit_line,  s    zTranslator.visit_linec             C   s   | j  d¡ d S )Nr&   )rM   r   )r   rv   r   r   r   Údepart_line/  s    zTranslator.depart_linec             C   s,   | j  dt| jd ƒ| jd  ¡ f ¡ d S )Nz
.IP %s %d
r    )rM   r   ÚnextrR   r‹   )r   rv   r   r   r   Úvisit_list_item2  s    zTranslator.visit_list_itemc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_list_item8  s    zTranslator.depart_list_itemc             C   s   | j  | jd d ¡ d S )Nr?   r   )rM   r   r]   )r   rv   r   r   r   Úvisit_literal;  s    zTranslator.visit_literalc             C   s   | j  | jd d ¡ d S )Nr?   r   )rM   r   r]   )r   rv   r   r   r   Údepart_literal>  s    zTranslator.depart_literalc             C   s4   |   t¡ |   d¡ | j | jd d ¡ d| _d S )Nr   r@   T)r<   ÚLITERAL_BLOCK_INDENTrM   r   r]   rY   )r   rv   r   r   r   Úvisit_literal_blockA  s    

zTranslator.visit_literal_blockc             C   s0   d| _ | j | jd d ¡ |  ¡  |  ¡  d S )NFr@   r   )rY   rM   r   r]   r‘   )r   rv   r   r   r   Údepart_literal_blockI  s    zTranslator.depart_literal_blockc             C   s    | j jjd|d |  |¡ d S )Nz"math" role not supported)rÚ   )r   rJ   rÛ   r  )r   rv   r   r   r   Ú
visit_mathO  s    
zTranslator.visit_mathc             C   s   |   |¡ d S )N)r  )r   rv   r   r   r   Údepart_mathT  s    zTranslator.depart_mathc             C   s    | j jjd|d |  |¡ d S )Nz"math" directive not supported)rÚ   )r   rJ   rÛ   r  )r   rv   r   r   r   Úvisit_math_blockW  s    
zTranslator.visit_math_blockc             C   s   |   |¡ d S )N)r  )r   rv   r   r   r   Údepart_math_block\  s    zTranslator.depart_math_blockc             C   s   |   |d¡ d S )NZnote)rž   )r   rv   r   r   r   Ú
visit_notef  s    zTranslator.visit_noteç      à?c             C   s4   | j d }| j  |¡ | j | jd d | ¡ d S )Nr    r<   r   )r\   r   rM   r]   )r   ZbyÚstepr   r   r   r<   k  s    
zTranslator.indentc             C   s$   | j  ¡  | j | jd d ¡ d S )Nr<   r   )r\   r’   rM   r   r]   )r   r   r   r   r‘   q  s    
zTranslator.dedentc             C   s   |   t¡ d S )N)r<   ÚOPTION_LIST_INDENT)r   rv   r   r   r   Úvisit_option_listu  s    zTranslator.visit_option_listc             C   s   |   ¡  d S )N)r‘   )r   rv   r   r   r   Údepart_option_listx  s    zTranslator.depart_option_listc             C   s   | j  | jd d ¡ d S )NrA   r   )rM   r   r]   )r   rv   r   r   r   Úvisit_option_list_item{  s    z!Translator.visit_option_list_itemc             C   s   | j  | jd d ¡ d S )NrA   r   )rM   r   r]   )r   rv   r   r   r   Údepart_option_list_item  s    z"Translator.depart_option_list_itemc             C   s.   | j  d¡ | j  t| jƒ¡ | j  d¡ d S )Nz.B r   )rP   r   r"   rM   )r   rv   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
r2   )rP   r’   rM   r   r*   )r   rv   Zstart_positionr.   r   r   r   Údepart_option_groupŒ  s
    

zTranslator.depart_option_groupc             C   s`   | j d dkr6| j d dkr*| j d¡ n| j d¡ | j d dkrP| j d¡ | j d¡ d S )	Nr    r   éýÿÿÿz.BIz\fR,\fB z\fP,\fB rn   r(   )rP   rM   r   )r   rv   r   r   r   Úvisit_option“  s    zTranslator.visit_optionc             C   s   | j d  d7  < d S )Nr    r   )rP   )r   rv   r   r   r   Údepart_optionž  s    zTranslator.depart_optionc             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_option_string¡  s    zTranslator.visit_option_stringc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_option_string¥  s    zTranslator.depart_option_stringc             C   sd   d| j d< |d dkr,| j d|d  ¡ n4| jt| jƒd   d¡rT| j d¡ n| j d¡ d S )	Nz.BIr&  Z	delimiterr(   z\fB%s r   ú=z \ )rP   rM   r   r"   r-   )r   rv   r   r   r   Úvisit_option_argument¨  s    
z Translator.visit_option_argumentc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_option_argument³  s    z!Translator.depart_option_argumentc             C   s   |   |d¡ d S )NZorganization)r—   )r   rv   r   r   r   Úvisit_organization¶  s    zTranslator.visit_organizationc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_organization¹  s    zTranslator.depart_organizationc             C   sL   t |jd tjƒ}x4|jj|d … D ] }t |tjƒr6q$||krBdS P q$W dS )Nr   r   )r  r  r   rÖ   r…   Z	Invisible)r   rv   ÚfirstZchildr   r   r   Úfirst_child¼  s    zTranslator.first_childc             C   s(   |   ¡  |  |¡s| j d¡ d| _d S )Nz.sp
T)rd   r1  rM   r   rY   )r   rv   r   r   r   Úvisit_paragraphÆ  s    
zTranslator.visit_paragraphc             C   s   d| _ | j d¡ d S )NFr&   )rY   rM   r   )r   rv   r   r   r   Údepart_paragraphÒ  s    zTranslator.depart_paragraphc             C   s   | j  | jd d ¡ d S )NrG   r   )rM   r   r]   )r   rv   r   r   r   Úvisit_problematicÖ  s    zTranslator.visit_problematicc             C   s   | j  | jd d ¡ d S )NrG   r   )rM   r   r]   )r   rv   r   r   r   Údepart_problematicÙ  s    zTranslator.depart_problematicc             C   s,   |  d¡dkr"| j | ¡ d ¡ tj‚d S )NÚformatr   r&   )r›   rM   r   r   r   r¢   )r   rv   r   r   r   Ú	visit_rawÜ  s    zTranslator.visit_rawc             C   s   | j  | jd d ¡ dS )zE.g. link or email address.rB   r   N)rM   r   r]   )r   rv   r   r   r   Úvisit_referenceâ  s    zTranslator.visit_referencec             C   s   | j  | jd d ¡ d S )NrB   r   )rM   r   r]   )r   rv   r   r   r   Údepart_referenceæ  s    zTranslator.depart_referencec             C   s   |   |d¡ d S )NZrevision)r—   )r   rv   r   r   r   Úvisit_revisionë  s    zTranslator.visit_revisionc             C   s   | j  ¡  d S )N)rX   r   )r   rv   r   r   r   Ú	visit_rowð  s    zTranslator.visit_rowc             C   s   d S )Nr   )r   rv   r   r   r   Ú
depart_rowó  s    zTranslator.depart_rowc             C   s   |  j d7  _ d S )Nr   )rO   )r   rv   r   r   r   Úvisit_sectionö  s    zTranslator.visit_sectionc             C   s   |  j d8  _ d S )Nr   )rO   )r   rv   r   r   r   Údepart_sectionù  s    zTranslator.depart_sectionc             C   s   |   |d¡ d S )NZstatus)r—   )r   rv   r   r   r   Úvisit_statusü  s    zTranslator.visit_statusc             C   s   | j  | jd d ¡ d S )NrD   r   )rM   r   r]   )r   rv   r   r   r   Úvisit_strong  s    zTranslator.visit_strongc             C   s   | j  | jd d ¡ d S )NrD   r   )rM   r   r]   )r   rv   r   r   r   Údepart_strong  s    zTranslator.depart_strongc             C   s
   t j‚dS )zInternal only.N)r   r¢   )r   rv   r   r   r   Úvisit_substitution_definition  s    z(Translator.visit_substitution_definitionc             C   s   | j jjd|d d S )Nz&"substitution_reference" not supported)rÚ   )r   rJ   rÛ   )r   rv   r   r   r   Úvisit_substitution_reference  s    z'Translator.visit_substitution_referencec             C   sj   t |jtjƒr&| j | jd d ¡ n@t |jtjƒrB|  |d¡ n$t |jtj	ƒrf| j | jd d ¡ d S )NrD   r   r5   )
r  r  r   ÚsidebarrM   r   r]   r   r—   Zsection)r   rv   r   r   r   Úvisit_subtitle  s    zTranslator.visit_subtitlec             C   s   | j  | jd d d ¡ d S )NrD   r   z
.PP
)rM   r   r]   )r   rv   r   r   r   Údepart_subtitle  s    zTranslator.depart_subtitlec             C   s^   i }|  d¡r|d |d< |  d¡r2d|d  }nd}| j d|d |d |d	 |f ¡ d S )
NÚidr   Úlinez	, line %sr2   z$.IP "System Message: %s/%s (%s:%s)"
ÚtypeÚlevelÚsource)ÚhasattrrM   r   )r   rv   ÚattrrH  r   r   r   Úvisit_system_message  s    

zTranslator.visit_system_messagec             C   s   d S )Nr   )r   rv   r   r   r   Údepart_system_message*  s    z Translator.depart_system_messagec             C   s   t ƒ | _d S )N)r   rX   )r   rv   r   r   r   Úvisit_table-  s    zTranslator.visit_tablec             C   s$   |   ¡  | j | j ¡ ¡ d | _d S )N)rd   rM   r,   rX   r1   )r   rv   r   r   r   Údepart_table0  s    zTranslator.depart_tablec             C   s
   t j‚d S )N)r   r¢   )r   rv   r   r   r   Úvisit_target5  s    zTranslator.visit_targetc             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_tbody9  s    zTranslator.visit_tbodyc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_tbody<  s    zTranslator.depart_tbodyc             C   s   | j  | jd d ¡ d S )NrE   r   )rM   r   r]   )r   rv   r   r   r   Ú
visit_term?  s    zTranslator.visit_termc             C   s   | j  | jd d ¡ d S )NrE   r   )rM   r   r]   )r   rv   r   r   r   Údepart_termB  s    zTranslator.depart_termc             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_tgroupE  s    zTranslator.visit_tgroupc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_tgroupH  s    zTranslator.depart_tgroupc             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_theadK  s    zTranslator.visit_theadc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_theadO  s    zTranslator.depart_theadc             C   s   |   |d¡ d S )NZtip)rž   )r   rv   r   r   r   Ú	visit_tipS  s    zTranslator.visit_tipc             C   sÚ   t |jtjƒr&| j | jd d ¡ n°t |jtjƒrL| j | jd d ¡ nŠt |jtjƒrh| j d¡ nn| j	dkrš| 
¡ | jd< | 
¡  ¡ | jd< tj‚n<| j	dkrÊ| j d|  | 
¡  ¡ ¡ ¡ tj‚n| j d	¡ d S )
Nztopic-titler   zsidebar-titlez.IP "r3   r4   r   z.SH %s
z.SS )r  r  r   ZtopicrM   r   r]   rD  Ú
admonitionrO   r   rS   r‡   r¢   rm   )r   rv   r   r   r   Úvisit_titleX  s    

zTranslator.visit_titlec             C   s*   t |jtjƒr| j d¡ | j d¡ d S )Nrs   r&   )r  r  r   r\  rM   r   )r   rv   r   r   r   Údepart_titlej  s    zTranslator.depart_titlec             C   s   | j  | jd d ¡ dS )zinline citation referencerF   r   N)rM   r   r]   )r   rv   r   r   r   Úvisit_title_referenceo  s    z Translator.visit_title_referencec             C   s   | j  | jd d ¡ d S )NrF   r   )rM   r   r]   )r   rv   r   r   r   Údepart_title_references  s    z!Translator.depart_title_referencec             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_topicv  s    zTranslator.visit_topicc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_topicy  s    zTranslator.depart_topicc             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_sidebar|  s    zTranslator.visit_sidebarc             C   s   d S )Nr   )r   rv   r   r   r   Údepart_sidebar  s    zTranslator.depart_sidebarc             C   s   d S )Nr   )r   rv   r   r   r   Úvisit_rubric‚  s    zTranslator.visit_rubricc             C   s   | j  d¡ d S )Nr&   )rM   r   )r   rv   r   r   r   Údepart_rubric…  s    zTranslator.depart_rubricc             C   s   | j  d¡ d S )Nz
.sp
.ce
----
)rM   r   )r   rv   r   r   r   Úvisit_transitionˆ  s    zTranslator.visit_transitionc             C   s   | j  d¡ d S )Nz
.ce 0
.sp
)rM   r   )r   rv   r   r   r   Údepart_transitionŽ  s    zTranslator.depart_transitionc             C   s   |   |d¡ d S )Nr;   )r—   )r   rv   r   r   r   Úvisit_version‘  s    zTranslator.visit_versionc             C   s   |   |d¡ d S )NrÛ   )rž   )r   rv   r   r   r   Úvisit_warning”  s    zTranslator.visit_warningc             C   s   t d|jj ƒ‚d S )Nz$visiting unimplemented node type: %s)r÷   Ú	__class__r   )r   rv   r   r   r   Úunimplemented_visit™  s    zTranslator.unimplemented_visit)N)r  )Ðr   r   r   Ú__doc__ÚreÚcompileZwords_and_spacesri   rÒ   r   rb   rc   rd   r   rm   rw   rx   r   r“   r”   rh   r˜   r™   rž   r    r¡   Zdepart_attentionr—   r£   r¤   Zdepart_authorr¥   r¦   rœ   rŸ   r¨   r©   rª   r«   r¬   Zdepart_cautionr¯   r°   r³   r´   rµ   r¶   r·   r¸   r¹   rº   r»   Zdepart_contactr¼   r½   r¾   r¿   rÀ   rÁ   Zdepart_dangerrÂ   rÃ   rÄ   rÅ   rÆ   rÈ   rÉ   rÊ   rË   rÌ   rÍ   rÎ   rÏ   rÐ   rÑ   rÔ   r×   rØ   rÙ   rÜ   rÝ   rÞ   rß   rá   Zdepart_errorrâ   rã   rå   ræ   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   rø   rù   rú   Zdepart_hintrû   rü   rý   rþ   rÿ   r   r  r  Zdepart_importantr  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  Zdepart_noter<   r‘   r   r!  r"  r#  r$  r%  r'  r(  r)  r*  r,  r-  r.  r/  r1  r2  r3  r4  r5  r7  r8  r9  r:  Zdepart_revisionr;  r<  r=  r>  r?  Zdepart_statusr@  rA  rB  rC  rE  rF  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  Z
depart_tipr]  r^  r_  r`  ra  rb  rc  rd  re  rf  rg  rh  ri  rj  Zdepart_warningrl  r   r   r   r   r	   £   s”  

G?
	


r	   )rm  Z__docformat__rn  Zdocutilsr   r   r   r€   ÚImportErrorZdocutils.utils.romanZutilsrç   rÇ   r  r§   r  r•   r   r   rH   r	   r   r   r   r   Ú<module>*   s    5