MINI MINI MANI MO
3
  \                 @   s  d Z ddlmZmZmZ ddlmZmZmZ ddlm	Z	 ddl
mZmZ ddl
mZ ejZejZejZejjZejjZejjZejjZej Zejddejdd	ejdd
ejddejddejdd
ejddejddejddd	ZG dd deZdd Zdd ZG dd dZeeefZ G dd deZ!G dd deZ"G dd de"Z#G d d! d!e"Z$d"Z%d#e% Z&G d$d% d%eZ'G d&d' d'Z(G d(d) d)e(eZ)G d*d+ d+e(e'Z*G d,d- d-e+Z,G d.d/ d/eZ-d;d1d2Z.d<d3d4Z/d=d5d6Z0d>d7d8Z1d9d: Z2dS )?zFacility to use the Expat parser to load a minidom instance
from a string or file.
This avoids all the overhead of SAX and pulldom to gain performance.
    )
xmlbuilderminidomNode)EMPTY_NAMESPACEEMPTY_PREFIXXMLNS_NAMESPACE)expat)
_append_child_set_attribute_node)
NodeFilterNZcdataenumerationentityentitiesidZidrefZidrefsZnmtokenZnmtokens)	ZCDATAENUMZENTITYZENTITIESIDZIDREFZIDREFSZNMTOKENZNMTOKENSc               @   sZ   e Zd ZdZdddZdd Zd	d
 Zdd Zd
d Zdd Z	dd Z
dd Zdd ZdS )ElementInfo
_attr_info_modeltagNameNc             C   s   || _ g | _|| _d S )N)r   r   r   )selfr   model r   ,/usr/lib64/python3.6/xml/dom/expatbuilder.py__init__?   s    zElementInfo.__init__c             C   s   | j | j| jfS )N)r   r   r   )r   r   r   r   __getstate__D   s    zElementInfo.__getstate__c             C   s   |\| _ | _| _d S )N)r   r   r   )r   stater   r   r   __setstate__G   s    zElementInfo.__setstate__c             C   sJ   xB| j D ]8}|d |kr|d }|d dkr4td S t|d  S qW tjS )N      r   (r   r!   )r   
_typeinfo_mapr   _no_type)r   anameinfotr   r   r   getAttributeTypeJ   s    zElementInfo.getAttributeTypec             C   s   t jS )N)r   r#   )r   ZnamespaceURIZ	localNamer   r   r   getAttributeTypeNST   s    zElementInfo.getAttributeTypeNSc             C   s,   | j r$| j d }|tjjtjjfkS dS d S )Nr   F)r   r   r   Z
XML_CTYPE_ANYZXML_CTYPE_MIXED)r   typer   r   r   isElementContentW   s
    
zElementInfo.isElementContentc             C   s    | j r| j d tjjkS dS d S )Nr   F)r   r   r   ZXML_CTYPE_EMPTY)r   r   r   r   isEmpty_   s    zElementInfo.isEmptyc             C   s,   x&| j D ]}|d |kr|d dkS qW dS )Nr   r   r   Fr!   )r   )r   r$   r%   r   r   r   isIde   s    zElementInfo.isIdc             C   s   | j ||fS )N)r,   )r   ZeuriZenameZaurir$   r   r   r   isIdNSk   s    zElementInfo.isIdNS)r   r   r   )N)
__name__
__module____qualname__	__slots__r   r   r   r'   r(   r*   r+   r,   r-   r   r   r   r   r   <