Mercurial > code > home > repos > light9
changeset 1674:604fbd524391
effecteval graph read optimizations
Ignore-this: 1adf7746190be77cc7f45d7144e00601
author | drewp@bigasterisk.com |
---|---|
date | Sun, 11 Jun 2017 18:58:23 +0000 |
parents | 1626e3b6f181 |
children | e2ddb3e55b84 |
files | light9/effect/effecteval.py light9/effect/sequencer.py |
diffstat | 2 files changed, 8 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/light9/effect/effecteval.py Sun Jun 11 18:58:08 2017 +0000 +++ b/light9/effect/effecteval.py Sun Jun 11 18:58:23 2017 +0000 @@ -72,11 +72,12 @@ for effect in self.graph.subjects(RDF.type, L9['Effect']): settings = [] for setting in self.graph.objects(effect, L9['setting']): + settingValues = dict(self.graph.predicate_objects(setting)) try: - d = self.graph.value(setting, L9['device']) - a = self.graph.value(setting, L9['deviceAttr']) - v = self.graph.value(setting, L9['value']) - sv = self.graph.value(setting, L9['scaledValue']) + d = settingValues.get(L9['device'], None) + a = settingValues.get(L9['deviceAttr'], None) + v = settingValues.get(L9['value'], None) + sv = settingValues.get(L9['scaledValue'], None) if not (bool(v) ^ bool(sv)): raise NotImplementedError('no value for %s' % setting) if d is None:
--- a/light9/effect/sequencer.py Sun Jun 11 18:58:08 2017 +0000 +++ b/light9/effect/sequencer.py Sun Jun 11 18:58:23 2017 +0000 @@ -84,8 +84,9 @@ graph, g.value(uri, L9['effectClass']), sharedEffectOutputs) self.baseEffectSettings = {} # {effectAttr: value} for s in g.objects(uri, L9['setting']): - ea = g.value(s, L9['effectAttr']) - self.baseEffectSettings[ea] = g.value(s, L9['value']) + settingValues = dict(g.predicate_objects(s)) + ea = settingValues[L9['effectAttr']] + self.baseEffectSettings[ea] = settingValues[L9['value']] floatVal = lambda s, p: float(g.value(s, p).toPython()) originTime = floatVal(uri, L9['originTime'])