HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //usr/local/lib64/python3.8/site-packages/lxml/__pycache__/sax.cpython-38.pyc
U

O��i�%�@s�dZddlmZddlmZddlmZmZddlmZm	Z	zddl
mZWne
k
rhdd�ZYnXGd	d
�d
ej�Zdd�ZGd
d�de�ZGdd�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)�GenericAliascCs|j�d|j�d�S)N�[�])�__name__��cls�item�r�*/tmp/pip-install-gdmoqxf6/lxml/lxml/sax.py�
_GenericAliassrc@seZdZdZdS)�SaxErrorzGeneral SAX error.
    N)r�
__module__�__qualname__�__doc__rrrrrsrcCs8|ddkr,d|kr,t|dd��dd��Sd|fSdS)Nr�{�}�)�tuple�split)�tagrrr�	_getNsTag src@s�eZdZdZd"dd�Zdd�Zeeejd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
d#dd�Zdd�Zdd�Zd$dd�Zdd�Zdd�ZeZd d!�ZdS)%�ElementTreeContentHandlerz/Build an lxml ElementTree from SAX events.
    NcCsLt�|�d|_g|_g|_d|_ddgi|_i|_|dkrBtj	}||_
dS�N)r�__init__�_root�_root_siblings�_element_stack�_default_ns�_ns_mapping�
_new_mappingsr�Element�_makeelement)�self�makeelementrrrr*s
z"ElementTreeContentHandler.__init__cCs
t|j�S)z=Contains the generated ElementTree after parsing is finished.)rr �r(rrr�
_get_etree6sz$ElementTreeContentHandler._get_etree)�doccCsdSrr)r(�locatorrrr�setDocumentLocator<sz,ElementTreeContentHandler.setDocumentLocatorcCsdSrrr*rrr�
startDocument?sz'ElementTreeContentHandler.startDocumentcCsdSrrr*rrr�endDocumentBsz%ElementTreeContentHandler.endDocumentcCsR||j|<z|j|�|�Wn tk
r>|g|j|<YnX|dkrN||_dSr)r%r$�append�KeyErrorr#)r(�prefix�urirrr�startPrefixMappingEs
z,ElementTreeContentHandler.startPrefixMappingcCs(|j|}|��|dkr$|d|_dS�N���)r$�popr#)r(r3Zns_uri_listrrr�endPrefixMappingNs
z*ElementTreeContentHandler.endPrefixMappingcCs4|\}}|rd|}n|jr,d|j|f}n|}|S)N�{%s}%s)r#)r(Z
ns_name_tuple�ns_uri�
local_name�el_tagrrr�	_buildTagTs
z#ElementTreeContentHandler._buildTagc
Cs�|�|�}|rni}z|��}Wntk
r:|��}YnX|D]*\}}|drZd|}	n|d}	|||	<q@nd}|j}
|jdkr�|�|||j�}|_|jr�t	|d�r�|jD]}|�
|�q�|jdd�=nt|
d|||j�}|
�|�|j�
�dS)Nrr:r�addpreviousr7)r>�	iteritems�AttributeError�itemsr"r r'r%r!�hasattrr?rr1�clear)
r(�ns_name�qname�
attributesZel_name�attrsZiter_attributesZ
name_tuple�value�	attr_nameZ
element_stack�element�siblingrrr�startElementNS^s6


�

�
z(ElementTreeContentHandler.startElementNScCs6t||�}|jdkr"|j�|�n|jd�|�dSr6)rr r!r1r")r(�target�data�pirrr�processingInstructions

z/ElementTreeContentHandler.processingInstructioncCs.|j��}|�|�}||jkr*td|��dS)NzUnexpected element closed: )r"r8r>rr)r(rErFrKr=rrr�endElementNS�s


z&ElementTreeContentHandler.endElementNScCs,|rdd�|��D�}|�d|f||�dS)NcSsi|]\}}d|f|�qSrr)�.0�k�vrrr�
<dictcomp>�sz:ElementTreeContentHandler.startElement.<locals>.<dictcomp>)rBrM)r(�namerGrrr�startElement�sz&ElementTreeContentHandler.startElementcCs|�d|f|�dSr)rR)r(rWrrr�
endElement�sz$ElementTreeContentHandler.endElementcCsP|jd}z|d}Wn$tk
r:|jp.d||_YnX|jpDd||_dS)Nr7�)r"�
IndexError�text�tail)r(rOZlast_elementrrr�
characters�s
z$ElementTreeContentHandler.characterscCs
t||�Sr)rrrrr�__class_getitem__�sz+ElementTreeContentHandler.__class_getitem__)N)N)N)rrrrrr+�propertyrr.r/r0r5r9r>rMrQrRrXrYr^�ignorableWhitespacer_rrrrr's$
	

!
rc@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�ElementTreeProducerz5Produces SAX events for an element and children.
    cCsTz|��}Wntk
r$|}YnX||_||_ddlm}||_|ii�|_dS)Nr)�AttributesNSImpl)�getrootrA�_element�_content_handlerZxml.sax.xmlreaderrc�_attr_class�_empty_attributes)r(�element_or_tree�content_handlerrKZ
attr_classrrrr�s
zElementTreeProducer.__init__cCs�|j��|j}t|d�rjg}|��}t|dd�tkrJ|�|�|��}q&|ddd�D]}|�|i�qX|�|i�t|d�r�|�	�}t|dd�tkr�|�|i�|�	�}q�|j�
�dS)N�getpreviousrr7�getnext)rfr/rerCrk�getattrrr1�_recursive_saxifyrlr0)r(rKZsiblingsrLrrr�saxify�s"





zElementTreeProducer.saxifycCs�|j}|j}|tks|tkrL|tkr4|�|j|j�|j}|rH|�|�dS|j	}g}||kr�|�
�D]$\}}	|�|�|	krf|�||	f�qf|�
�}
|
r�i}i}|
D]8\}
}t
|
�}|||<|j|d|d|ddd�||<q�|�||�}n|j}t
|�\}	}|j|	|||jdd�}|D]\}}|�||��q|�|	|f||�|j}|�rX|�|�|D]}|�||��q\|�|	|f|�|D]\}}|�|��q�|j}|�r�|�|�dS)NrrT)�preferred_prefix�is_attributeF)rq)rfrrrrQrNr\r]r^�nsmaprB�getr1r�_build_qnamergrhr3r5rMrnrRr9)r(rKZparent_nsmaprjrr]Z
element_nsmapZnew_prefixesr3r;ZattribsZattr_valuesZattr_qnamesZattr_ns_namerIZ
attr_ns_tupleZsax_attributesr<rFr4r\�childrrrrn�sx�
���
z%ElementTreeProducer._recursive_saxifycsv�dkr|S|s$|�|��kr$|}n:�fdd�|��D�}t|�dkrN|dn|rZt|�nd}|dkrj|S|d|S)Ncs$g|]\}}|dk	r|�kr|�qSrr)rS�pfxr4�r;rr�
<listcomp>	s�z4ElementTreeProducer._build_qname.<locals>.<listcomp>rr�:)rsrB�len�min)r(r;r<rrrprqr3�
candidatesrrwrrts
��z ElementTreeProducer._build_qnameN)rrrrrrornrtrrrrrb�s
6rbcCst||���S)zlOne-shot helper to generate SAX events from an XML tree and fire
    them against a SAX ContentHandler.
    )rbro)rirjrrrrosroN)rZxml.sax.handlerr�lxmlrZ
lxml.etreerrrr�typesrr�ImportErrorZ	LxmlErrorrrrrbrorrrr�<module>s
s