3 E\@sdZdZddlZddlZdejdkr0ejjddlZddlmZddl Z ddl m Z m Z m Z Gddde j ZGd d d e jZGd d d e jZGd ddejjZdS)zv Simple document tree Writer, writes Docutils XML according to http://docutils.sourceforge.net/docs/ref/docutils.dtd. ZreStructuredTextNZ_xmlplus)StringIO)frontendwritersnodesc@s eZdZdS) RawXmlErrorN)__name__ __module__ __qualname__r r w/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-install-emcbgzcf/docutils/docutils/writers/docutils_xml.pyr"src @seZdZdZddddgdejdfdd gdejdfd d gd d dejdfddgdd dejdfffZddiZdZdZ dZ ddZ ddZ dS)Writerxmlz"Docutils XML" Writer OptionsNz1Generate XML with newlines before and after tags.z --newlines store_true)action validatorz'Generate XML with indents and newlines.z --indentsz,Omit the XML declaration. Use with caution.z--no-xml-declarationxml_declaration store_false)destdefaultrrzOmit the DOCTYPE declaration.z --no-doctypedoctype_declarationZoutput_encoding_error_handlerxmlcharrefreplacezdocutils_xml writerrcCstjj|t|_dS)N)rr __init__ XMLTranslatortranslator_class)selfr r r rDs zWriter.__init__cCs0|j|j|_}|jj|dj|j|_dS)N)rdocumentvisitorZ walkaboutjoinoutput)rrr r r translateHs zWriter.translate)r )r) rrr supportedrZvalidate_booleanZ settings_specZsettings_defaultsZconfig_sectionZconfig_section_dependenciesr rr!r r r r r %s.   r c@sreZdZdZdZdZejjZ e j ddddZ e j e je je jfZdd Zd d Zd d ZddZddZdS)rz$ z z" z5http://xml.org/sax/features/external-general-entitiesTcCstjj|||jjj|_|jjj|_|j|_}d|_ |_ |j rJd|_ |j r\d|_ d|_ d|_ d|_d|_g|_|jr|jj|j|j|jr|jj|j|jj|jtjt|_|jj|jdS)Nr z r)r NodeVisitorrrZreporterwarningwarnerrorsettingsindentnewlinenewlinesindentslevel in_simple fixed_textr rappendoutput_encodingrdoctype generatordocutils __version__TestXml the_handle xmlparsersetContentHandler)rrr(r r r r^s,    zXMLTranslator.__init__cCs|js|jj|j|j|jj|jtjjj |jd7_t |t j t j fr`|jd7_t ||jrz|jd7_|js|jj|jdS)zDefault node visit method.rN)r.r r0r)r-Zstarttagr saxsaxutils quoteattr isinstancerFixedTextElementliteralr/ simple_nodesr*)rnoder r r default_visits zXMLTranslator.default_visitcCs|jd8_|js(|jj|j|j|jj|jt|tjtj frX|j d8_ t||j rr|jd8_|js|jj|j dS)zDefault node depart method.rN) r-r.r r0r)Zendtagr=rr>r?r/r@r*)rrAr r r default_departures zXMLTranslator.default_departurecCs@tjjj|j}|js0|jdd|j|j}|j j |dS)Nr#) r r:r;escapeastextr/replacer)r-r r0)rrAtextr r r visit_TextszXMLTranslator.visit_TextcCsdS)Nr )rrAr r r depart_TextszXMLTranslator.depart_TextcCsd|jddjkr"|j|dS|j||j}|jj||j|t|trht j d krh|j d}y|j j t|Wntjjjk r}zf|jjj}|jjj}|j}t|jtjs|d7}d|||jf}|j||j||dd WYdd}~XnXtjdS) Nr formatrutf8z0Invalid raw XML in column %d, line offset %d: %sr)sourceline)rK)getsplitrBrEr r0rCr=strsys version_infoencoder8parserr r: _exceptionsSAXParseExceptionr7locatorgetColumnNumber getLineNumberrOparentr TextElementr&rNZSkipNode)rrAZ xml_stringr'Zcol_numline_numZsrclinemsgr r r visit_raws*       ,zXMLTranslator.visit_rawN)rrr rr2r3r r: make_parserr8 setFeaturerrr]imageZcolspecZ transitionr@rBrCrHrIr`r r r r rNs #rc@seZdZddZdS)r6cCs ||_dS)N)rY)rrYr r r setDocumentLocatorszTestXml.setDocumentLocatorN)rrr rdr r r r r6sr6)__doc__Z __docformat__rSr __path__reversexml.sax.saxutilsiorr4rrrZApplicationErrorrr ZGenericNodeVisitorrr:ContentHandlerr6r r r r  s   ){