summaryrefslogtreecommitdiff
path: root/defusedxml/expatbuilder.py
diff options
context:
space:
mode:
Diffstat (limited to 'defusedxml/expatbuilder.py')
-rw-r--r--defusedxml/expatbuilder.py47
1 files changed, 22 insertions, 25 deletions
diff --git a/defusedxml/expatbuilder.py b/defusedxml/expatbuilder.py
index ffe4f7d..ab743d2 100644
--- a/defusedxml/expatbuilder.py
+++ b/defusedxml/expatbuilder.py
@@ -10,8 +10,7 @@ from __future__ import print_function, absolute_import
from xml.dom.expatbuilder import ExpatBuilder as _ExpatBuilder
from xml.dom.expatbuilder import Namespaces as _Namespaces
-from .common import (DTDForbidden, EntitiesForbidden,
- ExternalReferenceForbidden)
+from .common import DTDForbidden, EntitiesForbidden, ExternalReferenceForbidden
__origin__ = "xml.dom.expatbuilder"
@@ -19,28 +18,27 @@ __origin__ = "xml.dom.expatbuilder"
class DefusedExpatBuilder(_ExpatBuilder):
"""Defused document builder"""
- def __init__(self, options=None, forbid_dtd=False, forbid_entities=True,
- forbid_external=True):
+ def __init__(
+ self, options=None, forbid_dtd=False, forbid_entities=True, forbid_external=True
+ ):
_ExpatBuilder.__init__(self, options)
self.forbid_dtd = forbid_dtd
self.forbid_entities = forbid_entities
self.forbid_external = forbid_external
- def defused_start_doctype_decl(self, name, sysid, pubid,
- has_internal_subset):
+ def defused_start_doctype_decl(self, name, sysid, pubid, has_internal_subset):
raise DTDForbidden(name, sysid, pubid)
- def defused_entity_decl(self, name, is_parameter_entity, value, base,
- sysid, pubid, notation_name):
+ def defused_entity_decl(
+ self, name, is_parameter_entity, value, base, sysid, pubid, notation_name
+ ):
raise EntitiesForbidden(name, value, base, sysid, pubid, notation_name)
- def defused_unparsed_entity_decl(self, name, base, sysid, pubid,
- notation_name):
+ def defused_unparsed_entity_decl(self, name, base, sysid, pubid, notation_name):
# expat 1.2
raise EntitiesForbidden(name, None, base, sysid, pubid, notation_name)
- def defused_external_entity_ref_handler(self, context, base, sysid,
- pubid):
+ def defused_external_entity_ref_handler(self, context, base, sysid, pubid):
raise ExternalReferenceForbidden(context, base, sysid, pubid)
def install(self, parser):
@@ -62,16 +60,14 @@ class DefusedExpatBuilderNS(_Namespaces, DefusedExpatBuilder):
def install(self, parser):
DefusedExpatBuilder.install(self, parser)
if self._options.namespace_declarations:
- parser.StartNamespaceDeclHandler = (
- self.start_namespace_decl_handler)
+ parser.StartNamespaceDeclHandler = self.start_namespace_decl_handler
def reset(self):
DefusedExpatBuilder.reset(self)
self._initNamespaces()
-def parse(file, namespaces=True, forbid_dtd=False, forbid_entities=True,
- forbid_external=True):
+def parse(file, namespaces=True, forbid_dtd=False, forbid_entities=True, forbid_external=True):
"""Parse a document, returning the resulting Document node.
'file' may be either a file name or an open file object.
@@ -80,12 +76,12 @@ def parse(file, namespaces=True, forbid_dtd=False, forbid_entities=True,
build_builder = DefusedExpatBuilderNS
else:
build_builder = DefusedExpatBuilder
- builder = build_builder(forbid_dtd=forbid_dtd,
- forbid_entities=forbid_entities,
- forbid_external=forbid_external)
+ builder = build_builder(
+ forbid_dtd=forbid_dtd, forbid_entities=forbid_entities, forbid_external=forbid_external
+ )
if isinstance(file, str):
- fp = open(file, 'rb')
+ fp = open(file, "rb")
try:
result = builder.parseFile(fp)
finally:
@@ -95,8 +91,9 @@ def parse(file, namespaces=True, forbid_dtd=False, forbid_entities=True,
return result
-def parseString(string, namespaces=True, forbid_dtd=False,
- forbid_entities=True, forbid_external=True):
+def parseString(
+ string, namespaces=True, forbid_dtd=False, forbid_entities=True, forbid_external=True
+):
"""Parse a document from a string, returning the resulting
Document node.
"""
@@ -104,7 +101,7 @@ def parseString(string, namespaces=True, forbid_dtd=False,
build_builder = DefusedExpatBuilderNS
else:
build_builder = DefusedExpatBuilder
- builder = build_builder(forbid_dtd=forbid_dtd,
- forbid_entities=forbid_entities,
- forbid_external=forbid_external)
+ builder = build_builder(
+ forbid_dtd=forbid_dtd, forbid_entities=forbid_entities, forbid_external=forbid_external
+ )
return builder.parseString(string)