
    <i                        d Z ddlm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.
    )annotationsreStructuredText)StringION)frontendnodeswritersutilsc                      e Zd ZdS )RawXmlErrorN)__name__
__module____qualname__     /Users/kimhansen/Desktop/03 Workspace/ceo-agents/chl-effectiveness/mcp-servers/whoop/.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dZd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   returnNonec                \    t           j                            |            t          | _        d S N)r   r   __init__XMLTranslatortranslator_class)selfs    r   r$   zWriter.__init__9   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   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dZ
ej        ej        ej        ej        ej        fZddZdd	Zdd
Zd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-entitiesTr    r!   c                   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__R   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	                             t          |t          j                  s| 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)rE   r.   rG   r@   rD   starttagr   saxsaxutils	quoteattr
isinstancer   InlineFixedTextElementliteralrF   simple_nodesrA   r'   nodes     r   default_visitzXMLTranslator.default_visitw   s    ~ 	7Kt{4:56664==)9)CDDEEE$-- 	JJ!OJJ dU3U]CDD 	!OOq OOdD-.. 	 NNaNN~ 	-Kt|,,,,,	- 	-r   c                   t          |t          j                  s| 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)rV   r   rW   rD   rE   r.   rG   r@   endtagrX   rY   rF   rZ   rA   r[   s     r   default_departurezXMLTranslator.default_departure   s    $-- 	JJ!OJJ~ 	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 )Nr9   )r   rS   rT   escapeastextrF   replacer@   rD   r.   rG   )r'   r\   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   r[   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splitr]   rc   r.   rG   r`   rO   parser   r   rS   _exceptionsSAXParseExceptionrN   locatorgetColumnNumbergetLineNumberrm   rV   parentr   TextElementr=   rl   SkipNode)r'   r\   
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Nr0   )r   r   r   rI   rJ   r   rS   make_parserrO   
setFeaturer$   r   rw   metaimagecolspec
transitionrZ   r]   r`   rf   rh   r~   r   r   r   r%   r%   C   s        
	F  6I##%%I7?G G G: : : :D %uzK0@BL- - - - - - - -"! ! ! !       r   r%   c                      e Zd ZddZdS )rM   r    r!   c                    || _         d S r#   )rs   )r'   rs   s     r   setDocumentLocatorzTestXml.setDocumentLocator   s    r   Nr0   )r   r   r   r   r   r   r   rM   rM      s(             r   rM   )__doc__
__future__r   __docformat__ior   xml.sax.saxutilsr   rK   r   r   r   r	   ApplicationErrorr   r   GenericNodeVisitorr%   rS   handlerContentHandlerrM   r   r   r   <module>r      s>   
 # " " " " ""            4 4 4 4 4 4 4 4 4 4 4 4	 	 	 	 	(+ 	 	 	&. &. &. &. &.W^ &. &. &.Rv v v v vE, v v vr    cgo,     r   