
    O&i                     2   d Z ddlmZ ddlmZmZmZmZmZm	Z	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 ddlmZm Z   ej!        e"          Z# G d de          Z$ G d de$          Z%dedee&ef         fdZ'dS )z,Docutils-native XML and pseudo-XML builders.    )path)AnyDictIteratorOptionalSetTypeUnion)nodes)StringOutput)Node)XMLTranslator)Sphinx)Builder)__)logging)	ensurediros_path)PseudoXMLWriter	XMLWriterc                       e Zd ZU dZdZdZ ed          ZdZdZ	e
Zeee
         ee         f         ed<   eZdd	Zdee         fd
Zddedee         defdZdee         ddfdZdededdfdZddZdS )
XMLBuilderz%
    Builds Docutils-native XML.
    xmlz The XML files are in %(outdir)s.z.xmlT_writer_classreturnNc                     d S N selfs    `/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/sphinx/builders/xml.pyinitzXMLBuilder.init#           c              #   p  K   | j         j        D ]}|| j         j        vr|V  t          j        | j        || j        z             }	 t          j        |          }n# t          $ r d}Y nw xY w	 t          j        | j         	                    |                    }||k    r|V  # t          $ r Y w xY wd S )Nr   )env
found_docsall_docsr   joinoutdir
out_suffixgetmtime	Exceptiondoc2pathOSError)r    docname
targetnametargetmtimesrcmtimes        r!   get_outdated_docszXMLBuilder.get_outdated_docs&   s      x* 	 	Gdh///4;$/0IJJJ "mJ77       =):):7)C)CDDk))!MMM   	 	s$   AA+*A+/6B&&
B32B3r0   typc                     |S r   r   )r    r0   r5   s      r!   get_target_urizXMLBuilder.get_target_uri8   s    r$   docnamesc                 :    |                      |           | _        d S r   )r   writer)r    r8   s     r!   prepare_writingzXMLBuilder.prepare_writing;   s    ((..r$   doctreec                 2   |                                 }| j        j                                        D ]}d|j        z   }d||<   |                    t          j                  D ]}|j        	                                D ]\  }}t          |t                    rt          |          |j        |<   |j        |         }t          |t                    r<t          |          D ],\  }}	t          |	t                    rt          |	          ||<   -t          d          }
| j                            ||
           t#          j        | j        t)          |          | j        z             }t-          t#          j        |                     	 t1          |dd          5 }|                    | j        j                   d d d            d S # 1 swxY w Y   d S # t4          $ r4}t6                              t;          d          ||           Y d }~d S d }~ww xY w)Nzxmlns:zhttps://www.sphinx-doc.org/zutf-8)encodingwzerror writing file %s: %s)deepcopyr&   domainsvaluesnamefindallr   Element
attributesitems
isinstancetuplelist	enumerater   r:   writer   r)   r*   r   r+   r   dirnameopenoutputr/   loggerwarningr   )r    r0   r<   domainxmlnsnodeattvalueivaldestinationoutfilenameferrs                 r!   	write_doczXMLBuilder.write_doc>   sZ    ""$$h&--// 	; 	;Fv{*E:GENN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';///iWW-=-=-OPP$,{++,,,	Nk3999 ,Q*+++, , , , , , , , , , , , , , , , , , 	N 	N 	NNN29::KMMMMMMMMM	Ns<   G  G>G GG GG 
H")HHc                     d S r   r   r   s    r!   finishzXMLBuilder.finishX   r#   r$   )r   Nr   )__name__
__module____qualname____doc__rC   formatr   epilogr+   allow_parallelr   r   r
   r	   r   __annotations__r   default_translator_classr"   r   strr4   r   r7   r   r;   r   r]   r_   r   r$   r!   r   r      s>          DFR233FJNCLM5i$*??@LLL,   8C=    $ c      /C /T / / / /N Nt N N N N N4     r$   r   c                   8    e Zd ZdZdZdZ ed          ZdZe	Z
dS )PseudoXMLBuilderz1
    Builds pseudo-XML for display purposes.
    	pseudoxmlz'The pseudo-XML files are in %(outdir)s.z
.pseudoxmlN)r`   ra   rb   rc   rC   rd   r   re   r+   r   r   r   r$   r!   rk   rk   \   s>          DFR9::FJ#MMMr$   rk   appr   c                     |                      t                     |                      t                     |                     ddd           ddddS )N
xml_prettyTr&   builtin)versionparallel_read_safeparallel_write_safe)add_builderr   rk   add_config_value)rm   s    r!   setuprv   i   sY    OOJOO$%%%tU333 "#  r$   N)(rc   osr   typingr   r   r   r   r   r	   r
   docutilsr   docutils.ior   docutils.nodesr   docutils.writers.docutils_xmlr   sphinx.applicationr   sphinx.buildersr   sphinx.localer   sphinx.utilr   sphinx.util.osutilr   r   sphinx.writers.xmlr   r   	getLoggerr`   rP   r   rk   ri   rv   r   r$   r!   <module>r      s   2 2       B B B B B B B B B B B B B B B B B B       $ $ $ $ $ $       7 7 7 7 7 7 % % % % % % # # # # # #             1 1 1 1 1 1 1 1 9 9 9 9 9 9 9 9		8	$	$D D D D D D D DN
$ 
$ 
$ 
$ 
$z 
$ 
$ 
$
v 
$sCx. 
 
 
 
 
 
r$   