ó V!¶\c@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((sA/tmp/pip-install-usGedi/docutils/docutils/transforms/universal.pytapply"s    cCsdS(N(tNone(R((sA/tmp/pip-install-usGedi/docutils/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((sA/tmp/pip-install-usGedi/docutils/docutils/transforms/universal.pyR 1s6        !   (t__name__t __module__t__doc__tdefault_priorityRRR (((sA/tmp/pip-install-usGedi/docutils/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((sA/tmp/pip-install-usGedi/docutils/docutils/transforms/universal.pytnot_Text`scCs|jjjr{xi|jj|jƒD]O}xF|jjjD]5}t||dƒ}|dk r;||d|((sA/tmp/pip-install-usGedi/docutils/docutils/transforms/universal.pyRus    (R*R+R,R-R(((sA/tmp/pip-install-usGedi/docutils/docutils/transforms/universal.pyR7lstFilterMessagescBseZdZdZd„ZRS(s; Remove system messages below verbosity threshold. ifcCsPxI|jjtjƒD]2}|d|jjjkr|jj|ƒqqWdS(NR8(RR3Rtsystem_messageR;R<R=tremove(RR0((sA/tmp/pip-install-usGedi/docutils/docutils/transforms/universal.pyRs(R*R+R,R-R(((sA/tmp/pip-install-usGedi/docutils/docutils/transforms/universal.pyRD…st 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((sA/tmp/pip-install-usGedi/docutils/docutils/transforms/universal.pyRs (R*R+R,R-R(((sA/tmp/pip-install-usGedi/docutils/docutils/transforms/universal.pyRG“st 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((sA/tmp/pip-install-usGedi/docutils/docutils/transforms/universal.pyR¬s(R*R+R,R-R(((sA/tmp/pip-install-usGedi/docutils/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((sA/tmp/pip-install-usGedi/docutils/docutils/transforms/universal.pyR¼s""cCset|tjƒraxL|dD]<}||jkrG|dj|ƒn||jkrdSqWndS(NR9i(R/RtElementRMRFRO(RR0t class_value((sA/tmp/pip-install-usGedi/docutils/docutils/transforms/universal.pyRPËs (R*R+R,R-RRP(((sA/tmp/pip-install-usGedi/docutils/docutils/transforms/universal.pyRK²s t SmartQuotescBskeZdZdZejejfZejej ej ej ej fZ dZd„Zd„Zd„ZRS(s Replace ASCII quotation marks with typographic form. Also replace multiple dashes with em-dash/en-dash characters. iRtqDecCs&tj||d|ƒtƒ|_dS(Nt startnode(Rt__init__tsettunsupported_languages(RRRV((sA/tmp/pip-install-usGedi/docutils/docutils/transforms/universal.pyRWìsccsSidt6dt6}x8|D]0}|t|j|jƒ}||jƒfVqWdS(Ntliteraltplain(tTruetFalseR/R=t literal_nodestastext(Rttxtnodesttexttypettxtnodetnodetype((sA/tmp/pip-install-usGedi/docutils/docutils/transforms/universal.pyt get_tokensðs      c CsM|jjj}|sdSy|jdƒ}Wntk rEt}nX|jjj}|jjj}|r†tj j j t |ƒƒnx´|jj tjƒD]}t||jƒrºqœnt|jtjƒrÕqœng|j tjƒD]!}t|jtjƒsè|^qè}|j|ƒ}|rRd|krE|jddƒ}qR|d7}nxxtj|ƒD]"} | tj j krb| }PqbqbW||jkr·|jjjd|d|ƒn|jj|ƒd}tj|j|ƒd|jd|ƒ} xBt || ƒD]1\}} |jj|tj| d|j!ƒƒqWqœWt"ƒ|_dS( Ntalts -x-altquotRs*No smart quotes defined for language "%s".t base_nodetattrtlanguaget rawsource(#RRt smart_quotest startswithtAttributeErrorR]t language_codetsmartquotes_localesRt smartcharstquotestupdateRNR3Rt TextElementR/t nodes_to_skipR=R"t option_stringtget_language_codetreplaceRtnormalize_language_tagRYR;twarningtaddteducate_tokensRdtsmartquotes_actiontzipRiRX( RRjt alternativetdocument_languagetlc_smartquotesR0RbR`tlangttagtteachertnewtext((sA/tmp/pip-install-usGedi/docutils/docutils/transforms/universal.pyRüsN     (R*R+R,R-RtFixedTextElementtSpecialRstimageRZtmathtrawt problematicR^R{RWRdR(((sA/tmp/pip-install-usGedi/docutils/docutils/transforms/universal.pyRTÔs  (R,t __docformat__tretsysR#tdocutilsRRtdocutils.transformsRRtdocutils.utilsRRR.R7RDRGRHRKRT(((sA/tmp/pip-install-usGedi/docutils/docutils/transforms/universal.pyts   >"