
    Fwg                     |    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y)    )absolute_import)contextmanager)Element_escape_cdata   )incremental_treec                       e Zd Zy)LxmlSyntaxErrorN)__name__
__module____qualname__     I/var/www/horilla/myenv/lib/python3.12/site-packages/et_xmlfile/xmlfile.pyr
   r
      s    r   r
   c                   :    e Zd ZdZd Zedd       Zd Zd Zd Z	y)	_IncrementalFileWriterz.Replacement for _IncrementalFileWriter of lxmlc                 n    g | _         || _        d| _        t        j                         | _        d| _        y )NF)_element_stack_file
_have_rootr   current_global_nsmapglobal_nsmapis_html)selfoutput_files     r   __init__z_IncrementalFileWriter.__init__   s0      
,AACr   Nc              +     K   |rBd|v r>d|v r|d   |d   k7  rt        d      |j                         }|j                  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                  j                  |||	f       d | j                  j                          | j                  d	| d
       |j                  r%| j                  t        |j                               yyw)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 U  JJLE		$E"I >Fs464V4		G
 ##B'	& GK%)"M --JJ#**!&LL'#9
	
" 	""&	
 	 	!

RuA;99JJ}TYY/0 s   EEc                    t        |t              r1| j                  s
t               | j	                  t        |             y| j                  s| j                  r
t               | j                  rd}| j                  d   \  }}}nd}i }d}i }t        j                  | j                  ||| j                  d| j                  |||	       y)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??%''""
 ''+	*!  )-& "..

'!..%)+'=
r   c                      y Nr   )r   s    r   	__enter__z _IncrementalFileWriter.__enter__   s    r   c                 0    | j                   s
t               y 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      s/    8 >1 >1@#J$r   r   c                   $    e Zd ZdZddZd Zd Zy)xmlfilez4Context manager that can replace lxml.etree.xmlfile.c                 <    || _         || _        || _        d | _        y r<   )r   _closeencoding	writer_cm)r   r   bufferedrI   closes        r   r   zxmlfile.__init__   s     
 r   c                     t        j                  | j                  | j                        | _        | j                  j                         \  }}t        |      S )N)rI   )r   _get_writerr   rI   rJ   r=   r   )r   writerdeclared_encodings      r   r=   zxmlfile.__enter__   sA    )55djj4==Y$(NN$<$<$>!!%f--r   c                     | j                   r| j                   j                  |||       | j                  r| j                  j	                          y y r<   )rJ   rC   rH   r   rL   r?   s       r   rC   zxmlfile.__exit__   s;    >>NN##D%;;;JJ r   N)Fzutf-8F)r   r   r   rD   r   r=   rC   r   r   r   rF   rF      s    >.
r   rF   N)
__future__r   
contextlibr   xml.etree.ElementTreer   r   r   r   	Exceptionr
   objectr   rF   r   r   r   <module>rW      sD    & Q &
 	i 	u$V u$pf r   