Your IP : 18.191.198.245


Current Path : /opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/treewalkers/
Upload File :
Current File : //opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/treewalkers/etree.pyc

�
�Rec@`s�ddlmZmZmZddlmZddlZddlmZddl	m
Z
ddlmZej
d	�Zd
�Zee�ZdS(i(tabsolute_importtdivisiontunicode_literals(tOrderedDictN(tstring_typesi(tbasei(tmoduleFactoryFactoryu
{([^}]*)}(.*)c`s>|}|jd�j�dtjf�fd��Y}t�S(Nuasdt
TreeWalkerc`s8eZdZ�fd�Zd�Zd�Zd�ZRS(u�Given the particular ElementTree representation, this implementation,
        to avoid using recursion, returns "nodes" as tuples with the following
        content:

        1. The current element

        2. The index of the element relative to its parent

        3. A stack of ancestor elements

        4. A flag "text", "tail" or None to indicate if the current node is a
           text node; either the text or tail of the current element (1)
        c`s�t|t�rL|\}}}}|dkrCtjt||�fS|}nt|d�sj|j�}n|jdkr�tjfS|jdkr�tj	|j
|jd�|jd�fS|j�kr�tj|j
fSt|jt
�stt|j���tj|j�}|r-|j�\}}nd}|j}t�}xmt|jj��D]V\}	}
tj|	�}|r�|
||jd	�|jd
�f<q[|
|d|	f<q[Wtj|||t|�p�|j
fSdS(
Nutextutailutagu
DOCUMENT_ROOTuDOCUMENT_FRAGMENTu
<!DOCTYPE>upublicIdusystemIdii(utextutail(u
DOCUMENT_ROOTuDOCUMENT_FRAGMENT(t
isinstancettupleRtTEXTtgetattrthasattrtgetrootttagtDOCUMENTtDOCTYPEttexttgettCOMMENTRtAssertionErrorttypet
tag_regexptmatchtgroupstNoneRtlisttattribtitemstgrouptELEMENTtlen(tselftnodeteltt_tflagRt	namespaceRtattrstnametvalue(tElementTreeCommentType(s�/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/treewalkers/etree.pytgetNodeDetails s8	
'		"%cS`s�t|t�r$|\}}}}n|dgdf\}}}}|dkrRdS|jrk|||dfSt|�r�|j|�|dd|dfSdSdS(Nutextutaili(utextutail(RR	RRRtappend(R R!telementtkeytparentsR$((s�/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/treewalkers/etree.pyt
getFirstChildHs	
cS`s�t|t�r$|\}}}}ndS|dkrht|�ra|j|�|dd|dfSdSnc|jr�|dkr�|||dfS|t|d�dkr�|d|d|d|dfSdSdS(Nutextiutaili����i(RR	RRR+ttail(R R!R,R-R.R$((s�/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/treewalkers/etree.pytgetNextSiblingYs
 cS`s�t|t�r$|\}}}}ndS|dkrQ|s>|S|||dfSn^|j�}|sg|St|d�j|�dks�t�|t|d�j|�|dfSdS(Nutexti����i(RR	RtpopRtcountRtindex(R R!R,R-R.R$tparent((s�/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/treewalkers/etree.pyt
getParentNodems%(t__name__t
__module__t__doc__R*R/R1R6((R)(s�/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/treewalkers/etree.pyRs

(		(tCommentRRtNonRecursiveTreeWalkertlocals(tElementTreeImplementationtElementTreeR((R)s�/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/treewalkers/etree.pytgetETreeBuildersn(t
__future__RRRtcollectionsRtretpip._vendor.sixRtRt_utilsRtcompileRR?tgetETreeModule(((s�/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/treewalkers/etree.pyt<module>s	u

?>