B
    \0                 @   s   d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZmZ dd	lmZmZ eeZG d
d deZdd ZdS )z
    sphinx.builders.text
    ~~~~~~~~~~~~~~~~~~~~

    Plain-text Sphinx builder.

    :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)path)StringOutput)Builder)__)logging)	ensurediros_path)
TextWriterTextTranslatorc               @   s^   e Zd ZdZdZedZdZdZe	Z
dZdd Zdd	 Zdd
dZdd Zdd Zdd ZdS )TextBuildertextz!The text files are in %(outdir)s.z.txtTNc             C   s
   i | _ d S )N)
secnumbers)self r   3lib/python3.7/site-packages/sphinx/builders/text.pyinit+   s    zTextBuilder.initc          	   c   s   x| j jD ]}|| j jkr"|V  q
| j || j| j}yt|}W n tk
r\   d}Y nX y$t| j |}||kr|V  W q
 t	k
r   Y q
X q
W d S )Nr   )
envZ
found_docsZall_docsZdoc2pathoutdir
out_suffixr   getmtime	ExceptionEnvironmentError)r   docnameZ
targetnameZtargetmtimeZsrcmtimer   r   r   get_outdated_docs0   s     

zTextBuilder.get_outdated_docsc             C   s   dS )N r   )r   r   typr   r   r   get_target_uriD   s    zTextBuilder.get_target_uric             C   s   t | | _d S )N)r	   writer)r   Zdocnamesr   r   r   prepare_writingH   s    zTextBuilder.prepare_writingc          
   C   s   || _ | jj|i | _tdd}| j|| t	| j
t|| j }tt| y,t|dd}|| jj W d Q R X W n8 ttfk
r } zttd|| W d d }~X Y nX d S )Nzutf-8)encodingwzerror writing file %s: %s)current_docnamer   Ztoc_secnumbersgetr   r   r   writer   joinr   r   r   r   dirnamecodecsopenoutputIOErrorOSErrorloggerZwarningr   )r   r   ZdoctreeZdestinationZoutfilenameferrr   r   r   	write_docL   s    
zTextBuilder.write_docc             C   s   d S )Nr   )r   r   r   r   finishZ   s    zTextBuilder.finish)N)__name__
__module____qualname__nameformatr   Zepilogr   Zallow_parallelr
   Zdefault_translator_classr!   r   r   r   r   r.   r/   r   r   r   r   r       s   
r   c             C   sN   |  t | ddd | ddd | ddd | dd	d d
dddS )NZtext_sectioncharsz*=-~"+`r   Ztext_newlinesZunixZtext_add_secnumbersTZtext_secnumber_suffixz. Zbuiltin)versionZparallel_read_safeZparallel_write_safe)Zadd_builderr   Zadd_config_value)Zappr   r   r   setup_   s    
r6   )__doc__r&   osr   Zdocutils.ior   Zsphinx.buildersr   Zsphinx.localer   Zsphinx.utilr   Zsphinx.util.osutilr   r   Zsphinx.writers.textr	   r
   Z	getLoggerr0   r+   r   r6   r   r   r   r   <module>
   s   
?