Ë ò&²£m=ãóô—dZdZddlZddlZddlmZmZddlmZddl m Z Gd„de«Z Gd „d e«Z Gd „d e«Z Gd „de«ZGd„de«ZGd„de«ZGd„de«ZGd„de«Zy)a’ Transforms needed by most or all documents: - `Decorations`: Generate a document's header & footer. - `ExposeInternals`: Expose internal attributes. - `Messages`: Placement of system messages generated after parsing. - `FilterMessages`: Remove system messages below verbosity threshold. - `TestMessages`: Like `Messages`, used on test runs. - `StripComments`: Remove comment elements from the document tree. - `StripClassesAndElements`: Remove elements with classes in `self.document.settings.strip_elements_with_classes` and class values in `self.document.settings.strip_classes`. - `SmartQuotes`: Replace ASCII quotation marks with typographic form. ÚreStructuredTextéN)ÚnodesÚutils)Ú Transform)Ú smartquotescó&—eZdZdZdZd„Zd„Zd„Zy)Ú DecorationszD Populate a document's decoration element (header, footer). i4có:—|j«}|r;|jj«}|j«}|j |«|j «}|r<|jj«}|j «}|j |«yy©N)Úgenerate_headerÚdocumentÚget_decorationÚ get_headerÚextendÚgenerate_footerÚ get_footer)ÚselfÚ header_nodesÚ decorationÚheaderÚ footer_nodesÚfooters úB/usr/lib/python3.12/site-packages/docutils/transforms/universal.pyÚapplyzDecorations.apply&s�€Ø×+Ñ+Ó-ˆ Ù ØŸ™×5Ñ5Ó7ˆJØ×*Ñ*Ó,ˆFØ �M‰M˜,Ô 'Ø×+Ñ+Ó-ˆ Ù ØŸ™×5Ñ5Ó7ˆJØ×*Ñ*Ó,ˆFØ �M‰M˜,Õ 'ð ócó—yr ©)rs rr zDecorations.generate_header2s€Ørc óê—|jj}|js%|js|js |j �r¬g}|jr |j s |j r|j r |j }n*tj|j|j «}|jtjdd|¬«tjd«g«|jr\tj|jtj ««}|j#tjd|zdz««|jr{|jtjd«tjddd¬«tjd «tjdd d ¬«tjd «g«tj$ddg|¢­ŽgSy) NÚzView document source)Úrefuriz. zGenerated on: z Generated by ÚDocutilsz https://docutils.sourceforge.io/z from rz(https://docutils.sourceforge.io/rst.htmlz source. )r ÚsettingsÚ generatorÚ datestampÚ source_linkÚ source_urlÚ_sourcerÚ relative_pathÚ _destinationrrÚ referenceÚTextÚtimeÚstrftimeÚgmtimeÚappendÚ paragraph)rr"ÚtextÚsourcer$s rrzDecorations.generate_footer5sŠ€ð—=‘=×)Ñ)ˆØ × Ò  (×"4Ò"4Ø×#Ò# x×':Ó':؈DØ×$Ò$¨×)9Ò)9Ø×&Ò&Ø×&Ò&Ø%×0Ñ0‘Fä"×0Ñ0°×1FÑ1FØ19×1AÑ1AóC�Fà— ‘ Ü—O‘O BÐ(>Ø+1ô3ä—J‘J˜uÓ%ð'ô(ð×!Ò!Ü ŸM™M¨(×*<Ñ*<¼d¿k¹k»mÓL� Ø— ‘ œEŸJ™JÐ'7¸)Ñ'CÀeÑ'KÓLÔMØ×!Ò!Ø— ‘ Ü—J‘J˜Ó/Ü—O‘O B¨ Ø+MôOä—J‘J˜xÓ(Ü—O‘O BÐ(:ð,/ô0ô—J‘J˜|Ó,ð.ô/ô—O‘O B¨Ð2¨TÒ2Ð3Ð 3àrN)Ú__name__Ú __module__Ú __qualname__Ú__doc__Údefault_priorityrr rrrrr r s„ñðÐò (òó%rr có —eZdZdZdZd„Zd„Zy)ÚExposeInternalszL Expose internal attributes if ``expose_internals`` setting is set. iHcó8—t|tj« Sr )Ú isinstancerr+©rÚnodes rÚnot_TextzExposeInternals.not_Textes€Ü˜d¤E§J¡JÓ/Ð/Ð/rcó—|jjjrh|jj|j«D]?}|jjjD]}t ||d«}|€Œ||d|z<ŒŒAyy)Nz internal:)r r"Úexpose_internalsÚfindallr>Úgetattr)rr=ÚattÚvalues rrzExposeInternals.applyhsu€Ø �=‰=× !Ñ !× 2Ò 2ØŸ ™ ×-Ñ-¨d¯m©mÖ<�ØŸ=™=×1Ñ1×BÔB�CÜ# D¨#¨tÓ4�EØÑ(Ø27˜˜[¨3Ñ.Ò/ñCñ=ð 3rN)r3r4r5r6r7r>rrrrr9r9]s„ñðÐò0ó8rr9có—eZdZdZdZd„Zy)ÚMessageszi Place any system messages generated after parsing into a dedicated section of the document. i\có>—|jj}|D�cgc]}|jrŒ|‘Œ}}|rdtjdg¬«}|tj dd«z }||z }g|jjdd|xj|z c_yycc}w)Núsystem-messages)ÚclassesrzDocutils System Messages)r Útransform_messagesÚparentrÚsectionÚtitle)rÚmessagesÚmsgÚloose_messagesrLs rrzMessages.applyzs�€Ø—=‘=×3Ñ3ˆÙ)1ÓD© #¸¿»š#¨ˆÐDÙ Ü—m‘mÐ->Ð,?Ô@ˆGà ”u—{‘{ 2Ð'AÓBÑ BˆGØ �~Ñ %ˆGØ24ˆD�M‰M× ,Ñ ,©QÐ /Ø �MŠM˜WÑ $ŽMð ùòEs ›B­BN©r3r4r5r6r7rrrrrFrFqs„ñð Ðó %rrFcó—eZdZdZdZd„Zy)ÚFilterMessagesz³ Remove system messages below verbosity threshold. Convert nodes referencing removed messages to . Remove "System Messages" section if empty. ifcó2—t|jjtj««D]b}|d|jj j ksŒ*|jj|« |jj|dd=Œdt|jjtj««D][}|d|jjvsŒ|jj|tj|j«««Œ]|jjtj«D]4}d|dvsŒ t!|«dk(sŒ|jj|«Œ6y#t$rY�ŒbwxYw)NÚlevelÚidsrÚrefidrHrIé)Útupler rArÚsystem_messageÚreporterÚ report_levelrKÚremoverVÚ IndexErrorÚ problematicÚreplacer+ÚastextrLÚlenr<s rrzFilterMessages.apply—s/€Ü˜$Ÿ-™-×/Ñ/´×0DÑ0DÓEÖFˆDØ�G‰}˜tŸ}™}×5Ñ5×BÑBÓBØ— ‘ ×"Ñ" 4Ô(ðØŸ ™ ×)Ñ)¨$¨u©+°a©.Ñ9ð Gô˜$Ÿ-™-×/Ñ/´×0AÑ0AÓBÖCˆDØ�G‰} D§M¡M×$5Ñ$5Ò5Ø— ‘ ×#Ñ# D¬%¯*©*°T·[±[³]Ó*CÕDðDð—M‘M×)Ñ)¬%¯-©-Ö8ˆDØ  D¨¡OÒ3¼¸D» ÀQ»Ø— ‘ ×"Ñ" 4Õ(ñ9øô #òÚðúsÁ9F Æ FÆFNrQrrrrSrSŒs„ñðÐó )rrScó—eZdZdZdZdZd„Zy)Ú TestMessageszk Append all post-parse system messages to the end of the document. Used for testing purposes. Fipcó~—|jjD]$}|jrŒ|xj|z c_Œ&yr )r rJrK)rrOs rrzTestMessages.apply´s+€Ø—=‘=×3Ô3ˆCØ—:“:Ø— ’  Ñ$– ñ4rN)r3r4r5r6Ú__test__r7rrrrrdrd§s„ñð€HàÐó%rrdcó—eZdZdZdZd„Zy)Ú StripCommentszq Remove comment elements from the document tree (only if the ``strip_comments`` setting is enabled). iäcóê—|jjjrSt|jj t j ««D]}|jj|«Œyyr ) r r"Ústrip_commentsrYrArÚcommentrKr]r<s rrzStripComments.applyÃsO€Ø �=‰=× !Ñ !× 0Ò 0ܘdŸm™m×3Ñ3´E·M±MÓBÖC�Ø— ‘ ×"Ñ" 4Õ(ñDð 1rNrQrrrrhrhºs„ñð Ðó)rrhcó —eZdZdZdZd„Zd„Zy)ÚStripClassesAndElementszÏ 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¤cób—|jjjruh|jjj£|_t |jj |j ««D]}|jj|«Œ|jjjsy|jjj}|jj tj«D]}|D]} |dj|«ŒŒ y#t$rYŒ(wxYw)NrI) r r"Ústrip_elements_with_classesÚstrip_elementsrYrAÚ check_classesrKr]Ú strip_classesrÚElementÚ ValueError)rr=rrÚ class_values rrzStripClassesAndElements.applyÓsð€Ø �=‰=× !Ñ !× =Ò =ð#A D§M¡M×$:Ñ$:ß$?Ñ$?ð#AˆDÔ ô˜dŸm™m×3Ñ3°D×4FÑ4FÓGÖH�Ø— ‘ ×"Ñ" 4Õ(ðIð�}‰}×%Ñ%×3Ò3Ø ØŸ ™ ×.Ñ.×<Ñ<ˆ Ø—M‘M×)Ñ)¬%¯-©-Ö8ˆDÛ,� ðØ˜‘O×*Ñ*¨;Õ7ñ -ñ9øô"òÙðúsÄ D"Ä" D.Ä-D.cót—t|tj«sy|dddD]}||jvsŒyy)NFrIT)r;rrsrp)rr=rus rrqz%StripClassesAndElements.check_classesæs<€Ü˜$¤§ ¡ Ô.ØØ  ™?©1Ó-ˆKؘd×1Ñ1Ò1Ùð.ðrN)r3r4r5r6r7rrqrrrrmrmÉs„ñð Ðòó&rrmcóþ—eZdZdZdZej ejfZ ej ejejejejejejfZ dZ d„Zd„Zd„Zy)Ú SmartQuotesz� Replace ASCII quotation marks with typographic form. Also replace multiple dashes with em-dash/en-dash characters. iWÚqDecóR—tj|||¬«t«|_y)N)Ú startnode)rÚ__init__ÚsetÚunsupported_languages)rr r{s rr|zSmartQuotes.__init__s€Ü×ј4 °YÕ?Ü%(£UˆÕ"rc#óK—|D]‚}t|j|j«s*t|jj|j«rdt|«f–—Œ]t j ddt|««}d|f–—Œ„y­w)NÚliteralz(?<=)([-\'".`])z\\\1Úplain)r;rKÚ literal_nodesÚstrÚreÚsub)rÚtxtnodesr=Útxts rÚ get_tokenszSmartQuotes.get_tokens srèø€óˆDܘ4Ÿ;™;¨×(:Ñ(:Ô;ܘdŸk™k×0Ñ0°$×2DÑ2DÔEؤ T£Ð*Ó*ô—f‘fÐ4°g¼sÀ4»yÓI�ؘs�lÓ"ñùs‚B B có —|jjjdd«}|sy |jd«}|jjj }|jjj }|r2tjjjt|««|jjtj«D�]Á}t||j «rŒt|j"tj«rŒ@|jtj$«D�cgc](}t|j"tj&«s|‘Œ*}}|j)|«}|rd|vr|j+dd«}n|dz }t-j.|«D]"} | tjjvsŒ | }nV||j0vr*|jj2j5d|z|¬«|j0j7|«d}tj8|j;|«|j<|¬«} t?|| «D]4\}} |j"j+|tj$| ««Œ6�ŒÄ|j0jA«y#t$rd}Y�Œ‹wxYwcc}w) NÚ smart_quotesFÚaltz -x-altquotrz*No smart quotes defined for language "%s".)Ú base_node)ÚattrÚlanguage)!r r"Ú setdefaultÚ startswithÚAttributeErrorÚ language_codeÚsmartquotes_localesrÚ smartcharsÚquotesÚupdateÚdictrArÚ TextElementr;Ú nodes_to_skiprKr+Ú option_stringÚget_language_coder`rÚnormalize_language_tagr~r[ÚwarningÚaddÚeducate_tokensrˆÚsmartquotes_actionÚzipÚclear) rrŠÚ alternativeÚdocument_languageÚlc_smartquotesr=Útxtnoder†ÚlangÚtagÚteacherÚnewtexts rrzSmartQuotes.applysh€Ø—}‘}×-Ñ-×8Ñ8¸Ø9>ó@ˆ áØ ð Ø&×1Ñ1°%Ó8ˆKð!ŸM™M×2Ñ2×@Ñ@ÐØŸ™×/Ñ/×CÑCˆÙ Ü × "Ñ "× )Ñ )× 0Ñ 0´°nÓ1EÔ Fð—M‘M×)Ñ)¬%×*;Ñ*;×<ˆDä˜$ × 2Ñ 2Ô3Øä˜$Ÿ+™+¤u×'8Ñ'8Ô9Øð04¯|©|¼E¿J¹JÔ/Gó@Ñ/G GÜ)¨'¯.©.Ü*/×*=Ñ*=ô ?ò Ð/GˆHð@ð ×)Ñ)Ð*;Ó<ˆDáØ 4Ñ'ØŸ<™<¨ °bÓ9‘Dà˜LÑ(�Dä×3Ñ3°DÖ9�Øœ+×0Ñ0×7Ñ7Ò7Ø�DÙð:ð ˜t×9Ñ9Ñ9Ø—M‘M×*Ñ*×2Ñ2ØDÀtÑKØ"&ð3ô(ð×*Ñ*×.Ñ.¨tÔ4Ø�ô"×0Ñ0Ø—‘ Ó)Ø×,Ñ,°tô=ˆGô%(¨°'Ö$:Ñ �˜Ø—‘×&Ñ& w´· ± ¸7Ó0CÕDò%;ðQ=ðV ×"Ñ"×(Ñ(Õ*øôkò Ø‹Kð üò&@s«J9Ä:-K Ê9 KËKN)r3r4r5r6r7rÚFixedTextElementÚSpecialr™Úimager€ÚmathÚrawr_r‚r r|rˆrrrrrxrxïs~„ñð Ðà×+Ñ+¨U¯]©]Ð;€MØMà×+Ñ+¨U¯]©]Ø—[‘[ %§-¡-°·±Ø—Y‘Y × 1Ñ 1ð3€MðGàÐðò +ò #ó<+rrx)r6Ú __docformat__r„r,ÚdocutilsrrÚdocutils.transformsrÚdocutils.utilsrr r9rFrSrdrhrmrxrrrÚr´s„ðñ ð#€ ã Û ß!Ý)Ý&ô<�)ô<ô~8�iô8ô(%ˆyô%ô6)�Yô)ô6%�9ô%ô& )�Iô )ô#˜iô#ôLf+�)õf+r