Current File : //opt/alt/python35/lib/python3.5/site-packages/pip/_vendor/html5lib/treewalkers/etree.pyo
�
�wMVc@`s�ddlmZmZmZyddlmZWn?ek
rqyddlmZWqrek
rmeZqrXnXddl Z e j Z
ddlZddlm
Z
ddlmZddlmZejd �Zd
�Zee�ZdS(i(tabsolute_importtdivisiontunicode_literals(tOrderedDictN(t text_typei(t_basei(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|jdkr�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(tselftnodetelttkeytparentstflagRt namespaceRtattrstnametvalue(tElementTreeCommentType(sW/opt/alt/python35/lib/python3.5/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(RRtelementR!R"R#((sW/opt/alt/python35/lib/python3.5/site-packages/pip/_vendor/html5lib/treewalkers/etree.pyt
getFirstChildQs
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#((sW/opt/alt/python35/lib/python3.5/site-packages/pip/_vendor/html5lib/treewalkers/etree.pytgetNextSiblingbs
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((sW/opt/alt/python35/lib/python3.5/site-packages/pip/_vendor/html5lib/treewalkers/etree.pyt
getParentNodevs(t__name__t
__module__t__doc__R)R,R.R2((R((sW/opt/alt/python35/lib/python3.5/site-packages/pip/_vendor/html5lib/treewalkers/etree.pyRs
( (tCommentRRtNonRecursiveTreeWalkertlocals(tElementTreeImplementationtElementTreeR((R(sW/opt/alt/python35/lib/python3.5/site-packages/pip/_vendor/html5lib/treewalkers/etree.pytgetETreeBuildersm(t
__future__RRRtcollectionsRtImportErrortordereddicttdicttgettextt_tretpip._vendor.sixRtRtutilsRtcompileRR;tgetETreeModule(((sW/opt/alt/python35/lib/python3.5/site-packages/pip/_vendor/html5lib/treewalkers/etree.pyt<module>s
s