<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
PfK              	   @   s   d dl mZmZmZ d dlmZ ddlmZmZm	Z	 ddddd	d
dddg	Z
ejZejZejZejZejZejZdZdje	Z	G dd deZG dd deZdS )    )absolute_importdivisionunicode_literals)Node   )
namespacesvoidElementsspaceCharactersDOCUMENTDOCTYPETEXTELEMENTCOMMENTENTITYUNKNOWN
TreeWalkerNonRecursiveTreeWalkerz<#UNKNOWN#> c               @   sh   e Zd Zdd Zdd Zdd Zddd	Zd
d Zdd Zdd Z	dd Z
dddZdd Zdd ZdS )r   c             C   s
   || _ d S )N)tree)selfr    r   /usr/lib/python3.6/base.py__init__   s    zTreeWalker.__init__c             C   s   t d S )N)NotImplementedError)r   r   r   r   __iter__   s    zTreeWalker.__iter__c             C   s
   d|dS )NZSerializeError)typedatar   )r   msgr   r   r   error   s    zTreeWalker.errorFc             c   s$   d|||dV  |r | j dV  d S )NZEmptyTag)r   name	namespacer   zVoid element has children)r   )r   r    r   attrshasChildrenr   r   r   emptyTag   s
    
zTreeWalker.emptyTagc             C   s   d|||dS )NZStartTag)r   r   r    r   r   )r   r    r   r!   r   r   r   startTag%   s    zTreeWalker.startTagc             C   s   d||dS )NZEndTag)r   r   r    r   )r   r    r   r   r   r   endTag+   s    zTreeWalker.endTagc             c   sx   |}|j t}|d t|t|  }|r6d|dV  |}|jt}|t|d  }|rdd|dV  |rtd|dV  d S )NZSpaceCharacters)r   r   Z
Characters)lstripr	   lenrstrip)r   r   Zmiddleleftrightr   r   r   text0   s    

zTreeWalker.textc             C   s
   d|dS )NComment)r   r   r   )r   r   r   r   r   comment>   s    zTreeWalker.commentNc             C   s   d|||dS )NZDoctype)r   r   publicIdsystemIdr   )r   r   r.   r/   r   r   r   doctypeA   s    zTreeWalker.doctypec             C   s
   d|dS )NZEntity)r   r   r   )r   r   r   r   r   entityG   s    zTreeWalker.entityc             C   s   | j d| S )NzUnknown node type: )r   )r   ZnodeTyper   r   r   unknownJ   s    zTreeWalker.unknown)F)NN)__name__
__module____qualname__r   r   r   r#   r$   r%   r+   r-   r0   r1   r2   r   r   r   r   r      s   

c               @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )r   c             C   s   t d S )N)r   )r   noder   r   r   getNodeDetailsO   s    z%NonRecursiveTreeWalker.getNodeDetailsc             C   s   t d S )N)r   )r   r6   r   r   r   getFirstChildR   s    z$NonRecursiveTreeWalker.getFirstChildc             C   s   t d S )N)r   )r   r6   r   r   r   getNextSiblingU   s    z%NonRecursiveTreeWalker.getNextSiblingc             C   s   t d S )N)r   )r   r6   r   r   r   getParentNodeX   s    z$NonRecursiveTreeWalker.getParentNodec             c   s  | j }x|d k	r| j|}|d |dd   }}d}|tkrN| j| V  n|tkrrx| j| D ]
}|V  qbW n|tkr|\}}}}| s|td kr|tkrx| j	||||D ]
}|V  qW d}n| j
|||V  nV|tkr| j|d V  n<|tkr| j|d V  n |tkrd}n| j|d V  |r@| j|}	nd }	|	d k	rT|	}q
x|d k	r| j|}|d |dd   }}|tkr|\}}}}|r|td ks|tkr| j||V  | j |krd }P | j|}
|
d k	r|
}P n
| j|}qVW q
W d S )Nr      FZhtmlT)r   r7   r   r0   r   r+   r   r   r   r#   r$   r   r-   r   r1   r
   r2   r8   r%   r9   r:   )r   ZcurrentNodeZdetailsr   r"   tokenr    r   Z
attributesZ
firstChildZnextSiblingr   r   r   r   [   sZ    









zNonRecursiveTreeWalker.__iter__N)r3   r4   r5   r7   r8   r9   r:   r   r   r   r   r   r   N   s
   N)Z
__future__r   r   r   Zxml.domr   Z	constantsr   r   r	   __all__ZDOCUMENT_NODEr
   ZDOCUMENT_TYPE_NODEr   Z	TEXT_NODEr   ZELEMENT_NODEr   ZCOMMENT_NODEr   ZENTITY_NODEr   r   joinobjectr   r   r   r   r   r   <module>   s   
: