
    -Ph                       d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZmZ erddlmZmZ ddlmZ ddlmZ  ej        e          Z G d de          Z  G d de           Z!ddZ"dS )z,Docutils-native XML and pseudo-XML builders.    )annotations)TYPE_CHECKING)nodes)StringOutput)XMLTranslator)Builder)__)logging)_last_modified_time)PseudoXMLWriter	XMLWriter)IteratorSet)Sphinx)ExtensionMetadatac                      e Zd ZU dZdZdZ ed          ZdZdZ	e
Zded<   ded	<   eZddZddZdddZd dZd!dZddZdS )"
XMLBuilderzBuilds Docutils-native XML.xmlz The XML files are in %(outdir)s.z.xmlTz!type[XMLWriter | PseudoXMLWriter]_writer_classzXMLWriter | PseudoXMLWriterwriterreturnNonec                    d S N selfs    S/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinx/builders/xml.pyinitzXMLBuilder.init(           Iterator[str]c              #  <  K   | j         j        D ]}|| j         j        vr|V  | j        || j        z   z  }	 t          |          }n# t          $ r d}Y nw xY w	 t          | j                             |                    }||k    r|V  }# t          $ r Y w xY wd S )Nr   )	env
found_docsall_docsoutdir
out_suffixr   	Exceptiondoc2pathOSError)r   docname
targetnametargetmtimesrcmtimes        r   get_outdated_docszXMLBuilder.get_outdated_docs+   s      x* 	 	Gdh///$/(ABJ 1*==       .tx/@/@/I/IJJk))!MMM   	 	s#   AAA1B
BBNr,   strtyp
str | Nonec                    |S r   r   )r   r,   r2   s      r   get_target_urizXMLBuilder.get_target_uri=   s    r!   docnamesSet[str]c                :    |                      |           | _        d S r   )r   r   )r   r6   s     r   prepare_writingzXMLBuilder.prepare_writing@   s    ((..r!   doctreenodes.documentc                   |                                 }| j        j                                        D ]}d|d|j         <   |                    t          j                  D ]}|j        	                                D ]\  }}t          |t                    rt          |          |j        |<   |j        |         }t          |t                    r<t          |          D ],\  }}t          |t                    rt          |          ||<   -t          d          }	| j                            ||	           | j        || j        z   z  }
|
j                            dd           	 t+          |
dd          5 }|                    | j        j                   d d d            d S # 1 swxY w Y   d S # t.          $ r4}t0                              t5          d          |
|           Y d }~d S d }~ww xY w)	Nzhttps://www.sphinx-doc.org/zxmlns:zutf-8)encodingT)parentsexist_okwzerror writing file %s: %s)deepcopyr$   domainssortednamefindallr   Element
attributesitems
isinstancetuplelist	enumerater   r   writer'   r(   parentmkdiropenoutputr+   loggerwarningr	   )r   r,   r:   domainnodeattvalueivaldestinationout_file_nameferrs                r   	write_doczXMLBuilder.write_docC   sR    ""$$h&--// 	L 	LF.KG*V[**++OOEM22 	1 	1D"o3355 1 1
UeU++ 7+/;;DOC(,eT** 1"+E"2"2 1 13%c511 1'+CyyE!H1 #G444';///w'@A""4$"???	PmS7;;; ,q*+++, , , , , , , , , , , , , , , , , , 	P 	P 	PNN29::M3OOOOOOOOO	Ps<   (F4 : F'F4 'F++F4 .F+/F4 4
G2>)G--G2c                    d S r   r   r   s    r   finishzXMLBuilder.finish\   r    r!   )r   r   )r   r"   r   )r,   r1   r2   r3   r   r1   )r6   r7   r   r   )r,   r1   r:   r;   r   r   )__name__
__module____qualname____doc__rD   formatr	   epilogr(   allow_parallelr   r   __annotations__r   default_translator_classr   r0   r5   r9   r^   r`   r   r!   r   r   r      s         %%DFR233FJN7@M@@@@'''',      $    / / / /P P P P2     r!   r   c                  8    e Zd ZdZdZdZ ed          ZdZe	Z
dS )PseudoXMLBuilderz'Builds pseudo-XML for display purposes.	pseudoxmlz'The pseudo-XML files are in %(outdir)s.z
.pseudoxmlN)ra   rb   rc   rd   rD   re   r	   rf   r(   r   r   r   r!   r   rk   rk   `   s8        11DFR9::FJ#MMMr!   rk   appr   r   r   c                    |                      t                     |                      t                     |                     dddt	          t
          h                     ddddS )N
xml_prettyTr$   )typesbuiltin)versionparallel_read_safeparallel_write_safe)add_builderr   rk   add_config_value	frozensetbool)rm   s    r   setupry   l   sh    OOJOO$%%%tU)TF:K:KLLL "#  r!   N)rm   r   r   r   )#rd   
__future__r   typingr   docutilsr   docutils.ior   docutils.writers.docutils_xmlr   sphinx.buildersr   sphinx.localer	   sphinx.utilr
   sphinx.util.osutilr   sphinx.writers.xmlr   r   collections.abcr   r   sphinx.applicationr   sphinx.util.typingr   	getLoggerra   rR   r   rk   ry   r   r!   r   <module>r      s   2 2 " " " " " "                   $ $ $ $ $ $ 7 7 7 7 7 7 # # # # # #             2 2 2 2 2 2 9 9 9 9 9 9 9 9 5--------))))))444444		8	$	$C C C C C C C CL	$ 	$ 	$ 	$ 	$z 	$ 	$ 	$
 
 
 
 
 
r!   