B ¡w­\ÿã@s®dZdZddlZddlZdejdkr0ej ¡ddlZddlmZddl Z ddl m Z m Z m Z Gdd„de j ƒZGd d „d e jƒZGd d „d e jƒZGd d„dejjƒZdS)zv Simple document tree Writer, writes Docutils XML according to http://docutils.sourceforge.net/docs/ref/docutils.dtd. ZreStructuredTextéNZ_xmlplus)ÚStringIO)ÚfrontendÚwritersÚnodesc@s eZdZdS)Ú RawXmlErrorN)Ú__name__Ú __module__Ú __qualname__©r r úw/private/var/folders/j5/hv2kzfgs4sl6jnf70fy_2vrc4p3c_b/T/pip-install-d8kq1y21/docutils/docutils/writers/docutils_xml.pyr"src @sŽeZdZdZddddgdejdœfdd gdejdœfd d gd d dejdœfddgdd dejdœfffZddiZdZdZ dZ dd„Z dd„Z dS)ÚWriter)Úxmlz"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-declarationÚxml_declarationéÚ store_false)ÚdestÚdefaultrrzOmit the DOCTYPE declaration.z --no-doctypeÚdoctype_declarationZoutput_encoding_error_handlerÚxmlcharrefreplacezdocutils_xml writer)rcCstj |¡t|_dS)N)rr Ú__init__Ú XMLTranslatorÚtranslator_class)Úselfr r r rDs zWriter.__init__cCs0| |j¡|_}|j |¡d |j¡|_dS)NÚ)rÚdocumentÚvisitorZ walkaboutÚjoinÚoutput)rrr r r Ú translateHs zWriter.translate) rrr Ú supportedrZvalidate_booleanZ settings_specZsettings_defaultsZconfig_sectionZconfig_section_dependenciesr rr!r r r r r %s.   r c@sreZdZdZdZdZej ¡Z e   dd¡dd„Z e j e je je jfZdd „Zd d „Zd d „Zdd„Zdd„ZdS)rz$ z” z" z5http://xml.org/sax/features/external-general-entitiesTcCsÐtj ||¡|jjj|_|jjj|_|j|_}d|_ |_ |j rJd|_ |j r\d|_ d|_ d|_ d|_d|_g|_|jrŽ|j |j|j¡|jr¢|j |j¡|j |jtj¡tƒ|_|j |j¡dS)NrÚ z r)rZ NodeVisitorrrZreporterÚwarningÚwarnÚerrorÚsettingsÚindentÚnewlineÚnewlinesÚindentsÚlevelÚ in_simpleÚ fixed_textr rÚappendÚoutput_encodingrÚdoctypeÚ generatorÚdocutilsÚ __version__ÚTestXmlÚ the_handleÚ xmlparserÚsetContentHandler)rrr'r r r r^s,    zXMLTranslator.__init__cCs’|js|j |j|j¡|j | tjjj ¡¡|jd7_t |t j t j fƒr`|jd7_t ||jƒrz|jd7_|jsŽ|j |j¡dS)zDefault node visit method.rN)r-r r/r(r,Zstarttagr ÚsaxÚsaxutilsÚ quoteattrÚ isinstancerÚFixedTextElementÚliteralr.Ú simple_nodesr))rÚnoder r r Ú default_visit„s zXMLTranslator.default_visitcCsŠ|jd8_|js(|j |j|j¡|j | ¡¡t|tjtj fƒrX|j d8_ t||j ƒrr|jd8_|js†|j |j ¡dS)zDefault node depart method.rN) r,r-r r/r(Zendtagr<rr=r>r.r?r))rr@r r r Údefault_departure’s zXMLTranslator.default_departurecCs@tjj | ¡¡}|js0| dd|j|j¡}|j   |¡dS)Nr#) r r9r:ÚescapeÚastextr.Úreplacer(r,r r/)rr@Útextr r r Ú visit_Text£szXMLTranslator.visit_TextcCsdS)Nr )rr@r r r Ú depart_TextªszXMLTranslator.depart_Textc Csd| dd¡ ¡kr"| |¡dS| |¡| ¡}|j |¡| |¡t|tƒrht j dkrh|  d¡}y|j   t|ƒ¡WnŠtjjjk r}zd|jj ¡}|jj ¡}|j}t|jtjƒsÊ|d7}d||| ¡f}|j||j||dd Wdd}~XYnXtj‚dS) Nr Úformatr)éÚutf8éz0Invalid raw XML in column %d, line offset %d: %sr)ÚsourceÚline)ÚgetÚsplitrArDr r/rBr<ÚstrÚsysÚ version_infoÚencoder7Úparserr r9Ú _exceptionsÚSAXParseExceptionr6ÚlocatorÚgetColumnNumberÚ getLineNumberrNÚparentrÚ TextElementr%rMZSkipNode)rr@Z xml_stringr&Zcol_numÚline_numZsrclineÚmsgr r r Ú visit_raw­s*       ,zXMLTranslator.visit_rawN)rrr rr1r2r r9Ú make_parserr7Ú setFeaturerrr\ÚimageZcolspecZ transitionr?rArBrGrHr_r r r r rNs #rc@seZdZdd„ZdS)r5cCs ||_dS)N)rX)rrXr r r ÚsetDocumentLocatorËszTestXml.setDocumentLocatorN)rrr rcr r r r r5Ésr5)Ú__doc__Z __docformat__rRr Ú__path__ÚreverseÚxml.sax.saxutilsÚiorr3rrrZApplicationErrorrr ZGenericNodeVisitorrr9ÚContentHandlerr5r r r r Ú s   ){