Mercurial > code > home > repos > homeauto
annotate service/rdf_to_mqtt/rdf_over_http.py @ 1532:7cc7700302c2
more service renaming; start a lot more serv.n3 job files
Ignore-this: 635aaefc7bd2fa5558eefb8b3fc9ec75
darcs-hash:2c8b587cbefa4db427f9a82676abdb47e651187e
author | drewp <drewp@bigasterisk.com> |
---|---|
date | Thu, 06 Feb 2020 16:36:35 -0800 |
parents | |
children |
rev | line source |
---|---|
1532
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
1 from rdflib import Graph, URIRef, Literal, Namespace |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
2 from rdflib.parser import StringInputSource |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
3 |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
4 ROOM = Namespace('http://projects.bigasterisk.com/room/') |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
5 |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
6 |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
7 def rdfGraphBody(body, headers): |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
8 g = Graph() |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
9 g.parse(StringInputSource(body), format='nt') |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
10 return g |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
11 |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
12 |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
13 def expandQueryParamUri(txt) -> URIRef: |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
14 if txt.startswith(':'): |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
15 return ROOM[txt.lstrip(':')] |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
16 # etc |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
17 return URIRef(txt) |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
18 |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
19 |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
20 def rdfStatementsFromRequest(arg, body, headers): |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
21 if arg.get('s') and arg.get('p'): |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
22 subj = expandQueryParamUri(arg['s'][-1]) |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
23 pred = expandQueryParamUri(arg['p'][-1]) |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
24 turtleLiteral = body |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
25 try: |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
26 obj = Literal(float(turtleLiteral)) |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
27 except ValueError: |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
28 obj = Literal(turtleLiteral) |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
29 yield (subj, pred, obj) |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
30 else: |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
31 g = rdfGraphBody(body, headers) |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
32 assert len(g) == 1, len(g) |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
33 yield g.triples((None, None, None)).next() |
7cc7700302c2
more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
34 # could support multiple stmts |