3
\�2 � @ s� d Z ddlZddlZddlZddlmZ dddgZG dd� d�ZG d d� d�Z d
d� Z
G dd� de�ZG d
d� de�Z
G dd� d�Z[G dd� d�ZG dd� d�Z[G dd� d�ZdS )z4Implementation of the DOM Level 3 'LS-Load' feature.� N)�
NodeFilter�
DOMBuilder�DOMEntityResolver�DOMInputSourcec @ s\ e Zd ZdZdZdZdZdZdZdZ dZ
dZdZdZ
dZdZdZdZdZdZdZdZdZdS )�Optionsz�Features object that has variables set for each DOMBuilder feature.
The DOMBuilder class uses an instance of this class to pass settings to
the ExpatBuilder class.
� TFN)�__name__�
__module__�__qualname__�__doc__�
namespaces�namespace_declarations�
validation�external_parameter_entities�external_general_entitiesZexternal_dtd_subset�validate_if_schemaZvalidate�datatype_normalization�create_entity_ref_nodes�entities�whitespace_in_element_content�cdata_sections�comments�charset_overrides_xml_encoding�infoset�supported_mediatypes_only�errorHandler�filter� r r �*/usr/lib64/python3.6/xml/dom/xmlbuilder.pyr
s( r c 5 @ sV e Zd ZdZdZdZdZdZdZdZ eeee fZ
dd� Zdd � Zd
d� Z
dd
� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zd4d5gd6d7gd8d9gd:d;gdd?gd@dAgdBdCgdDdEgdFdGgdHdIdJgdKdLgdMdNgdOdPgdQdRgdSdTgdUdVgdWdXgdYdZgd[d\gd]g d^d_d`dadbdcdddedfdgg dhdigdjdkgdldmgiZd*d+� Zd,d-� Zd.d/� Zd0d1� Zd2d3� ZdS )nr Nr � � � c C s t � | _d S )N)r �_options)�selfr r r �__init__: s zDOMBuilder.__init__c C s | j S )N)�entityResolver)r# r r r �_get_entityResolver= s zDOMBuilder._get_entityResolverc C s
|| _ d S )N)r% )r# r% r r r �_set_entityResolver? s zDOMBuilder._set_entityResolverc C s | j S )N)r )r# r r r �_get_errorHandlerB s zDOMBuilder._get_errorHandlerc C s
|| _ d S )N)r )r# r r r r �_set_errorHandlerD s zDOMBuilder._set_errorHandlerc C s | j S )N)r )r# r r r �_get_filterG s zDOMBuilder._get_filterc C s
|| _ d S )N)r )r# r r r r �_set_filterI s zDOMBuilder._set_filterc
C s� | j |�rv|rdpd}y| jt|�|f }W n& tk
rR tjjd|f ��Y q�X x4|D ]\}}t| j||� qZW ntjj dt
|� ��d S )Nr r zunsupported feature: %rzunknown feature: )�supportsFeature� _settings�_name_xform�KeyError�xml�dom�NotSupportedErr�setattrr" �NotFoundErr�repr)r# �name�stateZsettings�valuer r r �
setFeatureL s
zDOMBuilder.setFeaturec C s t | jt|��S )N)�hasattrr" r. )r# r6 r r r r, Z s zDOMBuilder.supportsFeaturec C s t |�|rdpdf}|| jkS )Nr r )r. r- )r# r6 r7 �keyr r r �
canSetFeature] s zDOMBuilder.canSetFeaturer
r r r r r r r r r r r r r r r c C s� t |�}yt| j|�S tk
r� |dkrj| j}|joh|joh|joh|joh|jpf|j pf|j
pf|jpf|j S t
jjdt|� ��Y nX d S )Nr zfeature %s not known)r. �getattrr" �AttributeErrorr r r r r
r r r r r0 r1 r4 r5 )r# r6 Zxname�optionsr r r �
getFeature� s zDOMBuilder.getFeaturec C s. | j r| j jd |�}nt� jd |�}| j|�S )N)r% �
resolveEntityr �parse)r# �uri�inputr r r �parseURI� s zDOMBuilder.parseURIc C sR t j | j�}| j|_| j|_|j}|d krF|jrFdd l}|jj|j�}| j ||�S )Nr )
�copyr" r r �
byteStream�systemId�urllib.request�requestZurlopen�_parse_bytestream)r# rD r? �fp�urllibr r r rB � s zDOMBuilder.parsec C s || j krtd��td��d S )Nznot a legal actionzHaven't written this yet...)�_legal_actions�
ValueError�NotImplementedError)r# rD Zcnode�actionr r r �parseWithContext� s
zDOMBuilder.parseWithContextc C s dd l }|jjj|�}|j|�S )Nr )Zxml.dom.expatbuilderr1 ZexpatbuilderZmakeBuilderZ parseFile)r# �streamr? r0 Zbuilderr r r rK � s zDOMBuilder._parse_bytestream)r
r )r
r )r
r )r
r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r
r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r )r r r
r% r r ZACTION_REPLACEZACTION_APPEND_AS_CHILDRENZACTION_INSERT_AFTERZACTION_INSERT_BEFORErN r$ r&