File: //usr/local/lib64/python3.8/site-packages/lxml/__pycache__/sax.cpython-38.pyc
U
O��i�% � @ s� d Z ddlmZ ddlmZ ddlmZmZ ddlmZm Z zddl
mZ W n e
k
rh dd� ZY nX G d d
� d
ej�Zdd� ZG d
d� de�ZG dd� d�Zdd� ZdS )a?
SAX-based adapter to copy trees from/to the Python standard library.
Use the `ElementTreeContentHandler` class to build an ElementTree from
SAX events.
Use the `ElementTreeProducer` class or the `saxify()` function to fire
the SAX events of an ElementTree against a SAX ContentHandler.
See https://lxml.de/sax.html
� )�ContentHandler)�etree)�ElementTree�
SubElement)�Comment�ProcessingInstruction)�GenericAliasc C s | j � d|j � d�S )N�[�])�__name__��cls�item� r �*/tmp/pip-install-gdmoqxf6/lxml/lxml/sax.py�
_GenericAlias s r c @ s e Zd ZdZdS )�SaxErrorzGeneral SAX error.
N)r �
__module__�__qualname__�__doc__r r r r r s r c C s8 | d dkr,d| kr,t | dd � �dd��S d | fS d S )Nr �{�}� )�tuple�split)�tagr r r � _getNsTag s r c @ s� e Zd ZdZd"dd�Zdd� Zeeejd�Zdd � Zd
d� Z dd
� Z
dd� Zdd� Zdd� Z
d#dd�Zdd� Zdd� Zd$dd�Zdd� Zdd� ZeZd d!� ZdS )%�ElementTreeContentHandlerz/Build an lxml ElementTree from SAX events.
Nc C sL t �| � d | _g | _g | _d | _d d gi| _i | _|d krBtj }|| _
d S �N)r �__init__�_root�_root_siblings�_element_stack�_default_ns�_ns_mapping�
_new_mappingsr �Element�_makeelement)�self�makeelementr r r r * s
z"ElementTreeContentHandler.__init__c C s
t | j�S )z=Contains the generated ElementTree after parsing is finished.)r r �r( r r r �
_get_etree6 s z$ElementTreeContentHandler._get_etree)�docc C s d S r r )r( �locatorr r r �setDocumentLocator<