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&