Mercurial > code > home > repos > homeauto
diff lib/patchablegraph.py @ 298:8d89da1915df
sse_collector now kind of gets concurrent requests right
Ignore-this: e1a104d9ae81473b86fc12fbb8ac097b
author | drewp@bigasterisk.com |
---|---|
date | Fri, 19 Aug 2016 22:37:01 -0700 |
parents | 4ebb5cc30002 |
children | a94f2a522d41 |
line wrap: on
line diff
--- a/lib/patchablegraph.py Fri Aug 19 10:59:39 2016 -0700 +++ b/lib/patchablegraph.py Fri Aug 19 22:37:01 2016 -0700 @@ -26,7 +26,9 @@ from light9.rdfdb.grapheditapi import GraphEditApi from rdflib import ConjunctiveGraph from light9.rdfdb.rdflibpatch import patchQuads +from light9.rdfdb.patch import Patch from rdflib_jsonld.serializer import from_rdf +from rdflib.parser import StringInputSource from cycloneerr import PrettyErrorHandler log = logging.getLogger('patchablegraph') @@ -51,11 +53,21 @@ #g.store.add((s,p,o), c) # no effect on nquad output return g -def patchAsJson(p): +def jsonFromPatch(p): return json.dumps({'patch': { 'adds': from_rdf(_graphFromQuads2(p.addQuads)), 'deletes': from_rdf(_graphFromQuads2(p.delQuads)), }}) +patchAsJson = jsonFromPatch # deprecated name + + +def patchFromJson(j): + body = json.loads(j)['patch'] + a = ConjunctiveGraph() + a.parse(StringInputSource(json.dumps(body['adds'])), format='json-ld') + d = ConjunctiveGraph() + d.parse(StringInputSource(json.dumps(body['deletes'])), format='json-ld') + return Patch(addGraph=a, delGraph=d) def graphAsJson(g): # This is not the same as g.serialize(format='json-ld')! That