Файловый менеджер - Редактировать - /home/digitalm/venv/lib/python3.7/site-packages/et_xmlfile/__pycache__/xmlfile.cpython-37.pyc
Назад
B �5�g� � @ s\ d dl mZ d dlmZ d dlmZmZ G dd� de�ZG dd� de �Z G dd � d e �Zd S )� )�absolute_import)�contextmanager)�Element�tostringc @ s e Zd ZdS )�LxmlSyntaxErrorN)�__name__� __module__�__qualname__� r r �H/home/digitalm-up/venv/lib/python3.7/site-packages/et_xmlfile/xmlfile.pyr s r c @ sF e Zd ZdZdd� Zeddd��Zdd� Zd d � Zdd� Z d d� Z dS )�_FakeIncrementalFileWriterz_Replacement for _IncrementalFileWriter of lxml. Uses ElementTree to build xml in memory.c C s g | _ d | _|| _d| _d S )NF)�_element_stack�_top_element�_file� _have_root)�self�output_filer r r �__init__ s z#_FakeIncrementalFileWriter.__init__Nc k s� d| _ |dkri }t|fd|i|��| _d| j_d| j_| j�| j� dV | j�� }| jrz| jd }|�| j� || _n| �|� d| _dS )z�Create 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 Znsmap�_extra�el�parentr r r �element s z"_FakeIncrementalFileWriter.elementc C s� t |t�rP| jdkrt� �t| j�dkr:| j j|7 _q�| jd j|7 _n0| jdk rh| j�|� n| jsz| � |� nt� �dS )zWrite a string or subelement.Nr r ) � isinstance�strr r �lenr r r r r )r �argr r r �write5 s z _FakeIncrementalFileWriter.writec C s t |�}| j�|� d S )N)r r r% )r r �xmlr r r r L s z)_FakeIncrementalFileWriter._write_elementc C s d S )Nr )r r r r � __enter__P s z$_FakeIncrementalFileWriter.__enter__c C s | j st� �d S )N)r r )r �type�value� tracebackr r r �__exit__S s z#_FakeIncrementalFileWriter.__exit__)NN)r r r �__doc__r r r r% r r'