
    -Ph                         d Z dZddlmZ ddlZddlZddlmZmZm	Z	m
Z
  G d dej                  Z G d d	e	j                  Z G d
 dej                  Z G d dej        j        j                  ZdS )zv
Simple document tree Writer, writes Docutils XML according to
https://docutils.sourceforge.io/docs/ref/docutils.dtd.
reStructuredText    )StringION)frontendnodeswritersutilsc                       e Zd ZdS )RawXmlErrorN)__name__
__module____qualname__     ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/docutils/writers/docutils_xml.pyr
   r
      s        Dr   r
   c                       e Zd ZdZ	 ddddgdej        dfdd	gdej        dfd
dgdddej        dfddgdddej        dfffZddiZdZdZ	dZ
	 d Zd ZdS )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                 \    t           j                            |            t          | _        d S N)r   r   __init__XMLTranslatortranslator_class)selfs    r   r!   zWriter.__init__7   s&    %%% -r   c                     |                      | j                  x| _        }| j                            |           d                    |j                  | _        d S )N )r#   documentvisitor	walkaboutjoinoutput)r$   r(   s     r   	translatezWriter.translate;   sM    !%!6!6t}!E!EEw(((gggn--r   )r   r   r   	supportedr   validate_booleansettings_specsettings_defaultsconfig_sectionconfig_section_dependenciesr+   r!   r,   r   r   r   r   r      s        I' 	(
=.!0I
J
J
L 4-!0I
J
J
L 9!
"$m 13 3
4 *
(Q"1JL L
M	OPM$ 9:MN*N".F.. . .. . . . .r   r   c                       e Zd ZdZdZej                                        Z	 e	                    dd           d Z
ej        ej        ej        ej        ej        fZd Zd Zd Zd	 Zd
 ZdS )r"   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                    t           j                            | |           | j        j        j        | _        | j        j        j        | _        |j        x| _        }dx| _	        | _
        |j        rd| _
        |j        rd| _
        d| _	        d| _        d| _        d| _        g | _        |j        r1| j                            t'          j        |j                             |j        r| j                            | j                   | j                            | j        t0          j        z             t5                      | _        | j                            | j                   d S )Nr&   
z    r   )r   NodeVisitorr!   r'   reporterwarningwarnerrorsettingsindentnewlinenewlinesindentslevel	in_simple
fixed_textr+   r   appendr   output_encodingr   doctype	generatordocutils__version__TestXml
the_handle	xmlparsersetContentHandler)r$   r'   r;   s      r   r!   zXMLTranslator.__init__P   sA   ""4222 M*2	]+1
 $,#44%''dl 	 DL 	!DL DK
 # 	PKu4X5MNNOOO' 	-Kt|,,,4>H,@@AAA "))((99999r   c                 
   | j         s'| j                            | j        | j        z             | j                            |                    t          j        j        j	                             | xj        dz  c_        t          |t          j        t          j        f          r| xj        dz  c_        t          || j                  r| xj         dz  c_         | j         s!| j                            | j                   dS dS )zDefault node visit method.r   N)rA   r+   rC   r<   r@   starttagr   saxsaxutils	quoteattr
isinstancer   FixedTextElementliteralrB   simple_nodesr=   r$   nodes     r   default_visitzXMLTranslator.default_visitu   s    ~ 	7Kt{4:56664==)9)CDDEEE

a

 dU3U]CDD 	!OOq OOdD-.. 	 NNaNN~ 	-Kt|,,,,,	- 	-r   c                    | xj         dz  c_         | j        s'| j                            | j        | j         z             | j                            |                                           t          |t          j        t          j	        f          r| xj
        dz  c_
        t          || j                  r| xj        dz  c_        | j        s!| j                            | j                   dS dS )zDefault node depart method.r   N)r@   rA   r+   rC   r<   endtagrR   r   rS   rT   rB   rU   r=   rV   s     r   default_departurezXMLTranslator.default_departure   s    

a

~ 	7Kt{4:56664;;==)))dU3U]CDD 	!OOq OOdD-.. 	 NNaNN~ 	-Kt|,,,,,	- 	-r   c                     t           j        j                            |                                          }| j        s&|                    dd| j        | j        z  z             }| j	        
                    |           d S )Nr5   )r   rO   rP   escapeastextrB   replacer<   r@   r+   rC   )r$   rW   texts      r   
visit_TextzXMLTranslator.visit_Text   sj    w&&t{{}}55 	C<<d4;tz+A&ABBD4     r   c                     d S r    r   rV   s     r   depart_TextzXMLTranslator.depart_Text   s    r   c                 $   d|                     dd                                          vr|                     |           d S |                     |           |                                }| j                            |           |                     |           	 | j                            t          |                     n# t          j        j        j        $ r | j        j                                        }| j        j                                        }|j        }t'          |j        t*          j                  s|dz  }d|||                                fz  }|                     ||j        ||z   dz
             Y nw xY wt*          j        )Nr   formatr&      z0Invalid raw XML in column %d, line offset %d:
%sr   )sourceline)getsplitrX   r^   r+   rC   r[   rK   parser   r   rO   _exceptionsSAXParseExceptionrJ   locatorgetColumnNumbergetLineNumberrh   rR   parentr   TextElementr9   rg   SkipNode)r$   rW   
xml_stringcol_numline_numsrclinemsgs          r   	visit_rawzXMLTranslator.visit_raw   s   2..446666 t$$$F4   [[]]
:&&&t$$$
	HN  *!5!56666w"4 	H 	H 	Ho-==??G.<<>>HiGdk5+<== 1EHdkkmmI5 5CIIc$+GH4DQ4FIGGGGG	H ns   'C B=FFN)r   r   r   rE   rF   r   rO   make_parserrK   
setFeaturer!   r   rr   metaimagecolspec
transitionrU   rX   r[   ra   rc   ry   r   r   r   r"   r"   A   s        
	F  6I##%%I7?G G G: : :D %uzK0@BL- - -- - - ! ! !      r   r"   c                       e Zd Zd ZdS )rI   c                     || _         d S r    )rn   )r$   rn   s     r   setDocumentLocatorzTestXml.setDocumentLocator   s    r   N)r   r   r   r   r   r   r   rI   rI      s#            r   rI   )__doc____docformat__ior   xml.sax.saxutilsr   rG   r   r   r   r   ApplicationErrorr
   r   GenericNodeVisitorr"   rO   handlerContentHandlerrI   r   r   r   <module>r      s,   
 #            4 4 4 4 4 4 4 4 4 4 4 4	 	 	 	 	(+ 	 	 	&. &. &. &. &.W^ &. &. &.Rt t t t tE, t t tn    cgo,     r   