
    zi                    "   d Z ddlmZ ddlmZ ddl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mZ ddlmZmZ erddl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)path)TYPE_CHECKINGAny)nodes)StringOutput)XMLTranslator)Builder)__)logging)	ensurediros_path)PseudoXMLWriter	XMLWriter)Iterator)Node)Sphinxc                      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] | type[PseudoXMLWriter]_writer_classzXMLWriter | PseudoXMLWriterwriterreturnNonec                    d S N selfs    ^/var/www/tmov.alphamb/tmov_inventario/venv/lib/python3.11/site-packages/sphinx/builders/xml.pyinitzXMLBuilder.init+           Iterator[str]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Nr0   strtyp
str | Nonec                    |S r   r   )r   r0   r6   s      r    get_target_urizXMLBuilder.get_target_uri@   s    r#   docnamesset[str]c                :    |                      |           | _        d S r   )r   r   )r   r:   s     r    prepare_writingzXMLBuilder.prepare_writingC   s    ((..r#   doctreer   c                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_docF   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.finish`   r"   r#   )r   r   )r   r$   r   )r0   r5   r6   r7   r   r5   )r:   r;   r   r   )r0   r5   r>   r   r   r   )__name__
__module____qualname____doc__rE   formatr   epilogr+   allow_parallelr   r   __annotations__r	   default_translator_classr!   r4   r9   r=   r_   ra   r   r#   r    r   r      s           DFR233FJN=FMFFFF'''',      $    / / / /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)rb   rc   rd   re   rE   rf   r   rg   r+   r   r   r   r#   r    rl   rl   d   s>          DFR9::FJ#MMMr#   rl   appr   r   dict[str, Any]c                    |                      t                     |                      t                     |                     ddd           ddddS )N
xml_prettyTr&   builtin)versionparallel_read_safeparallel_write_safe)add_builderr   rl   add_config_value)rn   s    r    setuprx   q   sY    OOJOO$%%%tU333 "#  r#   N)rn   r   r   ro   )&re   
__future__r   osr   typingr   r   docutilsr   docutils.ior   docutils.writers.docutils_xmlr	   sphinx.buildersr
   sphinx.localer   sphinx.utilr   sphinx.util.osutilr   r   sphinx.writers.xmlr   r   collections.abcr   docutils.nodesr   sphinx.applicationr   	getLoggerrb   rR   r   rl   rx   r   r#   r    <module>r      s   2 2 " " " " " "       % % % % % % % %       $ $ $ $ $ $ 7 7 7 7 7 7 # # # # # #             1 1 1 1 1 1 1 1 9 9 9 9 9 9 9 9 *((((((######))))))		8	$	$E E E E E E E EP
$ 
$ 
$ 
$ 
$z 
$ 
$ 
$
 
 
 
 
 
r#   