AlkantarClanX12

Your IP : 18.116.12.7


Current Path : /proc/self/root/lib/python2.7/site-packages/pip/_vendor/html5lib/treewalkers/
Upload File :
Current File : //proc/self/root/lib/python2.7/site-packages/pip/_vendor/html5lib/treewalkers/etree.pyc

�
��abc@`s�ddlmZmZmZyddlmZWn?ek
rqyddlmZWqrek
rmeZqrXnXddl	Z	ddl
mZddlm
Z
ddlmZe	jd	�Zd
�Zee�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(sJ/usr/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$((sJ/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treewalkers/etree.pyt
getFirstChildOs	
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$((sJ/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treewalkers/etree.pytgetNextSibling`s
 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((sJ/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treewalkers/etree.pyt
getParentNodets%(t__name__t
__module__t__doc__R*R/R1R6((R)(sJ/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treewalkers/etree.pyRs

(		(tCommentRRtNonRecursiveTreeWalkertlocals(tElementTreeImplementationtElementTreeR((R)sJ/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treewalkers/etree.pytgetETreeBuildersn(t
__future__RRRtcollectionsRtImportErrortordereddicttdicttretpip._vendor.sixRtRt_utilsRtcompileRR?tgetETreeModule(((sJ/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treewalkers/etree.pyt<module>s

	t