Current File : //lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree.cpython-39.pyc
a

[��f$2�@s�ddlmZmZmZddlmZddlZddlmZddlm	Z	ddlm
Z
dd	lmZdd
lmZddl
mZe�d�Zddd�Zee�ZdS)�)�absolute_import�division�unicode_literals)�	text_typeN)�copy�)�base�)�	_ihatexml)�	constants)�
namespaces)�moduleFactoryFactoryz
{([^}]*)}(.*)Fc	s�����d�j�G�fdd�dtj��G�fdd�d���G�fdd�d���G�fdd	�d	���G�fd
d�d����fdd
��	��fdd�}G��������	fdd�dtj�}t�S)NZasdcs�eZdZd$�fdd�	Zdd�Zdd�Zdd	�Zeee�Zd
d�Z	dd
�Z
ee
e	�Zdd�Zdd�Z
eee
�Zdd�Zdd�Zeee�Zdd�Zdd�Zdd�Zdd�Zd%dd�Zd d!�Zd"d#�ZdS)&z getETreeBuilder.<locals>.ElementNcs^||_||_��|�||��|_|dur:td|jf|_n|j|jf|_d|_g|_g|_	dS)N�html)
�_name�
_namespace�Element�_getETreeTag�_elementrZ	nameTuple�parent�_childNodes�_flags)�self�name�	namespace��ElementTree��K/usr/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/etree.py�__init__s
�z)getETreeBuilder.<locals>.Element.__init__cSs|dur|}nd||f}|S)N�{%s}%sr)rrrZ	etree_tagrrrr%sz-getETreeBuilder.<locals>.Element._getETreeTagcSs||_|�|j|j�|j_dS�N)rrrr�tag)rrrrr�_setName,sz)getETreeBuilder.<locals>.Element._setNamecSs|jSr )r�rrrr�_getName0sz)getETreeBuilder.<locals>.Element._getNamecSs||_|�|j|j�|j_dSr )rrrrr!)rrrrr�
_setNamespace5sz.getETreeBuilder.<locals>.Element._setNamespacecSs|jSr )rr#rrr�
_getNamespace9sz.getETreeBuilder.<locals>.Element._getNamespacecSs|jjSr )r�attribr#rrr�_getAttributes>sz/getETreeBuilder.<locals>.Element._getAttributescSsV|jj}|��|rR|��D]4\}}t|t�rDd|d|df}n|}|||<qdS)Nrr	r)rr'�clear�items�
isinstance�tuple)r�
attributesZ	el_attrib�key�valuerrrr�_setAttributesAs
z/getETreeBuilder.<locals>.Element._setAttributescSs|jSr )rr#rrr�_getChildNodesPsz/getETreeBuilder.<locals>.Element._getChildNodescSs*|jdd�=g|_|D]}|�|�qdSr )rrZinsertChild)rr/�elementrrr�_setChildNodesSsz/getETreeBuilder.<locals>.Element._setChildNodescSst|jjpt|j��S)z,Return true if the node has children or text)�boolr�text�lenr#rrr�
hasContent[sz+getETreeBuilder.<locals>.Element.hasContentcSs$|j�|�|j�|j�||_dSr )r�appendrr�r�noderrr�appendChild_sz,getETreeBuilder.<locals>.Element.appendChildcSs,t|j��|j�}|j�||j�||_dSr )�listr�index�insertr)rr:ZrefNoder=rrr�insertBeforedsz-getETreeBuilder.<locals>.Element.insertBeforecSs$|j�|�|j�|j�d|_dSr )r�removerrr9rrr�removeChildisz,getETreeBuilder.<locals>.Element.removeChildcSs�t|j�s,|jjsd|j_|jj|7_n�|durb|jdjsLd|jd_|jdj|7_nxt|j�}|�|j�}|dkr�|j|djs�d|j|d_|j|dj|7_n |jjs�d|j_|jj|7_dS)N����rr)r6rr5�tailr<r=)r�datar?Zchildrenr=rrr�
insertTextns"

z+getETreeBuilder.<locals>.Element.insertTextcSs.t|�|j|j�}|jjr*t|jj�|j_|Sr )�typerrrr'r�rr2rrr�	cloneNode�sz*getETreeBuilder.<locals>.Element.cloneNodecSsl|jr"|jdjj|jj7_n0|jjs2d|j_|jjdurR|jj|jj7_d|j_tj�||�dS)NrCrB)�
childNodesrrDr5r�Node�reparentChildren)rZ	newParentrrrrL�sz1getETreeBuilder.<locals>.Element.reparentChildren)N)N)�__name__�
__module__�__qualname__rrr"r$�propertyrr%r&rr(r0r-r1r3rJr7r;r?rArFrIrLrrrrrs*





rcs2eZdZ�fdd�Zdd�Zdd�Zeee�ZdS)z getETreeBuilder.<locals>.Commentcs"��|�|_d|_g|_g|_dSr )�Commentrrrr)rrErrrr�sz)getETreeBuilder.<locals>.Comment.__init__cSs|jjSr �rr5r#rrr�_getData�sz)getETreeBuilder.<locals>.Comment._getDatacSs||j_dSr rR�rr/rrr�_setData�sz)getETreeBuilder.<locals>.Comment._setDataN)rMrNrOrrSrUrPrErrrrrQ�srQcsLeZdZ�fdd�Zdd�Zdd�Zeee�Zdd�Zd	d
�Z	eee	�Z
dS)z%getETreeBuilder.<locals>.DocumentTypecs$��|d�||j_||_||_dS)N�
<!DOCTYPE>)rrr5�publicId�systemId)rrrWrX�rrrr�sz.getETreeBuilder.<locals>.DocumentType.__init__cSs|j�dd�S)NrWrB�r�getr#rrr�_getPublicId�sz2getETreeBuilder.<locals>.DocumentType._getPublicIdcSs|dur|j�d|�dS)NrW�r�setrTrrr�_setPublicId�sz2getETreeBuilder.<locals>.DocumentType._setPublicIdcSs|j�dd�S)NrXrBrZr#rrr�_getSystemId�sz2getETreeBuilder.<locals>.DocumentType._getSystemIdcSs|dur|j�d|�dS)NrXr]rTrrr�_setSystemId�sz2getETreeBuilder.<locals>.DocumentType._setSystemIdN)rMrNrOrr\r_rPrWr`rarXrrYrr�DocumentType�s
rbcseZdZ�fdd�ZdS)z!getETreeBuilder.<locals>.Documentcs��|d�dS)N�
DOCUMENT_ROOT�rr#rYrrr�sz*getETreeBuilder.<locals>.Document.__init__N�rMrNrOrrrYrr�Document�srfcseZdZ�fdd�ZdS)z)getETreeBuilder.<locals>.DocumentFragmentcs��|d�dS)NZDOCUMENT_FRAGMENTrdr#rYrrr�sz2getETreeBuilder.<locals>.DocumentFragment.__init__NrerrYrr�DocumentFragment�srgcs*g�d���fdd�	��|d�d���S)Nrcs�t|d�s|��}|jdkrz|�d�s0|�d�rd|�d�p<d}|�d�pJd}��d|j||f�n��d|jf��n�|jdkr��d	�|jdur���d
d|d|jf�|jdur�td
��t|d�r�t|j	�r�td���nh|j�k�r��dd||jf��n@t
|jt��s4Jdt|j�|jf��t
�|j�}|du�rR|j}n"|��\}}tj|}d||f}��dd||f�t|d��r*g}|j	��D]T\}}	t
�|�}|du�r�|��\}}tj|}d||f}
n|}
|�|
|	f��q�t|�D]&\}}	��dd|d||	f��q|j�rN��d
d|d|jf�|d7}|D]}�||��qZ|j�r���d
d|d|jf�dS)Nr!rVrWrXrBz<!DOCTYPE %s "%s" "%s">�
<!DOCTYPE %s>rcz	#documentz|%s"%s"� r	�Document node cannot have tailr'�$Document node cannot have attributesz|%s<!-- %s -->zExpected unicode, got %s, %sz%s %sz|%s<%s>z
|%s%s="%s")�hasattr�getrootr!r[r8r5rD�	TypeErrorr6r'r+rrG�
tag_regexp�match�groupsr�prefixesr*�sorted)r2�indentrWrXZnsmatchr�ns�prefixr-r/Zattr_string�child)�ElementTreeCommentType�rv�serializeElementrrrz�sb


�



�




 zAgetETreeBuilder.<locals>.testSerializer.<locals>.serializeElement�
)r)�join�r2)rx)ryrzr�testSerializer�s7
z'getETreeBuilder.<locals>.testSerializercs2g�t��������fdd���|�d���S)z4Serialize an element and its child nodes to a stringcs�t|�j�r|��}|jdkr||�d�s2|�d�rf|�d�p>d}|�d�pLd}��d|j||f�n��d|jf��n|jdkr�|jdur���|j�|jdur�td��t	|d	�r�t
|j�r�td
��|D]}�|�q�n�|j�kr���d|jf�n�|j�s��d��|j�f�n2d
�
�fdd�|j��D��}��d|j|f�|j�rd��|j�|D]}�|��qh��d|jf�|j�r���|j�dS)NrVrWrXrBz<!DOCTYPE %s PUBLIC "%s" "%s">rhrcrjr'rkz	<!--%s-->z<%s>rics"g|]\}}d��|�|f�qS)z%s="%s")�fromXmlName)�.0rr/)�filterrr�
<listcomp>)s�
�zOgetETreeBuilder.<locals>.tostring.<locals>.serializeElement.<locals>.<listcomp>z<%s %s>z</%s>)r+rrmr!r[r8r5rDrnrlr6r'rr|r*)r2rWrXrw�attr)rrxr�ryrzrrrzsD

�



�z;getETreeBuilder.<locals>.tostring.<locals>.serializeElementrB)r
Z
InfosetFilterr|r})rrx)r�ryrzr�tostrings
-z!getETreeBuilder.<locals>.tostringcsDeZdZ�Z�Z�Z�Z�Z�Z�fdd�Z	�fdd�Z
dd�ZdS)z$getETreeBuilder.<locals>.TreeBuildercs�|�Sr rrH)r~rrr~Dsz3getETreeBuilder.<locals>.TreeBuilder.testSerializercs<�r|jjS|jdur*|jj�d|j�S|jj�d�SdS)Nz{%s}htmlr)ZdocumentrZdefaultNamespace�findr#)�fullTreerr�getDocumentGs
�z0getETreeBuilder.<locals>.TreeBuilder.getDocumentcSstj�|�jSr )r�TreeBuilder�getFragmentrr#rrrr�Qsz0getETreeBuilder.<locals>.TreeBuilder.getFragmentN)rMrNrOZ
documentClassZdoctypeClassZelementClassZcommentClassZ
fragmentClass�implementationr~r�r�r)rQrfrgrbr�ElementTreeImplementationr�r~rrr�<s
r�)rQr!rrKr��locals)r�r�r�r�r)
rQrfrgrbrrrxr�r�r~r�getETreeBuilders>6$r�)F)Z
__future__rrrZpip._vendor.sixr�rerrBrr
rrZ_utilsr
�compileror�ZgetETreeModulerrrr�<module>s

F