
    k7i                       S r SSKJr  SrSSKJr  SSKrSSKrSSKJ	r	J
r
JrJr   " S S\R                  5      r " S	 S
\R                  5      r " S S\
R                   5      r " S S\R$                  R&                  R(                  5      rg)zv
Simple document tree Writer, writes Docutils XML according to
https://docutils.sourceforge.io/docs/ref/docutils.dtd.
    )annotationsreStructuredText)StringION)frontendnodeswritersutilsc                      \ rS rSrSrg)RawXmlError    N)__name__
__module____qualname____firstlineno____static_attributes__r       W/home/james-whalen/.local/lib/python3.13/site-packages/docutils/writers/docutils_xml.pyr   r      s    r   r   c                      \ rS rSrSr SSSS/S\R                  S.4S	S
/S\R                  S.4SS/SSS\R                  S.4SS/SSS\R                  S.444rSS0rSr	Sr
Sr SS jrSS jrSrg)Writer   )xmlz"Docutils XML" Writer OptionsNz1Generate XML with newlines before and after tags.z
--newlines
store_true)action	validatorz'Generate XML with indents and newlines.z	--indentsz,Omit the XML declaration.  Use with caution.z--no-xml-declarationxml_declaration   store_false)destdefaultr   r   zOmit the DOCTYPE declaration.z--no-doctypedoctype_declarationoutput_encoding_error_handlerxmlcharrefreplacezdocutils_xml writer)r   c                X    [         R                  R                  U 5        [        U l        g N)r   r   __init__XMLTranslatortranslator_class)selfs    r   r&   Writer.__init__9   s    % -r   c                    U R                  U R                  5      =U l        nU R                  R                  U5        SR	                  UR
                  5      U l        g )N )r(   documentvisitor	walkaboutjoinoutput)r)   r.   s     r   	translateWriter.translate=   sC    !%!6!6t}}!EEw(gggnn-r   )r1   r(   r.   returnNone)r   r   r   r   	supportedr   validate_booleansettings_specsettings_defaultsconfig_sectionconfig_section_dependenciesr1   r&   r2   r   r   r   r   r   r      s    I' 	(
=.!0I0I
J
L 4-!0I0I
J
L 9!
"$m 113
4 *
(Q"1J1JL
M	OPM$ 9:MN*N".F...r   r   c                      \ rS rSrSrSr\R                  R                  5       r	 \	R                  SS5        SS jr\R                  \R                  \R                  \R                   \R"                  4rSS jrSS jrSS	 jrSS
 jrS rSrg)r'   C   z<!DOCTYPE document PUBLIC "+//IDN docutils.sourceforge.net//DTD Docutils Generic//EN//XML" "http://docutils.sourceforge.net/docs/ref/docutils.dtd">
z"<!-- Generated by Docutils %s -->
z5http://xml.org/sax/features/external-general-entitiesTc                   [         R                  R                  X5        U R                  R                  R
                  U l        U R                  R                  R                  U l        UR                  =U l        nS=U l	        U l
        UR                  (       a  SU l
        UR                  (       a  SU l
        SU l	        SU l        SU l        SU l        / U l        UR"                  (       a9  U R                   R%                  [&        R"                  " UR(                  5      5        UR*                  (       a%  U R                   R%                  U R,                  5        U R                   R%                  U R.                  [0        R2                  -  5        [5        5       U l        U R8                  R;                  U R6                  5        g )Nr,   
z    r   )r   NodeVisitorr&   r-   reporterwarningwarnerrorsettingsindentnewlinenewlinesindentslevel	in_simple
fixed_textr1   r   appendr	   output_encodingr!   doctype	generatordocutils__version__TestXml
the_handle	xmlparsersetContentHandler)r)   r-   rF   s      r   r&   XMLTranslator.__init__R   s:   ""42 MM**22	]]++11
 $,#4#44%''dlDLDL DK
 ##KKu44X5M5MNO''KKt||,4>>H,@,@@A ")((9r   c                   U R                   (       d2  U R                  R                  U R                  U R                  -  5        U R                  R                  UR                  [        R                  R                  R                  5      5        [        U[        R                  5      (       d  U =R                  S-  sl        [        U[        R                  [        R                  45      (       a  U =R                  S-  sl        [        XR                   5      (       a  U =R                   S-  sl         U R                   (       d&  U R                  R                  U R"                  5        gg)zDefault node visit method.r   N)rL   r1   rN   rG   rK   starttagr   saxsaxutils	quoteattr
isinstancer   InlineFixedTextElementliteralrM   simple_nodesrH   r)   nodes     r   default_visitXMLTranslator.default_visitw   s    ~~KKt{{4::564==)9)9)C)CDE$--JJ!OJ dU33U]]CDDOOq Od--..NNaN~~KKt||, r   c                   [        U[        R                  5      (       d  U =R                  S-  sl        U R                  (       d2  U R
                  R                  U R                  U R                  -  5        U R
                  R                  UR                  5       5        [        U[        R                  [        R                  45      (       a  U =R                  S-  sl        [        XR                  5      (       a  U =R                  S-  sl        U R                  (       d&  U R
                  R                  U R                  5        gg)zDefault node depart method.r   N)r^   r   r_   rK   rL   r1   rN   rG   endtagr`   ra   rM   rb   rH   rc   s     r   default_departureXMLTranslator.default_departure   s    $--JJ!OJ~~KKt{{4::564;;=)dU33U]]CDDOOq Od--..NNaN~~KKt||, r   c                "   [         R                  R                  R                  UR	                  5       5      nU R
                  (       d,  UR                  SSU R                  U R                  -  -   5      nU R                  R                  U5        g )Nr@   )r   r[   r\   escapeastextrM   replacerG   rK   r1   rN   )r)   rd   texts      r   
visit_TextXMLTranslator.visit_Text   s]    ww&&t{{}5<<d4;;tzz+A&ABD4 r   c                    g r%   r   rc   s     r   depart_TextXMLTranslator.depart_Text   s    r   c                X   SUR                  SS5      R                  5       ;  a  U R                  U5        g U R                  U5        UR                  5       nU R                  R                  U5        U R                  U5         U R                  R                  [        U5      5        [*        R2                  e! [        R                  R                  R                   a    U R                  R                  R!                  5       nU R                  R                  R#                  5       nUR$                  n['        UR(                  [*        R,                  5      (       d  US-  nSX4UR                  5       4-  nU R/                  XaR0                  XT-   S-
  S9   [*        R2                  ef = f)Nr   formatr,      z0Invalid raw XML in column %d, line offset %d:
%sr   )sourceline)getsplitre   rm   r1   rN   ri   rV   parser   r   r[   _exceptionsSAXParseExceptionrU   locatorgetColumnNumbergetLineNumberry   r^   parentr   TextElementrD   rx   SkipNode)r)   rd   
xml_stringcol_numline_numsrclinemsgs          r   	visit_rawXMLTranslator.visit_raw   sP   2.4466 t$4 [[]
:&t$
	HNN  *!56 nn ww""44 	Hoo--==?G..<<>HiiGdkk5+<+<==1EdkkmI5 5CIIc++G4DQ4FIGnn	Hs   $B9 9CF)(F))
rE   rM   rL   rG   rK   rH   r1   rF   rU   rD   Nr4   )r   r   r   r   rP   rQ   r   r[   make_parserrV   
setFeaturer&   r   r   metaimagecolspec
transitionrb   re   ri   rp   rs   r   r   r   r   r   r'   r'   C   s    
	F  6I##%I7?G:D %%uzzKK0@0@BL- -"!r   r'   c                      \ rS rSrSS jrSrg)rT      c                    Xl         g r%   r   )r)   r   s     r   setDocumentLocatorTestXml.setDocumentLocator   s    r   r   Nr4   )r   r   r   r   r   r   r   r   r   rT   rT      s    r   rT   )__doc__
__future__r   __docformat__ior   xml.sax.saxutilsr   rR   r   r   r   r	   ApplicationErrorr   r   GenericNodeVisitorr'   r[   handlerContentHandlerrT   r   r   r   <module>r      su   
 #"    4 4	(++ 	&.W^^ &.RvE,, vrcggoo,, r   