
    N&i                     0   d Z dZddlZddlZddlZddlmZmZmZ ej	        dk    rddl
mZ nddlmZ ej	        dk    re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
http://docutils.sourceforge.net/docs/ref/docutils.dtd.
reStructuredText    N)frontendwritersnodes   r   )StringIOc                       e Zd ZdS )RawXmlErrorN)__name__
__module____qualname__     j/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/docutils/writers/docutils_xml.pyr   r      s          r   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__?   s&    %%% -r   c                     |                      | j                  x| _        }| j                            |           d                    |j                  | _        d S )N )r$   documentvisitor	walkaboutjoinoutput)r%   r)   s     r   	translatezWriter.translateC   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dZej                                        Z		 e	
                    dd           d Zej        ej        ej        ej        fZd Zd Zd	 Zd
 Zd ZdS )r#   z$<?xml version="1.0" encoding="%s"?>
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        r'| j                            | j        |j        z             |j        r| j                            | j                   | j                            | j        t.          j        z             t3                      | _        | 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   appendoutput_encodingr   doctype	generatordocutils__version__TestXml
the_handle	xmlparsersetContentHandler)r%   r(   r<   s      r   r"   zXMLTranslator.__init__Y   sH   ""4222 M*2	]+1
 $,#44%''dl 	 DL 	!DL DK
 # 	AK$x'??A A A' 	-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)rB   r,   rD   r=   rA   starttagr   saxsaxutils	quoteattr
isinstancer   FixedTextElementliteralrC   simple_nodesr>   r%   nodes     r   default_visitzXMLTranslator.default_visit   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)rA   rB   r,   rD   r=   endtagrS   r   rT   rU   rC   rV   r>   rW   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 )Nr6   )r   rP   rQ   escapeastextrC   replacer=   rA   r,   rD   )r%   rX   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   rW   s     r   depart_TextzXMLTranslator.depart_Text   s    r   c                    d|                     dd                                          vr|                     |           d S |                     |           |                                }| j                            |           |                     |           t          |t                    r%t          j
        dk     r|                    d          }	 | j                            t          |                     n# t          j        j        j        $ r}| j        j                                        }| j        j                                        }|j        }t          |j        t2          j                  s|dz  }d|||                                fz  }|                     ||j        ||z   dz
  	           Y d }~nd }~ww xY wt2          j        )
Nr   formatr'   r   utf8   z0Invalid raw XML in column %d, line offset %d:
%sr   )sourceline)getsplitrY   r_   r,   rD   r\   rS   unicodesysversion_infoencoderL   parser	   r   rP   _exceptionsSAXParseExceptionrK   locatorgetColumnNumbergetLineNumberrj   parentr   TextElementr:   ri   SkipNode)r%   rX   
xml_stringr;   col_numline_numsrclinemsgs           r   	visit_rawzXMLTranslator.visit_raw   s   2..446666 t$$$F4   [[]]
:&&&t$$$j'** 	3s/?&/H/H#**622J
	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GGG	H ns   'C= =GB$F??GN)r   r   r   r   rF   rG   r   rP   make_parserrL   
setFeaturer"   r   rx   imagecolspec
transitionrV   rY   r\   rb   rd   r   r   r   r   r#   r#   I   s        =O	F  6I##%%I7?G G G: : :F %K0@BL- - -- - -"! ! !      r   r#   c                       e Zd Zd ZdS )rJ   c                     || _         d S r!   )rt   )r%   rt   s     r   setDocumentLocatorzTestXml.setDocumentLocator   s    r   N)r   r   r   r   r   r   r   rJ   rJ      s#            r   rJ   )__doc____docformat__rn   xml.sax.saxutilsr   rH   r   r   r   ro   ior	   strrm   ApplicationErrorr   r   GenericNodeVisitorr#   rP   handlerContentHandlerrJ   r   r   r   <module>r      sY   
 # 



      - - - - - - - - - -v!!!!!! vG 3 2 2 2 2(+ 2 2 2&. &. &. &. &.W^ &. &. &.Rx x x x xE, x x xv    cgo,     r   