XylotrechusZ
U
��.e�8 � @ s� d dl mZmZmZ d dlmZ ddlmZmZm Z dZ
ee�dfeeee d dfg�B �dfeeee d d fe d d
fg�B �dfee d dfe d dfg�dfee d dfe d d
fg�dfd�Z
G dd� de�ZG dd� de�ZG dd� de�ZdS )� )�absolute_import�division�unicode_literals)� text_type� )�scopingElements�tableInsertModeElements�
namespacesNF�html�buttonZolZul�table�optgroup�optionT)Nr �listr Zselectc @ sb e Zd ZdZdd� Zdd� Zdd� Zdd � Zddd�Zd
d� Z dd� Z
dd� Zdd� Zdd� Z
d
S )�NodezRepresents an item in the treec C s( || _ d| _d| _i | _g | _g | _dS )zRCreates a Node
:arg name: The tag name associated with the node
N)�name�parent�value�
attributes�
childNodesZ_flags)�selfr � r �J/usr/lib/python3.8/site-packages/pip/_vendor/html5lib/treebuilders/base.py�__init__ s z
Node.__init__c C s: d� dd� | j�� D ��}|r,d| j|f S d| j S d S )N� c S s g | ]\}}d ||f �qS )z%s="%s"r )�.0r r r r r �
<listcomp>. s �z Node.__str__.<locals>.<listcomp>z<%s %s>�<%s>)�joinr �itemsr )r Z
attributesStrr r r �__str__- s
�zNode.__str__c C s
d| j S )Nr )r �r r r r �__repr__6 s z
Node.__repr__c C s t �dS )z[Insert node as a child of the current node
:arg node: the node to insert
N��NotImplementedError�r �noder r r �appendChild9 s zNode.appendChildNc C s t �dS )aB Insert data as text in the current node, positioned before the
start of node insertBefore or to the end of the node's text.
:arg data: the data to insert
:arg insertBefore: True if you want to insert the text before the node
and False if you want to insert it after the node
Nr# )r �data�insertBeforer r r �
insertTextA s
zNode.insertTextc C s t �dS )a Insert node as a child of the current node, before refNode in the
list of child nodes. Raises ValueError if refNode is not a child of
the current node
:arg node: the node to insert
:arg refNode: the child node to insert the node before
Nr# )r r&