ó ¦á­Qc@s dZdZddlZddlZddlZddlmZmZddlm Z m Z ddl m Z de fd„ƒYZ d e fd „ƒYZd e fd „ƒYZd e fd„ƒYZde fd„ƒYZde fd„ƒYZde fd„ƒYZde fd„ƒYZdS(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. treStructuredTextiÿÿÿÿN(tnodestutils(tTransformErrort Transform(t smartquotest DecorationscBs/eZdZdZd„Zd„Zd„ZRS(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((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pytapply"s    cCsdS(N(tNone(R((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyR.sc Csy|jj}|js0|js0|js0|jrqg}|jrH|jsQ|jr¯|jrf|j}ntj|j |jƒ}|j t j ddd|ƒt j dƒgƒn|jrôtj|jtjƒƒ}|jt j d|dƒƒn|jr[|j t j dƒt j ddddƒt j d ƒt j dd dd ƒt j d ƒgƒnt 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((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyR 1s6        !   (t__name__t __module__t__doc__tdefault_priorityRRR (((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyRs  tExposeInternalscBs&eZdZdZd„Zd„ZRS(sL Expose internal attributes if ``expose_internals`` setting is set. iHcCst|tjƒ S(N(t isinstanceRR"(Rtnode((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pytnot_Text\scCs|jjjr{xi|jj|jƒD]O}xF|jjjD]5}t||dƒ}|dk r;||d|((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyRqs    (R*R+R,R-R(((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyR7hstFilterMessagescBseZdZdZd„ZRS(s; Remove system messages below verbosity threshold. ifcCsPxI|jjtjƒD]2}|d|jjjkr|jj|ƒqqWdS(NR8(RR3Rtsystem_messageR;R<R=tremove(RR0((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyR‰s(R*R+R,R-R(((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyRDst TestMessagescBseZdZdZd„ZRS(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((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyR™s (R*R+R,R-R(((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyRGst StripCommentscBseZdZdZd„ZRS(sq Remove comment elements from the document tree (only if the ``strip_comments`` setting is enabled). iäcCsF|jjjrBx0|jjtjƒD]}|jj|ƒq%WndS(N(RRtstrip_commentsR3RtcommentR=RF(RR0((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyR¨s(R*R+R,R-R(((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyRHŸstStripClassesAndElementscBs&eZdZdZd„Zd„ZRS(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`. i¤cCsÄ|jjjp|jjjs"dStg|jjjp:gD]}|df^q;ƒ|_tg|jjjpqgD]}|df^qrƒ|_x-|jj|jƒD]}|j j |ƒq¦WdS(N( RRtstrip_elements_with_classest strip_classestdictRtstrip_elementsR3t check_classesR=RF(RtkeyR0((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyR¸s""cCset|tjƒraxL|dD]<}||jkrG|dj|ƒn||jkrdSqWndS(NR9i(R/RtElementRMRFRO(RR0t class_value((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyRPÇs (R*R+R,R-RRP(((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyRK®s t SmartQuotescBs/eZdZdZd„Zd„Zd„ZRS(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((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyRVÙsc csnidt6dt6}xS|D]K}|t|jtjtjtjtjtj fƒ}||j ƒfVqWdS(Ntliteraltplain( tTruetFalseR/R=RRYtmathtimagetrawt problematictastext(Rttxtnodesttexttypettxtnodetnodetype((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyt get_tokensÝs    c Cs|jjj}|sdSy|jdƒ}Wntk rEt}nX|jjj}x½|jjtj ƒD]¦}t |tj tj fƒr’qknt |j tj ƒr­qkng|jtjƒD]!}t |j tjƒsÀ|^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| ƒƒqÙWtƒ|_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((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyRísF      (R*R+R,R-RVRfR(((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyRTÏs   (R,t __docformat__tretsysR#tdocutilsRRtdocutils.transformsRRtdocutils.utilsRRR.R7RDRGRHRKRT(((sG/usr/local/lib/python2.7/site-packages/docutils/transforms/universal.pyts   :!