3

T'ícã@södZddlmZddlmZmZmZmZmZm	Z	ddl
mZddlm
Z
ddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZmZdd
lmZmZej e!ƒZ"Gdd„deƒZ#Gdd„de#ƒZ$eee%efdœdd„Z&dS)z,Docutils-native XML and pseudo-XML builders.é)Úpath)ÚAnyÚDictÚIteratorÚSetÚTypeÚUnion)Únodes)ÚStringOutput)ÚNode)Ú
XMLTranslator)ÚSphinx)ÚBuilder)Ú__)Úlogging)Ú	ensuredirÚos_path)ÚPseudoXMLWriterÚ	XMLWriterc@s®eZdZUdZdZdZedƒZdZdZ	e
Zee
e
e
efeZddœdd	„Zeedœd
d„Zdeeedœd
d„Zeeddœdd„Zeeddœdd„Zddœdd„ZdS)Ú
XMLBuilderz%
    Builds Docutils-native XML.
    Úxmlz The XML files are in %(outdir)s.z.xmlTN)ÚreturncCsdS)N©)Úselfrrú5/tmp/pip-build-gk9425m9/sphinx/sphinx/builders/xml.pyÚinit#szXMLBuilder.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

zXMLBuilder.get_outdated_docs)r#ÚtyprcCs|S)Nr)rr#r%rrrÚget_target_uri8szXMLBuilder.get_target_uri)ÚdocnamesrcCs|j|ƒ|_dS)N)Ú
_writer_classÚwriter)rr'rrrÚprepare_writing;szXMLBuilder.prepare_writing)r#ÚdoctreercCs\|jƒ}x&|jjjƒD]}d|j}d||<qWx„|jtjƒD]t}xn|jj	ƒD]`\}}t
|tƒrnt|ƒ|j|<|j|}t
|tƒrNx*t
|ƒD]\}}	t
|	tƒrŒt|	ƒ||<qŒWqNWq>Wtdd}
|jj||
ƒtj|jt|ƒ|jƒ}ttj|ƒƒy,t|ddd}|j|jjƒWdQRXWn6tk
rV}
ztjtdƒ||
ƒWYdd}
~
XnXdS)Nzxmlns:zhttps://www.sphinx-doc.org/zutf-8)ÚencodingÚwzerror writing file %s: %s)ÚdeepcopyrÚdomainsÚvaluesÚnameÚfindallr	ÚElementÚ
attributesÚitemsÚ
isinstanceÚtupleÚlistÚ	enumerater
r)ÚwriterrrrrrÚdirnameÚopenÚoutputr"ÚloggerÚwarningr)rr#r+ÚdomainÚxmlnsÚnodeZattÚvalueÚiÚvalZdestinationZoutfilenameÚfÚerrrrrÚ	write_doc>s,





zXMLBuilder.write_doccCsdS)Nr)rrrrÚfinishXszXMLBuilder.finish)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r1ÚformatrÚepilogrZallow_parallelrr(rrrrZdefault_translator_classrrÚstrr$r&rr*rrHrIrrrrrs
rc@s(eZdZdZdZdZedƒZdZe	Z
dS)ÚPseudoXMLBuilderz1
    Builds pseudo-XML for display purposes.
    Z	pseudoxmlz'The pseudo-XML files are in %(outdir)s.z
.pseudoxmlN)rJrKrLrMr1rNrrOrrr(rrrrrQ\srQ)ÚapprcCs.|jtƒ|jtƒ|jdddƒddddœS)NZ
xml_prettyTrÚbuiltin)ÚversionZparallel_read_safeZparallel_write_safe)Zadd_builderrrQZadd_config_value)rRrrrÚsetupis

rUN)'rMÚosrÚtypingrrrrrrZdocutilsr	Zdocutils.ior
Zdocutils.nodesrZdocutils.writers.docutils_xmlrZsphinx.applicationr
Zsphinx.buildersrZ
sphinx.localerZsphinx.utilrZsphinx.util.osutilrrZsphinx.writers.xmlrrÚ	getLoggerrJr>rrQrPrUrrrrÚ<module>s  
G