AlkantarClanX12

Your IP : 18.221.12.61


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.pyo

�
��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
j|j�}|r|j�\}}nd}|j}t�}xmt|jj��D]V\}	}
t
j|	�}|rz|
||jd	�|jd
�f<q4|
|d|	f<q4Wtj|||t|�p�|j
fSdS(
Nutextutailutagu
DOCUMENT_ROOTuDOCUMENT_FRAGMENTu
<!DOCTYPE>upublicIdusystemIdii(utextutail(u
DOCUMENT_ROOTuDOCUMENT_FRAGMENT(t
isinstancettupleRtTEXTtgetattrthasattrtgetrootttagtDOCUMENTtDOCTYPEttexttgettCOMMENTt
tag_regexptmatchtgroupstNoneRtlisttattribtitemstgrouptELEMENTtlen(tselftnodeteltt_tflagRt	namespaceRtattrstnametvalue(tElementTreeCommentType(sJ/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treewalkers/etree.pytgetNodeDetails's6	
		"%cS`s�t|t�r$|\}}}}n|dgdf\}}}}|dkrRdS|jrk|||dfSt|�r�|j|�|dd|dfSdSdS(Nutextutaili(utextutail(RR	RRRtappend(RRtelementtkeytparentsR"((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(RRR*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|||dfSn9|j�}|sg|S|t|d�j|�|dfSdS(Nutexti����(RR	RtpopRtindex(RRR*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-R/R3((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