
    	h                     |    S SK Jr   S SKJr  S SKJrJr  SSKJr   " S S\	5      r
 " S S	\5      r " S
 S\5      rg)    )absolute_import)contextmanager)Element_escape_cdata   )incremental_treec                       \ rS rSrSrg)LxmlSyntaxError    N)__name__
__module____qualname____firstlineno____static_attributes__r       D/var/www/html/env/lib/python3.13/site-packages/et_xmlfile/xmlfile.pyr
   r
      s    r   r
   c                   D    \ rS rSrSrS r\S
S j5       rS rS r	S r
S	rg)_IncrementalFileWriter   z.Replacement for _IncrementalFileWriter of lxmlc                 n    / U l         Xl        SU l        [        R                  " 5       U l        SU l        g )NF)_element_stack_file
_have_rootr   current_global_nsmapglobal_nsmapis_html)selfoutput_files     r   __init___IncrementalFileWriter.__init__   s.      
,AACr   Nc              +     #    U(       aG  SU;   aA  SU;   a  US   US   :w  a  [        S5      eUR                  5       nUR                  S5      US'   SU l        Uc  0 n[	        U4SU0UD6nSUl        SUl        U R                  (       a  SnU R                  S   u  nnn	OSn0 nSn0 n	[        R                  " U R                  UUU R                  SU R                  UU	UUS9
u  nnnn	n
U R                  R                  UUU	45        Sv   U R                  R                  5         U R                  S	U S
35        UR                  (       a%  U R                  [        UR                  5      5        gg7f)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   element_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/E1c                    [        U[        5      (       a6  U R                  (       d
  [        5       eU R	                  [        U5      5        gU R                  (       d  U R                  (       a
  [        5       eU R                  (       a  SnU R                  S   u  nnnOSn0 nSn0 n[        R                  " U R                  UUU R                  SU R                  UUUS9	  g)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   write_IncrementalFileWriter.write_   s     c3&&%''JJ}S)* &&4??%''""
 ''+	*!  )-& "..

'!..%)+'=
r   c                     g Nr   )r   s    r   	__enter__ _IncrementalFileWriter.__enter__   s    r   c                 :    U R                   (       d
  [        5       eg rC   )r   r
   r   typevalue	tracebacks       r   __exit___IncrementalFileWriter.__exit__   s    !## r   )r   r   r   r   r   )NN)r   r   r   r   __doc__r    r   r9   r@   rD   rK   r   r   r   r   r   r      s/    8 >1 >1@#J$r   r   c                   .    \ rS rSrSrSS jrS rS rSrg)	xmlfile   z4Context manager that can replace lxml.etree.xmlfile.c                 6    Xl         X@l        X0l        S U l        g rC   )r   _closeencoding	writer_cm)r   r   bufferedrS   closes        r   r    xmlfile.__init__   s     
 r   c                     [         R                  " U R                  U R                  S9U l        U R                  R                  5       u  p[        U5      $ )N)rS   )r   _get_writerr   rS   rT   rD   r   )r   writerdeclared_encodings      r   rD   xmlfile.__enter__   s>    )55djj4==Y$(NN$<$<$>!%f--r   c                     U R                   (       a  U R                   R                  XU5        U R                  (       a  U R                  R	                  5         g g rC   )rT   rK   rR   r   rV   rG   s       r   rK   xmlfile.__exit__   s9    >>NN##D;;;JJ r   )rR   r   rS   rT   N)Fzutf-8F)	r   r   r   r   rM   r    rD   rK   r   r   r   r   rO   rO      s    >.
r   rO   N)
__future__r   
contextlibr   xml.etree.ElementTreer   r   r#   r   	Exceptionr
   objectr   rO   r   r   r   <module>rd      sD    & Q &
 	i 	u$V u$pf r   