Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/creactistore/_templates/lib/rdflib/plugins/serializers/nquads.py
diff options
context:
space:
mode:
Diffstat (limited to 'creactistore/_templates/lib/rdflib/plugins/serializers/nquads.py')
-rw-r--r--creactistore/_templates/lib/rdflib/plugins/serializers/nquads.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/creactistore/_templates/lib/rdflib/plugins/serializers/nquads.py b/creactistore/_templates/lib/rdflib/plugins/serializers/nquads.py
new file mode 100644
index 0000000..29e0dff
--- /dev/null
+++ b/creactistore/_templates/lib/rdflib/plugins/serializers/nquads.py
@@ -0,0 +1,34 @@
+import warnings
+
+from rdflib.serializer import Serializer
+from rdflib.py3compat import b
+
+from rdflib.plugins.serializers.nt import _xmlcharref_encode
+
+__all__ = ['NQuadsSerializer']
+
+class NQuadsSerializer(Serializer):
+
+ def __init__(self, store):
+ if not store.context_aware:
+ raise Exception("NQuads serialization only makes sense for context-aware stores!")
+
+ super(NQuadsSerializer, self).__init__(store)
+
+ def serialize(self, stream, base=None, encoding=None, **args):
+ if base is not None:
+ warnings.warn("NQuadsSerializer does not support base.")
+ if encoding is not None:
+ warnings.warn("NQuadsSerializer does not use custom encoding.")
+ encoding = self.encoding
+ for context in self.store.contexts():
+ for triple in context:
+ stream.write(_nq_row(triple, context.identifier).encode(encoding, "replace"))
+ stream.write(b("\n"))
+
+def _nq_row(triple,context):
+ return u"%s %s %s %s .\n" % (triple[0].n3(),
+ triple[1].n3(),
+ _xmlcharref_encode(triple[2].n3()),
+ context.n3())
+