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__/etree.cpython-310.pyc
o

@%Ne$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)N�asdcs�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^||_||_��|�||��|_|durtd|jf|_n|j|jf|_d|_g|_g|_	dS)N�html)
�_name�
_namespace�Element�_getETreeTag�_elementr�	nameTuple�parent�_childNodes�_flags)�self�name�	namespace��ElementTree��I/usr/lib/python3/dist-packages/pip/_vendor/html5lib/treebuilders/etree.py�__init__s
�
z)getETreeBuilder.<locals>.Element.__init__cSs |dur|}|Sd||f}|S)N�{%s}%sr)rrr�	etree_tagrrrr%s
�z-getETreeBuilder.<locals>.Element._getETreeTagcSs||_|�|j|j�|j_dS�N)rrrr�tag)rrrrr�_setName,�z)getETreeBuilder.<locals>.Element._setNamecS�|jSr#)r�rrrr�_getName0�z)getETreeBuilder.<locals>.Element._getNamecSs||_|�|j|j�|j_dSr#)rrrrr$)rrrrr�
_setNamespace5r&z.getETreeBuilder.<locals>.Element._setNamespacecSr'r#)rr(rrr�
_getNamespace9r*z.getETreeBuilder.<locals>.Element._getNamespacecS�|jjSr#)r�attribr(rrr�_getAttributes>�z/getETreeBuilder.<locals>.Element._getAttributescSsZ|jj}|��|r)|��D]\}}t|t�r"d|d|df}n|}|||<qdSdS)Nr!r	r)rr.�clear�items�
isinstance�tuple)r�
attributes�	el_attrib�key�valuerrrr�_setAttributesAs

�z/getETreeBuilder.<locals>.Element._setAttributescSr'r#)rr(rrr�_getChildNodesPr*z/getETreeBuilder.<locals>.Element._getChildNodescSs*|jdd�=g|_|D]}|�|�qdSr#)rr�insertChild)rr8�elementrrr�_setChildNodesSs
�z/getETreeBuilder.<locals>.Element._setChildNodescSst|jjp	t|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_�
z,getETreeBuilder.<locals>.Element.appendChildcSs,t|j��|j�}|j�||j�||_dSr#)�listr�index�insertr)rrD�refNoderHrrr�insertBeforeds
z-getETreeBuilder.<locals>.Element.insertBeforecSs$|j�|�|j�|j�d|_dSr#)r�removerrrCrrr�removeChildirFz,getETreeBuilder.<locals>.Element.removeChildcSs�t|j�s|jjs
d|j_|jj|7_dS|dur3|jdjs'd|jd_|jdj|7_dSt|j�}|�|j�}|dkr`|j|djsRd|j|d_|j|dj|7_dS|jjshd|j_|jj|7_dS)N����rr)r@rr?�tailrGrH)r�datarK�childrenrHrrr�
insertTextns"

z+getETreeBuilder.<locals>.Element.insertTextcSs.t|�|j|j�}|jjrt|jj�|j_|Sr#)�typerrrr.r�rr<rrr�	cloneNode�sz*getETreeBuilder.<locals>.Element.cloneNodecSsl|jr|jdjj|jj7_n|jjsd|j_|jjdur)|jj|jj7_d|j_tj�||�dS)NrOrN)�
childNodesrrPr?r�Node�reparentChildren)r�	newParentrrrrY�sz1getETreeBuilder.<locals>.Element.reparentChildrenr#)�__name__�
__module__�__qualname__r rr%r)�propertyrr+r,rr/r9r5r:r=rWrArErKrMrSrVrYrrrrrs,






rcs2eZdZ�fdd�Zdd�Zdd�Zeee�ZdS)z getETreeBuilder.<locals>.Commentcs"��|�|_d|_g|_g|_dSr#)�Commentrrrr)rrQrrrr �s
z)getETreeBuilder.<locals>.Comment.__init__cSr-r#�rr?r(rrr�_getData�r0z)getETreeBuilder.<locals>.Comment._getDatacSs||j_dSr#r`�rr8rrr�_setData�sz)getETreeBuilder.<locals>.Comment._setDataN)r[r\r]r rarcr^rQrrrrr_�s
r_csLeZdZ�fdd�Zdd�Zdd�Zeee�Zdd�Zd	d
�Z	eee	�Z
dS)z%getETreeBuilder.<locals>.DocumentTypecs$��|d�||j_||_||_dS)N�
<!DOCTYPE>)r rr?�publicId�systemId)rrrerf�rrrr �s
z.getETreeBuilder.<locals>.DocumentType.__init__cS�|j�dd�S)NrerN�r�getr(rrr�_getPublicId��z2getETreeBuilder.<locals>.DocumentType._getPublicIdcS�|dur
|j�d|�dSdS)Nre�r�setrbrrr�_setPublicId���z2getETreeBuilder.<locals>.DocumentType._setPublicIdcSrh)NrfrNrir(rrr�_getSystemId�rlz2getETreeBuilder.<locals>.DocumentType._getSystemIdcSrm)Nrfrnrbrrr�_setSystemId�rqz2getETreeBuilder.<locals>.DocumentType._setSystemIdN)r[r\r]r rkrpr^rerrrsrfrrgrr�DocumentType�s
rtc�eZdZ�fdd�ZdS)z!getETreeBuilder.<locals>.Documentc���|d�dS)N�
DOCUMENT_ROOT�r r(rgrrr ��z*getETreeBuilder.<locals>.Document.__init__N�r[r\r]r rrgrr�Document��r{cru)z)getETreeBuilder.<locals>.DocumentFragmentcrv)N�DOCUMENT_FRAGMENTrxr(rgrrr �ryz2getETreeBuilder.<locals>.DocumentFragment.__init__Nrzrrgrr�DocumentFragment�r|r~cs*g�d���fdd�	��|d�d���S)Nrcs�t|d�s	|��}|jdkr<|�d�s|�d�r2|�d�pd}|�d�p%d}��d|j||f�n��d|jf�n�|jdkrq��d	�|jdurY��d
d|d|jf�|jdurbtd
��t|d�rpt|j	�rptd��n�|j�kr���dd||jf�n�t
|jt�s�Jdt|j�|jf��t
�|j�}|dur�|j}n|��\}}tj|}d||f}��dd||f�t|d��rg}|j	��D](\}}	t
�|�}|dur�|��\}}tj|}d||f}
n|}
|�|
|	f�q�t|�D]\}}	��dd|d||	f�q�|j�r��d
d|d|jf�|d7}|D]}�||��q$|j�rA��d
d|d|jf�dSdS)Nr$rdrerfrNz<!DOCTYPE %s "%s" "%s">�
<!DOCTYPE %s>rwz	#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$rjrBr?rP�	TypeErrorr@r.r3rrT�
tag_regexp�match�groupsr�prefixesr2�sorted)r<�indentrerf�nsmatchr�ns�prefixr5r8�attr_string�child)�ElementTreeCommentType�rv�serializeElementrrr��sf


�



�
�


 �zAgetETreeBuilder.<locals>.testSerializer.<locals>.serializeElement�
)r)�join�r<)r�)r�r�r�testSerializer�s
7
z'getETreeBuilder.<locals>.testSerializercs2g�t��������fdd���|�d���S)z4Serialize an element and its child nodes to a stringcs�t|�j�r
|��}|jdkr=|�d�s|�d�r3|�d�pd}|�d�p&d}��d|j||f�n���d|jf�n�|jdkrn|jdurM��|j�|jdurVtd��t	|d	�rdt
|j�rdtd
��|D]}�|�qfnS|j�kr}��d|jf�nD|js���d��|j�f�nd
�
�fdd�|j��D��}��d|j|f�|jr���|j�|D]}�|�q���d|jf�|jr̈�|j�dSdS)NrdrerfrNz<!DOCTYPE %s PUBLIC "%s" "%s">rrwr�r.r�z	<!--%s-->z<%s>r�cs"g|]
\}}d��|�|f�qS)z%s="%s")�fromXmlName)�.0rr8)�filterrr�
<listcomp>)s
�

�zOgetETreeBuilder.<locals>.tostring.<locals>.serializeElement.<locals>.<listcomp>z<%s %s>z</%s>)r3rr�r$rjrBr?rPr�r�r@r.r�r�r2)r<rerfr��attr)rr�r�r�r�rrr�sH

�



�
�
�z;getETreeBuilder.<locals>.tostring.<locals>.serializeElementrN)r
�
InfosetFilterr�r�)rr�)r�r�r�r�tostrings
-
z!getETreeBuilder.<locals>.tostringcsDeZdZ�Z�Z�Z�Z�Z�Z�fdd�Z	�fdd�Z
dd�ZdS)z$getETreeBuilder.<locals>.TreeBuildercs�|�Sr#rrU)r�rrr�Dr0z3getETreeBuilder.<locals>.TreeBuilder.testSerializercs8�r|jjS|jdur|jj�d|j�S|jj�d�S)Nz{%s}htmlr)�documentr�defaultNamespace�findr()�fullTreerr�getDocumentGs
�z0getETreeBuilder.<locals>.TreeBuilder.getDocumentcSstj�|�jSr#)r�TreeBuilder�getFragmentrr(rrrr�Qrlz0getETreeBuilder.<locals>.TreeBuilder.getFragmentN)r[r\r]�
documentClass�doctypeClass�elementClass�commentClass�
fragmentClass�implementationr�r�r�r)r_r{r~rtr�ElementTreeImplementationr�r�rrr�<s
r�)r_r$rrXr��locals)r�r�r�r�r)
r_r{r~rtrrr�r�r�r�r�getETreeBuilders>$6r�)F)�
__future__rrr�pip._vendor.sixr�rerrNrr
rr�_utilsr
�compiler�r��getETreeModulerrrr�<module>s

F