U ÀÒ.e…ã@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}t |j ¡ƒD]8}| |¡}|jr„|j||j|jf<q\|j|d|jf<q\tj|j|j|| ¡fS|jtjkrÆtj|j fS|jtjtjfkràtjfStj|jfSdS©N)ZnodeTyperZDOCUMENT_TYPE_NODErZDOCTYPEÚnameZpublicIdZsystemIdZ TEXT_NODEZCDATA_SECTION_NODEZTEXTZ nodeValueZ ELEMENT_NODEÚlistZ attributesÚkeysZgetAttributeNodeZ namespaceURIÚvalueZ localNameZELEMENTZnodeNameZ hasChildNodesZ COMMENT_NODEÚCOMMENTZ DOCUMENT_NODEZDOCUMENT_FRAGMENT_NODEZDOCUMENTZUNKNOWN)ÚselfÚnodeZattrsÚattr©rúH/usr/lib/python3.8/site-packages/pip/_vendor/html5lib/treewalkers/dom.pyÚgetNodeDetails s(     ÿ  zTreeWalker.getNodeDetailscCs|jSr )Z firstChild©rrrrrÚ getFirstChild$szTreeWalker.getFirstChildcCs|jSr )Z nextSiblingrrrrÚgetNextSibling'szTreeWalker.getNextSiblingcCs|jSr )Z parentNoderrrrÚ getParentNode*szTreeWalker.getParentNodeN)Ú__name__Ú __module__Ú __qualname__rrrrrrrrrsrN) Z __future__rrrZxml.domrÚrZNonRecursiveTreeWalkerrrrrrÚs