3

T'ícã@sÊdZddlmZddlmZmZmZmZmZddl	m
Z
ddlmZddl
mZddlmZddlmZdd	lmZdd
lmZmZddlmZmZejeƒZGdd
„d
eƒZeeeefdœdd„Z dS)zPlain-text Sphinx builder.é)Úpath)ÚAnyÚDictÚIteratorÚSetÚTuple)ÚStringOutput)ÚNode)ÚSphinx)ÚBuilder)Ú__)Úlogging)Ú	ensuredirÚos_path)ÚTextTranslatorÚ
TextWriterc@sšeZdZUdZdZedƒZdZdZe	Z
dZeddœdd„Z
eedœd	d
„Zdeeedœdd
„Zeeddœdd„Zeeddœdd„Zddœdd„ZdS)ÚTextBuilderÚtextz!The text files are in %(outdir)s.z.txtTN)ÚreturncCs
i|_dS)N)Ú
secnumbers)Úself©rú6/tmp/pip-build-gk9425m9/sphinx/sphinx/builders/text.pyÚinitszTextBuilder.initccs xš|jjD]Ž}||jjkr"|Vq
tj|j||jƒ}ytj|ƒ}Wntk
r\d}YnXy$tj|jj	|ƒƒ}||kr€|VWq
t
k
r–Yq
Xq
WdS)Nr)ÚenvZ
found_docsZall_docsrÚjoinÚoutdirÚ
out_suffixÚgetmtimeÚ	ExceptionZdoc2pathÚOSError)rÚdocnameZ
targetnameZtargetmtimeZsrcmtimerrrÚget_outdated_docs"s

zTextBuilder.get_outdated_docs)r!ÚtyprcCsdS)NÚr)rr!r#rrrÚget_target_uri4szTextBuilder.get_target_uri)ÚdocnamesrcCst|ƒ|_dS)N)rÚwriter)rr&rrrÚprepare_writing7szTextBuilder.prepare_writing)r!ÚdoctreercCs¼||_|jjj|iƒ|_tdd}|jj||ƒtj	|j
t|ƒ|jƒ}t
tj|ƒƒy,t|ddd}|j|jjƒWdQRXWn4tk
r¶}ztjtdƒ||ƒWYdd}~XnXdS)Nzutf-8)ÚencodingÚwzerror writing file %s: %s)Úcurrent_docnamerZtoc_secnumbersÚgetrrr'ÚwriterrrrrrÚdirnameÚopenÚoutputr ÚloggerÚwarningr)rr!r)ZdestinationZoutfilenameÚfÚerrrrrÚ	write_doc:s
zTextBuilder.write_doccCsdS)Nr)rrrrÚfinishGszTextBuilder.finish)N)Ú__name__Ú
__module__Ú__qualname__ÚnameÚformatrÚepilogrZallow_parallelrZdefault_translator_classr,Ústrrrr"r%rr(r	r6r7rrrrrs

r)ÚapprcCsN|jtƒ|jdddƒ|jdddƒ|jdddƒ|jdd	dƒd
dddœS)NZtext_sectioncharsz*=-~"+`rZ
text_newlinesÚunixZtext_add_secnumbersTZtext_secnumber_suffixz. Úbuiltin)ÚversionZparallel_read_safeZparallel_write_safe)Zadd_builderrZadd_config_value)r?rrrÚsetupKs
rCN)!Ú__doc__ÚosrÚtypingrrrrrZdocutils.iorZdocutils.nodesr	Zsphinx.applicationr
Zsphinx.buildersrZ
sphinx.localerZsphinx.utilr
Zsphinx.util.osutilrrZsphinx.writers.textrrÚ	getLoggerr8r2rr>rCrrrrÚ<module>s
8