o
    ðäj  ã                   @   sj   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„ de	ƒZ
G dd	„ d	eƒZG d
d„ deƒZdS )é    )Úabsolute_import)Úcontextmanager)ÚElementÚ_escape_cdataé   )Úincremental_treec                   @   s   e Zd ZdS )ÚLxmlSyntaxErrorN)Ú__name__Ú
__module__Ú__qualname__© r   r   úV/var/www/ticemtrilhas/avaliacao_env/lib/python3.10/site-packages/et_xmlfile/xmlfile.pyr      s    r   c                   @   s>   e Zd ZdZdd„ Zeddd„ƒZdd„ Zd	d
„ Zdd„ Z	dS )Ú_IncrementalFileWriterz.Replacement for _IncrementalFileWriter of lxmlc                 C   s&   g | _ || _d| _t ¡ | _d| _d S )NF)Ú_element_stackÚ_fileÚ
_have_rootr   Úcurrent_global_nsmapÚglobal_nsmapÚis_html)ÚselfÚoutput_filer   r   r   Ú__init__   s
   

z_IncrementalFileWriter.__init__Nc                 k   s"  � |r"d|v r"d|v r|d |d krt dƒ‚| ¡ }| d¡|d< d| _|du r+i }t|fd|i|¤Ž}d|_d|_| jrId}| jd \}}}	nd}i }d}i }	tj	| j
||| jd| j||	||d�
\}}}}	}
| 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_rootr   r   r   Úelement   sn   €ÿüöúýÿ
ÿz_IncrementalFileWriter.elementc                 C   sŒ   t |tƒr| 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�	 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   r   r   r   Úwrite_   s8   
ü
÷z_IncrementalFileWriter.writec                 C   s   d S ©Nr   )r   r   r   r   Ú	__enter__„   s   z _IncrementalFileWriter.__enter__c                 C   s   | j stƒ ‚d S r4   )r   r   ©r   ÚtypeÚvalueÚ	tracebackr   r   r   Ú__exit__‡   s   ÿz_IncrementalFileWriter.__exit__)NN)
r	   r
   r   Ú__doc__r   r   r.   r3   r5   r:   r   r   r   r   r      s    @%r   c                   @   s*   e Zd ZdZddd„Zdd„ Zdd	„ Zd
S )Úxmlfilez4Context manager that can replace lxml.etree.xmlfile.Fúutf-8c                 C   s   || _ || _|| _d | _d S r4   )r   Ú_closeÚencodingÚ	writer_cm)r   r   Úbufferedr?   Úcloser   r   r   r   �   s   
zxmlfile.__init__c                 C   s*   t j| j| jd�| _| j ¡ \}}t|ƒS )N)r?   )r   Ú_get_writerr   r?   r@   r5   r   )r   ÚwriterÚdeclared_encodingr   r   r   r5   •   s   zxmlfile.__enter__c                 C   s.   | j r| j  |||¡ | jr| j ¡  d S d S r4   )r@   r:   r>   r   rB   r6   r   r   r   r:   š   s
   ÿzxmlfile.__exit__N)Fr=   F)r	   r
   r   r;   r   r5   r:   r   r   r   r   r<   �   s
    
r<   N)Ú
__future__r   Ú
contextlibr   Úxml.etree.ElementTreer   r   r   r   Ú	Exceptionr   Úobjectr   r<   r   r   r   r   Ú<module>   s    x