
    fh                         d dl mZ 	 d dlmZ d dlmZmZ ddlmZ  G d de	          Z
 G d d	e          Z G d
 de          ZdS )    )absolute_import)contextmanager)Element_escape_cdata   )incremental_treec                       e Zd ZdS )LxmlSyntaxErrorN)__name__
__module____qualname__     I/var/www/histauto/venv/lib/python3.11/site-packages/et_xmlfile/xmlfile.pyr
   r
      s        Dr   r
   c                   B    e Zd ZdZd Zedd            Zd Zd Zd Z	dS )	_IncrementalFileWriterz.Replacement for _IncrementalFileWriter of lxmlc                 n    g | _         || _        d| _        t          j                    | _        d| _        d S )NF)_element_stack_file
_have_rootr   current_global_nsmapglobal_nsmapis_html)selfoutput_files     r   __init__z_IncrementalFileWriter.__init__   s4      
,ACCr   Nc              +     K   |rUd|v rQd|v r!|d         |d         k    rt          d          |                                }|                    d          |d<   d| _        |i }t	          |fd|i|}d|_        d|_        | j        rd}| j        d         \  }}}	nd}i }d}i }	t          j	        | j
        ||| j        d| j        ||	||
  
        \  }}}}	}
| j                            |||	f           dV  | j                                         | 
                    d	| d
           |j        r)| 
                    t          |j                             dS dS )z1Create a new xml element using a context manager.N z?Found None and "" as default nsmap prefixes with different URIsTattribF)nsmap_scoper   short_empty_elementsr   is_rooturi_to_prefixdefault_ns_attr_prefix	new_nsmapz</>)
ValueErrorcopypopr   r   texttailr   r   write_elem_startr   r   r   appendr   )r   tagr   nsmap_extraelemr#   r!   r%   r$   next_remains_roots              r   elementz_IncrementalFileWriter.element   s       	(TU]] U{{uRyE$K77 U   JJLLE		$E"I >Fs4464V44		 	G
 #B'	& GK%)"M -J#*!&L'#9
 
 
	
" 	""&	
 	
 	
 	 	!!!

;;;;9 	1JJ}TY//00000	1 	1r   c                 x   t          |t                    r9| j        st                      |                     t          |                     dS | j        s| j        rt                      | j        rd}| j        d         \  }}}nd}i }d}i }t          j        | j        ||| j	        d| j
        |||	  	         dS )zWrite a string or subelement.Fr    TN)r!   r   r"   r   r#   r$   r%   )
isinstancestrr   r
   r   r   r   r   _serialize_ns_xmlr   r   )r   argr#   r!   r%   r$   s         r   writez_IncrementalFileWriter.write_   s     c3  	& (%'''JJ}S))***** & (4? (%'''" #
 '+	*!M  )-& ".
'!.%)+'=
 
 
 
 
 
r   c                     d S Nr   )r   s    r   	__enter__z _IncrementalFileWriter.__enter__   s    r   c                 0    | j         st                      d S r<   )r   r
   r   typevalue	tracebacks       r   __exit__z_IncrementalFileWriter.__exit__   s"     	$!###	$ 	$r   )NN)
r   r   r   __doc__r   r   r4   r:   r=   rC   r   r   r   r   r      sx        88   >1 >1 >1 ^>1@# # #J  $ $ $ $ $r   r   c                   &    e Zd ZdZddZd Zd ZdS )	xmlfilez4Context manager that can replace lxml.etree.xmlfile.Futf-8c                 >    || _         || _        || _        d | _        d S r<   )r   _closeencoding	writer_cm)r   r   bufferedrJ   closes        r   r   zxmlfile.__init__   s"     
 r   c                     t          j        | j        | j                  | _        | j                                        \  }}t          |          S )N)rJ   )r   _get_writerr   rJ   rK   r=   r   )r   writerdeclared_encodings      r   r=   zxmlfile.__enter__   sD    )5dj4=YYY$(N$<$<$>$>!!%f---r   c                     | j         r| j                             |||           | j        r| j                                         d S d S r<   )rK   rC   rI   r   rM   r?   s       r   rC   zxmlfile.__exit__   sT    > 	<N##D%;;;; 	J	 	r   N)FrG   F)r   r   r   rD   r   r=   rC   r   r   r   rF   rF      sL        >>   . . .
    r   rF   N)
__future__r   
contextlibr   xml.etree.ElementTreer   r   r   r   	Exceptionr
   objectr   rF   r   r   r   <module>rX      s    & & & & & & Q & % % % % %       
      	 	 	 	 	i 	 	 	u$ u$ u$ u$ u$V u$ u$ u$p    f     r   