
    kf                         d dl mZ 	 d dlmZ d dlmZmZ  G d de          Z G d de	          Z
 G d d	e	          Zd
S )    )absolute_import)contextmanager)Elementtostringc                       e Zd ZdS )LxmlSyntaxErrorN)__name__
__module____qualname__     R/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/et_xmlfile/xmlfile.pyr   r      s        Dr   r   c                   H    e Zd ZdZd Zed	d            Zd Zd Zd Z	d Z
dS )
_FakeIncrementalFileWriterz_Replacement for _IncrementalFileWriter of lxml.
       Uses ElementTree to build xml in memory.c                 >    g | _         d | _        || _        d| _        d S )NF)_element_stack_top_element_file
_have_root)selfoutput_files     r   __init__z#_FakeIncrementalFileWriter.__init__   s$       
r   Nc              +     K   d| _         |i }t          |fd|i|| _        d| j        _        d| j        _        | j                            | j                   dV  | j                                        }| j        r0| j        d         }|                    | j                   || _        dS |                     |           d| _        dS )zCreate a new xml element using a context manager.
        The elements are written when the top level context is left.

        This is for code compatibility only as it is quite slow.
        TNattrib )	r   r   r   texttailr   appendpop_write_element)r   tagr   nsmap_extraelparents          r   elementz"_FakeIncrementalFileWriter.element   s       >F#CAAA&AA!#!#""4#4555  $$&& 	%(,FMM$+,,, &D### $Dr   c                    t          |t                    ra| j        t                      t	          | j                  dk    r| j        xj        |z  c_        dS | j        d         xj        |z  c_        dS | j        | j                            |           dS | j        s| 	                    |           dS t                      )zWrite a string or subelement.Nr   r   )

isinstancestrr   r   lenr   r   r   r   r!   )r   args     r   writez _FakeIncrementalFileWriter.write5   s     c3 	( (%'''4$%%**!&&#-&&&& !"%**c1****  ,!((-----_ (##C(((((%'''r   c                 X    t          |          }| j                            |           d S N)r   r   r-   )r   r'   xmls      r   r!   z)_FakeIncrementalFileWriter._write_elementL   s+    w
r   c                     d S r/   r   r   s    r   	__enter__z$_FakeIncrementalFileWriter.__enter__P   s    r   c                 0    | j         st                      d S r/   )r   r   r   typevalue	tracebacks       r   __exit__z#_FakeIncrementalFileWriter.__exit__S   s"     	$!###	$ 	$r   )NN)r	   r
   r   __doc__r   r   r'   r-   r!   r3   r9   r   r   r   r   r      s        3 3      % % % ^%6( ( (.    $ $ $ $ $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.FNc                     t          |t                    rt          |d          | _        d| _        d S || _        || _        d S )NwbT)r)   r*   openr   _close)r   r   bufferedencodingcloses        r   r   zxmlfile.__init__[   sB    k3'' 	 k400DJDKKK$DJDKKKr   c                 *    t          | j                  S r/   )r   r   r2   s    r   r3   zxmlfile.__enter__c   s    )$*555r   c                 R    | j         dk    r| j                                         d S d S )NT)r@   r   rC   r5   s       r   r9   zxmlfile.__exit__f   s1    ;$J r   )FNF)r	   r
   r   r:   r   r3   r9   r   r   r   r<   r<   Y   sL        >>       6 6 6    r   r<   N)
__future__r   
contextlibr   xml.etree.ElementTreer   r   	Exceptionr   objectr   r<   r   r   r   <module>rK      s    & & & & & & Q & % % % % % 3 3 3 3 3 3 3 3	 	 	 	 	i 	 	 	F$ F$ F$ F$ F$ F$ F$ F$R    f     r   