Mercurial > code > home > repos > light9
changeset 889:3b1a435a29b8
start fixing curvecalc data model; not done yet
Ignore-this: 9960bef2556cd57da749e921bcf3248
author | Drew Perttula <drewp@bigasterisk.com> |
---|---|
date | Sat, 08 Jun 2013 08:22:39 +0000 |
parents | cad8207933d7 |
children | a9e34719cf86 |
files | bin/curvecalc doc/subterms light9/curvecalc/subtermview.py |
diffstat | 3 files changed, 29 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/bin/curvecalc Sat Jun 08 08:21:24 2013 +0000 +++ b/bin/curvecalc Sat Jun 08 08:22:39 2013 +0000 @@ -35,6 +35,7 @@ from light9.curvecalc.output import Output from light9.gtkpyconsole import togglePyConsole from light9.rdfdb.syncedgraph import SyncedGraph +from light9.rdfdb.patch import Patch from light9.editchoicegtk import EditChoice from light9.observable import Observable @@ -157,13 +158,26 @@ self.makeSubterm(newname, withCurve=wc) dialog.hide() + def currentSong(self): + with self.graph.currentState() as current: + return current.value(self.session, L9['currentSong']) + + def songSubtermsContext(self): + return self.currentSong() + def makeSubterm(self, newname, withCurve=False, expr=None): uri = L9['sub/%s' % newname] - if (uri, RDF.type, L9.Subterm) in self.graph: - raise SubtermExists("already have a subterm named %r" % newname) - self.graph.add((uri, RDF.type, L9.Subterm)) - self.graph.add((uri, RDFS.label, Literal(newname))) - self.graph.add((self.song, L9['subterm'], uri)) + with self.graph.currentState() as current: + if (uri, RDF.type, L9.Subterm) in current: + raise SubtermExists("already have a subterm named %r" % newname) + + ctx = self.songSubtermsContext() + self.graph.patch(Patch(addQuads=[ + (uri, RDF.type, L9.Subterm, ctx), + (uri, RDFS.label, Literal(newname), ctx), + (self.currentSong(), L9['subterm'], uri, ctx), + ])) + if withCurve: self.curveset.new_curve(newname)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/subterms Sat Jun 08 08:22:39 2013 +0000 @@ -0,0 +1,8 @@ + + +song + -- :subterm --> + st + -- rdfs:label --> "chase 1" + -- :sub --> sub + -- :expression --> "curve1(t)" \ No newline at end of file
--- a/light9/curvecalc/subtermview.py Sat Jun 08 08:21:24 2013 +0000 +++ b/light9/curvecalc/subtermview.py Sat Jun 08 08:22:39 2013 +0000 @@ -1,6 +1,6 @@ import gtk, logging from louie import dispatcher -from rdflib import RDF, RDFS, Literal +from rdflib import URIRef from light9 import Submaster from light9.namespaces import L9 from light9.curvecalc.subterm import Subterm, Subexpr @@ -58,6 +58,7 @@ self.exprView = sev.box def add_one_subterm(graph, subUri, curveset, subterms, master, expr=None, show=False): + assert isinstance(subUri, URIRef), subUri subname = graph.label(subUri) log.info("%s's label is %s" % (subUri, subname)) if not subname: # fake sub, like for a chase