Qc@s dZdZddlZddlZddlZddlmZmZddlm Z m Z ddl m Z de fdYZ d e fd YZd e fd YZd e fdYZde fdYZde fdYZde fdYZde fdYZdS(s+ Transforms needed by most or all documents: - `Decorations`: Generate a document's header & footer. - `Messages`: Placement of system messages stored in `nodes.document.transform_messages`. - `TestMessages`: Like `Messages`, used on test runs. - `FinalReferences`: Resolve remaining references. treStructuredTextiN(tnodestutils(tTransformErrort Transform(t smartquotest DecorationscBs/eZdZdZdZdZdZRS(sD Populate a document's decoration element (header, footer). i4cCs~|j}|r=|jj}|j}|j|n|j}|rz|jj}|j}|j|ndS(N(tgenerate_headertdocumenttget_decorationt get_headertextendtgenerate_footert get_footer(tselft header_nodest decorationtheadert footer_nodestfooter((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pytapply"s    cCsdS(N(tNone(R((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyR.scCsy|jj}|js0|js0|js0|jrqg}|jrH|jsQ|jr|jrf|j}ntj|j |j}|j t j ddd|t j dgn|jrtj|jtj}|jt j d|dn|jr[|j t j dt j ddddt j d t j dd dd t j d gnt jdd|gSdSdS( NtsView document sourcetrefuris. sGenerated on: s Generated by tDocutilss http://docutils.sourceforge.net/s from Rs(http://docutils.sourceforge.net/rst.htmls source. (Rtsettingst generatort datestampt source_linkt source_urlt_sourceRt relative_patht _destinationR Rt referencetTextttimetstrftimetgmtimetappendt paragraphR(RRttexttsourceR((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyR 1s6        !   (t__name__t __module__t__doc__tdefault_priorityRRR (((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyRs  tExposeInternalscBs&eZdZdZdZdZRS(sL Expose internal attributes if ``expose_internals`` setting is set. iHcCst|tj S(N(t isinstanceRR"(Rtnode((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pytnot_Text\scCs|jjjr{xi|jj|jD]O}xF|jjjD]5}t||d}|dk r;||d|((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyRqs    (R*R+R,R-R(((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyR7hstFilterMessagescBseZdZdZdZRS(s; Remove system messages below verbosity threshold. ifcCsPxI|jjtjD]2}|d|jjjkr|jj|qqWdS(NR8(RR3Rtsystem_messageR;R<R=tremove(RR0((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyRs(R*R+R,R-R(((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyRDst TestMessagescBseZdZdZdZRS(sk Append all post-parse system messages to the end of the document. Used for testing purposes. ipcCs6x/|jjD]!}|js |j|7_q q WdS(N(RR:R=(RRC((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyRs (R*R+R,R-R(((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyRGst StripCommentscBseZdZdZdZRS(sq Remove comment elements from the document tree (only if the ``strip_comments`` setting is enabled). icCsF|jjjrBx0|jjtjD]}|jj|q%WndS(N(RRtstrip_commentsR3RtcommentR=RF(RR0((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyRs(R*R+R,R-R(((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyRHstStripClassesAndElementscBs&eZdZdZdZdZRS(s Remove from the document tree all elements with classes in `self.document.settings.strip_elements_with_classes` and all "classes" attribute values in `self.document.settings.strip_classes`. icCs|jjjp|jjjs"dStg|jjjp:gD]}|df^q;|_tg|jjjpqgD]}|df^qr|_x-|jj|jD]}|j j |qWdS(N( RRtstrip_elements_with_classest strip_classestdictRtstrip_elementsR3t check_classesR=RF(RtkeyR0((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyRs""cCset|tjraxL|dD]<}||jkrG|dj|n||jkrdSqWndS(NR9i(R/RtElementRMRFRO(RR0t class_value((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyRPs (R*R+R,R-RRP(((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyRKs t SmartQuotescBs/eZdZdZdZdZdZRS(s Replace ASCII quotation marks with typographic form. Also replace multiple dashes with em-dash/en-dash characters. iRcCs&tj||d|t|_dS(Nt startnode(Rt__init__tsettunsupported_languages(RRRU((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyRVsc csnidt6dt6}xS|D]K}|t|jtjtjtjtjtj f}||j fVqWdS(Ntliteraltplain( tTruetFalseR/R=RRYtmathtimagetrawt problematictastext(Rttxtnodesttexttypettxtnodetnodetype((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyt get_tokenss    c Cs|jjj}|sdSy|jd}Wntk rEt}nX|jjj}x|jjtj D]}t |tj tj frqknt |j tj rqkng|jtjD]!}t |j tjs|^q}|j|}|r*d|kr|jdd}q*|d7}nxxtj|D]"}|tjjkr:|}Pq:q:W||jkr|jjjd|d|n|jj|d}tj|j|ddd|} x9t|| D](\}} |j j|tj| qWt|_qkWdS( Ntalts -x-altquotRs*No smart quotes defined for language "%s".t base_nodetattrt2tlanguage(RRt smart_quotest startswithtAttributeErrorR\t language_codeR3Rt TextElementR/tFixedTextElementtSpecialR=R"t option_stringtget_language_codetreplaceRtnormalize_language_tagRt smartcharstquotesRXR;twarningtaddteducate_tokensRftzipRW( RRlt alternativetdocument_languageR0RdRbtlangttagtteachertnewtext((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyRsF      (R*R+R,R-RVRfR(((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyRTs   (R,t __docformat__tretsysR#tdocutilsRRtdocutils.transformsRRtdocutils.utilsRRR.R7RDRGRHRKRT(((sA/usr/lib/python2.7/site-packages/docutils/transforms/universal.pyts   :!