3 BuÆ_…ã@sBddlmZmZmZddlmZddlmZGdd„dejƒZ dS)é)Úabsolute_importÚdivisionÚunicode_literals)ÚNodeé)Úbasec@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú TreeWalkercCsô|jtjkr tj|j|j|jfS|jtjtj fkr>tj |j fS|jtj kr²i}xJt |jjƒƒD]8}|j|ƒ}|jr†|j||j|jf<q^|j|d|jf<q^Wtj|j|j||jƒfS|jtjkrÊtj|j fS|jtjtjfkrätjfStj|jfSdS)N)ZnodeTyperZDOCUMENT_TYPE_NODErZDOCTYPEÚnameÚpublicIdÚsystemIdZ TEXT_NODEZCDATA_SECTION_NODEZTEXTZ nodeValueZ ELEMENT_NODEÚlistÚ attributesÚkeysZgetAttributeNodeZ namespaceURIÚvalueZ localNameZELEMENTÚnodeNameZ hasChildNodesZ COMMENT_NODEÚCOMMENTZ DOCUMENT_NODEZDOCUMENT_FRAGMENT_NODEZDOCUMENTÚUNKNOWN)ÚselfÚnodeÚattrsÚattr©rú“/builddir/build/BUILDROOT/alt-python36-pip-20.2.4-1.el7.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/html5lib/treewalkers/dom.pyÚgetNodeDetails s$        zTreeWalker.getNodeDetailscCs|jS)N)Z firstChild)rrrrrÚ getFirstChild$szTreeWalker.getFirstChildcCs|jS)N)Z nextSibling)rrrrrÚgetNextSibling'szTreeWalker.getNextSiblingcCs|jS)N)Z parentNode)rrrrrÚ getParentNode*szTreeWalker.getParentNodeN)Ú__name__Ú __module__Ú __qualname__rrrrrrrrrsrN) Ú __future__rrrÚxml.domrÚrZNonRecursiveTreeWalkerrrrrrÚs