HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/pip/_vendor/html5lib/treebuilders/__pycache__/dom.cpython-310.pyc
o

@%Ne�"�@s�ddlmZmZmZzddlmZWney!ddlmZYnwddlm	Z	m
Z
ddlZddlm
Z
ddlmZdd	lmZdd
lmZdd�Zee�ZdS)
�)�absolute_import�division�unicode_literals)�MutableMapping)�minidom�NodeN�)�base�)�	constants)�
namespaces)�moduleFactoryFactorycsV��Gdd�dt��G��fdd�dtj��G����fdd�dtj�}dd��t�S)	Nc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)zgetDomBuilder.<locals>.AttrListcSs
||_dS�N��element��selfr�r�G/usr/lib/python3/dist-packages/pip/_vendor/html5lib/treebuilders/dom.py�__init__�
z(getDomBuilder.<locals>.AttrList.__init__cS�t|jj���Sr)�iterr�
attributes�keys�rrrr�__iter__�z(getDomBuilder.<locals>.AttrList.__iter__cSs2t|t�rt�|jj�|�}||_||jj|<dSr)�
isinstance�tuple�NotImplementedErrorr�
ownerDocument�createAttribute�valuer)r�namer#�attrrrr�__setitem__s

z+getDomBuilder.<locals>.AttrList.__setitem__cSst|jj�Sr)�lenrrrrrr�__len__#sz'getDomBuilder.<locals>.AttrList.__len__cSrr)�listrr�itemsrrrrr*&rz%getDomBuilder.<locals>.AttrList.itemscSrr)r)rr�valuesrrrrr+)rz&getDomBuilder.<locals>.AttrList.valuescSst|t�rt�|jj|jSr)rrr rrr#�rr$rrr�__getitem__,�
z+getDomBuilder.<locals>.AttrList.__getitem__cSst|t�rt�|jj|=dSr)rrr rrr,rrr�__delitem__2r.z+getDomBuilder.<locals>.AttrList.__delitem__N)�__name__�
__module__�__qualname__rrr&r(r*r+r-r/rrrr�AttrListsr3cs�eZdZdd�Zedd��Zdd�Zddd	�Zd
d�Zdd
�Z	dd�Z
�fdd�Zdd�Zeee�Z
�fdd�Zdd�Zdd�Zee�ZdS)z"getDomBuilder.<locals>.NodeBuildercSstj�||j�||_dSr)r	rr�nodeNamerrrrrr9s
z+getDomBuilder.<locals>.NodeBuilder.__init__cSst|jd�r
|jjpdS)N�namespaceURI)�hasattrrr5rrrr�<lambda>=s�z+getDomBuilder.<locals>.NodeBuilder.<lambda>cSs||_|j�|j�dSr)�parentr�appendChild�r�noderrrr9@sz.getDomBuilder.<locals>.NodeBuilder.appendChildNcSs6|jj�|�}|r|j�||j�dS|j�|�dSr)rr!�createTextNode�insertBeforer9)r�datar=�textrrr�
insertTextDsz-getDomBuilder.<locals>.NodeBuilder.insertTextcSs|j�|j|j�||_dSr)rr=r8)rr;�refNoderrrr=Ks
z/getDomBuilder.<locals>.NodeBuilder.insertBeforecSs&|jj|jkr|j�|j�d|_dSr)r�
parentNode�removeChildr8r:rrrrCOs
z.getDomBuilder.<locals>.NodeBuilder.removeChildcSs>|j��r|jj}|j�|�|j�|�|j��sg|_dSr)r�
hasChildNodes�
firstChildrCr9�
childNodes)r�	newParent�childrrr�reparentChildrenTs

�
z3getDomBuilder.<locals>.NodeBuilder.reparentChildrencs
�|j�Srrr)r3rr�
getAttributes[rz0getDomBuilder.<locals>.NodeBuilder.getAttributescSsz|r9t|���D]2\}}t|t�r1|ddur"|dd|d}n|d}|j�|d||�q|j�||�qdSdS)Nr�:rr
)r)r*rrr�setAttributeNS�setAttribute)rrr$r#�
qualifiedNamerrr�
setAttributes^s
���z0getDomBuilder.<locals>.NodeBuilder.setAttributescs�|j�d��S)NF)r�	cloneNoder��NodeBuilderrrrPmrz,getDomBuilder.<locals>.NodeBuilder.cloneNodecSs
|j��Sr)rrDrrrr�
hasContentprz-getDomBuilder.<locals>.NodeBuilder.hasContentcSs$|jdurtd|jfS|j|jfS)N�html)�	namespacerr$rrrr�getNameTupless
z/getDomBuilder.<locals>.NodeBuilder.getNameTupler)r0r1r2r�propertyrUr9r@r=rCrIrJrOrrPrSrV�	nameTupler)r3rRrrrR8s


rRcs�eZdZ�fdd�Z��fdd�Zd�fdd�	Z�fdd	�Z�fd
d�Zdd
�Z�fdd�Z	dd�Z
dd�Zddd�Z�Z
dZdS)z"getDomBuilder.<locals>.TreeBuildercs����ddd�|_t�|�Sr)�getDOMImplementation�createDocument�dom�weakref�proxyr)�Domrr�
documentClass|s
z0getDomBuilder.<locals>.TreeBuilder.documentClasscsV|d}|d}|d}���}|�|||�}|j��|���tkr)|j|_dSdS)Nr$�publicId�systemId)rY�createDocumentType�documentr9rr[r!)r�tokenr$r`ra�domimpl�doctype)r^rRrr�
insertDoctype�s�z0getDomBuilder.<locals>.TreeBuilder.insertDoctypeNcs<|dur|jdur|j�|�}�|�S|j�||�}�|�Sr)�defaultNamespacer[�
createElement�createElementNS)rr$rUr;rQrr�elementClass�s
�z/getDomBuilder.<locals>.TreeBuilder.elementClasscs�|j�|��Sr)r[�
createComment)rr>rQrr�commentClass�rz/getDomBuilder.<locals>.TreeBuilder.commentClasscs�|j���Sr)r[�createDocumentFragmentrrQrr�
fragmentClass��z0getDomBuilder.<locals>.TreeBuilder.fragmentClasscSs|j�|j�dSr)r[r9rr:rrrr9�sz.getDomBuilder.<locals>.TreeBuilder.appendChildcs�|�Srrr)�testSerializerrrrq�sz1getDomBuilder.<locals>.TreeBuilder.testSerializercSs|jSr)r[rrrr�getDocument�sz.getDomBuilder.<locals>.TreeBuilder.getDocumentcSstj�|�jSr)r	�TreeBuilder�getFragmentrrrrrrt�rpz.getDomBuilder.<locals>.TreeBuilder.getFragmentcSsr|}||krtj�|||�dSt|jd�r-tj|jjvr-t|jj�|j_|jj�	tj�|j�
|j�|��dS)N�_child_node_types)r	rsr@r6r[r�	TEXT_NODErur)�appendr9r<)rr>r8rrrr@�sz-getDomBuilder.<locals>.TreeBuilder.insertTextr)r0r1r2r_rgrkrmror9rqrrrtr@�implementationr$r)r^�DomImplementationrRrqrrrs{s

rscs0|��g�d��fdd�	��|d�d���S)Nrcs|jtjkr@|jr5|js|jr(|jpd}|jpd}��dd||j||f�nLj�dd||jf�n���dd|f�n�|jtjkrL��d�n�|jtjkrX��d�n�|jtj	krk��dd||j
f�n�|jtjkr~��d	d||j
f�nqt|d
�r�|j
dur�dtj|j
|jf}n|j}��dd||f�|��r�g}tt|j��D](}|j�|�}|j}|j}|j
}	|	r�dtj|	|jf}n|j}|�||f�q�t|�D]\}}��d
d|d||f�q�|d7}|jD]}
�|
|�q�dS)N�z|%s<!DOCTYPE %s "%s" "%s">� z|%s<!DOCTYPE %s>z|%s<!DOCTYPE >z	#documentz#document-fragmentz|%s<!-- %s -->z|%s"%s"r5z%s %sz|%s<%s>z
|%s%s="%s"r
)�nodeTyper�DOCUMENT_TYPE_NODEr$r`rarw�
DOCUMENT_NODE�DOCUMENT_FRAGMENT_NODE�COMMENT_NODE�	nodeValuervr6r5r�prefixesr4�
hasAttributes�ranger'r�itemr#�	localName�sortedrF)r�indentr`rar$r�ir%r#�nsrH��rv�serializeElementrrr��sT

�

�
�z?getDomBuilder.<locals>.testSerializer.<locals>.serializeElement�
)r)�	normalize�joinrrr�rrq�s

.
z%getDomBuilder.<locals>.testSerializer)rr	rrs�locals)ryrsr)r3r^ryrRrqr�
getDomBuilders$C:6r�)�
__future__rrr�collections.abcr�ImportError�collections�xml.domrrr\rzr	rr�_utilsr
r��getDomModulerrrr�<module>s�_