Mercurial > repos > guerler > springsuite
diff planemo/lib/python3.7/site-packages/rdflib/plugins/serializers/nquads.py @ 1:56ad4e20f292 draft
"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
author | guerler |
---|---|
date | Fri, 31 Jul 2020 00:32:28 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/planemo/lib/python3.7/site-packages/rdflib/plugins/serializers/nquads.py Fri Jul 31 00:32:28 2020 -0400 @@ -0,0 +1,45 @@ +import warnings + +from rdflib.term import Literal +from rdflib.serializer import Serializer +from rdflib.py3compat import b + +from rdflib.plugins.serializers.nt import _quoteLiteral + +__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): + if isinstance(triple[2], Literal): + return "%s %s %s %s .\n" % (triple[0].n3(), + triple[1].n3(), + _quoteLiteral(triple[2]), + context.n3()) + else: + return "%s %s %s %s .\n" % (triple[0].n3(), + triple[1].n3(), + triple[2].n3(), + context.n3())