diff env/lib/python3.7/site-packages/rdflib/plugins/serializers/xmlwriter.py @ 5:9b1c78e6ba9c draft default tip

"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author shellac
date Mon, 01 Jun 2020 08:59:25 -0400 (2020-06-01)
parents 79f47841a781
children
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/rdflib/plugins/serializers/xmlwriter.py	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-import codecs
-from xml.sax.saxutils import quoteattr, escape
-
-__all__ = ['XMLWriter']
-
-ESCAPE_ENTITIES = {
-    '\r': '
'
-}
-
-
-class XMLWriter(object):
-    def __init__(self, stream, namespace_manager, encoding=None,
-                 decl=1, extra_ns=None):
-        encoding = encoding or 'utf-8'
-        encoder, decoder, stream_reader, stream_writer = \
-            codecs.lookup(encoding)
-        self.stream = stream = stream_writer(stream)
-        if decl:
-            stream.write('<?xml version="1.0" encoding="%s"?>' % encoding)
-        self.element_stack = []
-        self.nm = namespace_manager
-        self.extra_ns = extra_ns or {}
-        self.closed = True
-
-    def __get_indent(self):
-        return "  " * len(self.element_stack)
-    indent = property(__get_indent)
-
-    def __close_start_tag(self):
-        if not self.closed:  # TODO:
-            self.closed = True
-            self.stream.write(">")
-
-    def push(self, uri):
-        self.__close_start_tag()
-        write = self.stream.write
-        write("\n")
-        write(self.indent)
-        write("<%s" % self.qname(uri))
-        self.element_stack.append(uri)
-        self.closed = False
-        self.parent = False
-
-    def pop(self, uri=None):
-        top = self.element_stack.pop()
-        if uri:
-            assert uri == top
-        write = self.stream.write
-        if not self.closed:
-            self.closed = True
-            write("/>")
-        else:
-            if self.parent:
-                write("\n")
-                write(self.indent)
-            write("</%s>" % self.qname(top))
-        self.parent = True
-
-    def element(self, uri, content, attributes={}):
-        """Utility method for adding a complete simple element"""
-        self.push(uri)
-        for k, v in attributes.items():
-            self.attribute(k, v)
-        self.text(content)
-        self.pop()
-
-    def namespaces(self, namespaces=None):
-        if not namespaces:
-            namespaces = self.nm.namespaces()
-
-        write = self.stream.write
-        write("\n")
-        for prefix, namespace in namespaces:
-            if prefix:
-                write('  xmlns:%s="%s"\n' % (prefix, namespace))
-            # Allow user-provided namespace bindings to prevail
-            elif prefix not in self.extra_ns:
-                write('  xmlns="%s"\n' % namespace)
-
-        for prefix, namespace in list(self.extra_ns.items()):
-            if prefix:
-                write('  xmlns:%s="%s"\n' % (prefix, namespace))
-            else:
-                write('  xmlns="%s"\n' % namespace)
-
-    def attribute(self, uri, value):
-        write = self.stream.write
-        write(" %s=%s" % (self.qname(uri), quoteattr(value)))
-
-    def text(self, text):
-        self.__close_start_tag()
-        if "<" in text and ">" in text and not "]]>" in text:
-            self.stream.write("<![CDATA[")
-            self.stream.write(text)
-            self.stream.write("]]>")
-        else:
-            self.stream.write(escape(text, ESCAPE_ENTITIES))
-
-    def qname(self, uri):
-        """Compute qname for a uri using our extra namespaces,
-        or the given namespace manager"""
-
-        for pre, ns in list(self.extra_ns.items()):
-            if uri.startswith(ns):
-                if pre != "":
-                    return ":".join(pre, uri[len(ns):])
-                else:
-                    return uri[len(ns):]
-
-        return self.nm.qname(uri)