comparison bin/effecteval @ 1103:771f50f19b4b

single-line effect code now evals by changing <uri> into a suitable python object Ignore-this: cde829f021be54bc7cfd63bddde43aa9
author Drew Perttula <drewp@bigasterisk.com>
date Mon, 09 Jun 2014 07:10:39 +0000
parents 3074f635ee23
children 512381de45bd
comparison
equal deleted inserted replaced
1102:d588211a0b4e 1103:771f50f19b4b
51 graph.patch(Patch(addQuads=[ 51 graph.patch(Patch(addQuads=[
52 (song, L9['curve'], curve, ctx), 52 (song, L9['curve'], curve, ctx),
53 (song, L9['effect'], effect, ctx), 53 (song, L9['effect'], effect, ctx),
54 (effect, RDF.type, L9['Effect'], ctx), 54 (effect, RDF.type, L9['Effect'], ctx),
55 (effect, L9['code'], 55 (effect, L9['code'],
56 Literal('out = sub(%s, intensity=%s)' % (dropped.n3(), curve.n3())), 56 Literal('out = %s * %s' % (dropped.n3(), curve.n3())),
57 ctx), 57 ctx),
58 ])) 58 ]))
59 59
60 60
61 class SongEffectsUpdates(cyclone.websocket.WebSocketHandler): 61 class SongEffectsUpdates(cyclone.websocket.WebSocketHandler):
100 100
101 class Code(PrettyErrorHandler, cyclone.web.RequestHandler): 101 class Code(PrettyErrorHandler, cyclone.web.RequestHandler):
102 def put(self): 102 def put(self):
103 effect = URIRef(self.get_argument('uri')) 103 effect = URIRef(self.get_argument('uri'))
104 code = Literal(self.get_argument('code')) 104 code = Literal(self.get_argument('code'))
105 with self.settings.graph.currentState(tripleFilter=(None, L9['effect'], effect)) as g: 105 with self.settings.graph.currentState(
106 tripleFilter=(None, L9['effect'], effect)) as g:
106 song = g.subjects(L9['effect'], effect).next() 107 song = g.subjects(L9['effect'], effect).next()
107 self.settings.graph.patchObject( 108 self.settings.graph.patchObject(
108 context=song, 109 context=song,
109 subject=effect, 110 subject=effect,
110 predicate=L9['code'], 111 predicate=L9['code'],
111 newObject=code) 112 newObject=code)
113 # right here we could tell if the code has a python error and return it
112 self.send_error(202) 114 self.send_error(202)
113 115
114 class EffectEval(PrettyErrorHandler, cyclone.web.RequestHandler): 116 class EffectEval(PrettyErrorHandler, cyclone.web.RequestHandler):
115 @inlineCallbacks 117 @inlineCallbacks
116 def get(self): 118 def get(self):