ó -Pc@södZdZddlZddlZdejdkrGejjƒnddlZddlmZddlZddlm Z m Z m Z dej fd „ƒYZ d e jfd „ƒYZd e jfd „ƒYZdejjfd„ƒYZdS(sv Simple document tree Writer, writes Docutils XML according to http://docutils.sourceforge.net/docs/ref/docutils.dtd. treStructuredTextiÿÿÿÿNt_xmlplusi(tStringIO(tfrontendtwriterstnodest RawXmlErrorcBseZRS((t__name__t __module__(((sG/usr/local/lib/python2.7/site-packages/docutils/writers/docutils_xml.pyR"stWriterc BsêeZdZddddgidd6ejd6fddgidd6ejd6fd d gid d 6d d6dd6ejd6fddgidd 6d d6dd6ejd6fffZidd6ZdZdZ dZ d„Z d„Z RS(txmls"Docutils XML" Writer Optionss1Generate XML with newlines before and after tags.s --newlinest store_truetactiont validators'Generate XML with indents and newlines.s --indentss,Omit the XML declaration. Use with caution.s--no-xml-declarationtxml_declarationtdestitdefaultt store_falsesOmit the DOCTYPE declaration.s --no-doctypetdoctype_declarationtxmlcharrefreplacetoutput_encoding_error_handlersdocutils_xml writerRcCstjj|ƒt|_dS(N(RR t__init__t XMLTranslatorttranslator_class(tself((sG/usr/local/lib/python2.7/site-packages/docutils/writers/docutils_xml.pyRDscCsB|j|jƒ|_}|jj|ƒdj|jƒ|_dS(Nt(Rtdocumenttvisitort walkabouttjointoutput(RR((sG/usr/local/lib/python2.7/site-packages/docutils/writers/docutils_xml.pyt translateHs(sxmlN(swriters( RRt supportedtNoneRtvalidate_booleant settings_spectsettings_defaultstconfig_sectiontconfig_section_dependenciesRRR(((sG/usr/local/lib/python2.7/site-packages/docutils/writers/docutils_xml.pyR %s.   RcBsoeZdZdZdZejjƒZej de ƒd„Z d„Z d„Z d„Zd„Zd „ZRS( s$ s” s" s5http://xml.org/sax/features/external-general-entitiescCs'tjj||ƒ|jjj|_|jjj|_|j|_}d|_ |_ |j rld|_ n|j rŠd|_ d|_ nd|_ d|_g|_|jrË|jj|j|jƒn|jrê|jj|jƒn|jj|jtjƒtƒ|_|jj|jƒdS(NRs s i(Rt NodeVisitorRRtreportertwarningtwarnterrortsettingstindenttnewlinetnewlinestindentstlevelt in_simpleRRtappendtoutput_encodingRtdoctypet generatortdocutilst __version__tTestXmlt the_handlet xmlparsertsetContentHandler(RRR,((sG/usr/local/lib/python2.7/site-packages/docutils/writers/docutils_xml.pyR^s*            cCsž|js&|jj|j|jƒn|jj|jtjjj ƒƒ|jd7_t |t j ƒr{|jd7_n|jsš|jj|j ƒndS(sDefault node visit method.iN(R2RR3R-R1tstarttagR tsaxtsaxutilst quoteattrt isinstanceRt TextElementR.(Rtnode((sG/usr/local/lib/python2.7/site-packages/docutils/writers/docutils_xml.pyt default_visit€s " cCs’|jd8_|js5|jj|j|jƒn|jj|jƒƒt|tjƒro|jd8_n|jsŽ|jj|j ƒndS(sDefault node depart method.iN( R1R2RR3R-tendtagRARRBR.(RRC((sG/usr/local/lib/python2.7/site-packages/docutils/writers/docutils_xml.pytdefault_departure‹s  cCs/tjjj|jƒƒ}|jj|ƒdS(N(R R>R?tescapetastextRR3(RRCttext((sG/usr/local/lib/python2.7/site-packages/docutils/writers/docutils_xml.pyt visit_TextšscCsdS(N((RRC((sG/usr/local/lib/python2.7/site-packages/docutils/writers/docutils_xml.pyt depart_TextžscCsgd|jddƒjƒkr/|j|ƒdS|j|ƒ|jƒ}|jj|ƒ|j|ƒt|tƒr•t j d kr•|j dƒ}ny|j j t|ƒƒWn¨tjjjk rY}|jjjƒ}|jjjƒ}|j}t|jtjƒs|d7}nd|||jƒf}|j|d|jd ||d ƒnXtj‚dS( NR tformatRitutf8is0Invalid raw XML in column %d, line offset %d: %stsourcetlinei(i(tgettsplitRDRHRR3RFRAtunicodetsyst version_infotencodeR;tparseRR R>t _exceptionstSAXParseExceptionR:tlocatortgetColumnNumbert getLineNumberROtparentRRBR*RNtSkipNode(RRCt xml_stringR+tcol_numtline_numtsrclinetmsg((sG/usr/local/lib/python2.7/site-packages/docutils/writers/docutils_xml.pyt visit_raw¡s*      ((RRRR5R6R R>t make_parserR;t setFeaturetTrueRRDRFRJRKRc(((sG/usr/local/lib/python2.7/site-packages/docutils/writers/docutils_xml.pyRNs  "   R9cBseZd„ZRS(cCs ||_dS(N(RY(RRY((sG/usr/local/lib/python2.7/site-packages/docutils/writers/docutils_xml.pytsetDocumentLocator¿s(RRRg(((sG/usr/local/lib/python2.7/site-packages/docutils/writers/docutils_xml.pyR9½s(t__doc__t __docformat__RSR t__path__treversetxml.sax.saxutilsRR7RRRtApplicationErrorRR tGenericNodeVisitorRR>tContentHandlerR9(((sG/usr/local/lib/python2.7/site-packages/docutils/writers/docutils_xml.pyt s   )o