o
    V=ñ^…  ã                   @   sB   d dl mZmZmZ d dlmZ ddlmZ G dd„ dejƒZ	dS )é    )Úabsolute_importÚdivisionÚunicode_literals)ÚNodeé   )Úbasec                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
Ú
TreeWalkerc                 C   sì   |j tjkrtj|j|j|jfS |j tjtj	fv rtj
|jfS |j tjkrWi }t|j ¡ ƒD ]}| |¡}|jrB|j||j|jf< q.|j|d |jf< q.tj|j|j|| ¡ fS |j tjkrctj|jfS |j tjtjfv rptjfS tj|j fS ©N)ZnodeTyper   ZDOCUMENT_TYPE_NODEr   ZDOCTYPEÚnameZpublicIdZsystemIdZ	TEXT_NODEZCDATA_SECTION_NODEZTEXTZ	nodeValueZELEMENT_NODEÚlistZ
attributesÚkeysZgetAttributeNodeZnamespaceURIÚvalueZ	localNameZELEMENTZnodeNameZhasChildNodesZCOMMENT_NODEÚCOMMENTZDOCUMENT_NODEZDOCUMENT_FRAGMENT_NODEZDOCUMENTZUNKNOWN)ÚselfÚnodeZattrsÚattr© r   ú:/usr/lib/python3/dist-packages/html5lib/treewalkers/dom.pyÚgetNodeDetails	   s&   
ÿzTreeWalker.getNodeDetailsc                 C   ó   |j S r	   )Z
firstChild©r   r   r   r   r   ÚgetFirstChild$   ó   zTreeWalker.getFirstChildc                 C   r   r	   )ZnextSiblingr   r   r   r   ÚgetNextSibling'   r   zTreeWalker.getNextSiblingc                 C   r   r	   )Z
parentNoder   r   r   r   ÚgetParentNode*   r   zTreeWalker.getParentNodeN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r      s
    r   N)
Z
__future__r   r   r   Zxml.domr   Ú r   ZNonRecursiveTreeWalkerr   r   r   r   r   Ú<module>   s    