changeset 2299:8c82f13a3298

rm or repair dead code (notes could come back)
author drewp@bigasterisk.com
date Tue, 30 May 2023 23:50:42 -0700
parents 63aad60fb070
children 92d97e17ca31
files light9/effect/sequencer/note.py light9/effect/sequencer/note_test.py light9/effect/sequencer/sequencer.py light9/effect/simple_outputs.py light9/effect/simple_outputs_test.py
diffstat 4 files changed, 8 insertions(+), 76 deletions(-) [+]
line wrap: on
line diff
--- a/light9/effect/sequencer/note.py	Tue May 30 23:48:42 2023 -0700
+++ b/light9/effect/sequencer/note.py	Tue May 30 23:50:42 2023 -0700
@@ -11,7 +11,7 @@
 
 from light9.effect.settings import BareEffectSettings
 from light9.namespaces import L9
-from light9.newtypes import (Curve, EffectAttr, EffectClass, NoteUri, VTUnion)
+from light9.newtypes import (Curve, EffectAttr, NoteUri, VTUnion)
 
 log = logging.getLogger('sequencer')
 
--- a/light9/effect/sequencer/note_test.py	Tue May 30 23:48:42 2023 -0700
+++ b/light9/effect/sequencer/note_test.py	Tue May 30 23:50:42 2023 -0700
@@ -25,14 +25,14 @@
 '''
 
 
-class TestUntimedFaderNote:
+# class TestUntimedFaderNote:
 
-    def test_returnsEffectSettings(self):
-        g = MockSyncedGraph(FADER_GRAPH)
-        n = Note(g, NoteUri(L9['fade1']), timed=False)
-        out, report = n.outputCurrent()
-        assert report['effectSettings'] == {'http://light9.bigasterisk.com/strength': 0.6}
-        assert out == BareEffectSettings(s={EffectAttr(L9['strength']): 0.6})
+#     def test_returnsEffectSettings(self):
+#         g = MockSyncedGraph(FADER_GRAPH)
+#         n = Note(g, NoteUri(L9['fade1']), timed=False)
+#         out, report = n.outputCurrent()
+#         assert report['effectSettings'] == {'http://light9.bigasterisk.com/strength': 0.6}
+#         assert out == BareEffectSettings(s={EffectAttr(L9['strength']): 0.6})
 
 
 NOTE_GRAPH = PREFIXES + '''
--- a/light9/effect/sequencer/sequencer.py	Tue May 30 23:48:42 2023 -0700
+++ b/light9/effect/sequencer/sequencer.py	Tue May 30 23:50:42 2023 -0700
@@ -20,7 +20,6 @@
 from light9.effect import effecteval
 from light9.effect.sequencer import Note
 from light9.effect.settings import DeviceSettings
-from light9.effect.simple_outputs import SimpleOutputs
 from light9.metrics import metrics
 from light9.namespaces import L9, RDF
 from light9.newtypes import NoteUri, Song
--- a/light9/effect/simple_outputs.py	Tue May 30 23:48:42 2023 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-import logging
-import traceback
-from typing import Any, Dict, List, Tuple, cast
-from light9.newtypes import DeviceAttr, DeviceUri, EffectUri, VTUnion
-from light9.typedgraph import typedValue
-
-from rdflib import URIRef
-
-from light9.effect.scale import scale
-from light9.namespaces import L9, RDF
-
-log = logging.getLogger('simple')
-
-
-class SimpleOutputs:
-    """
-    Watches graph for effects that are just fading output attrs.
-    Call `values` to get (dev,attr):value settings.
-
-    The alternative to 'simple' is 'custom code' (see effecteval.py)
-    """
-
-    def __init__(self, graph):
-        self.graph = graph
-
-        # effect : [(dev, attr, value, isScaled)]
-        self.effectOutputs: Dict[EffectUri, List[Tuple[DeviceUri, DeviceAttr, VTUnion, bool]]] = {}
-
-        self.graph.addHandler(self.updateEffectsFromGraph)
-
-    def updateEffectsFromGraph(self):
-        self.effectOutputs.clear()
-        for effect in self.graph.subjects(RDF.type, L9['Effect']):
-            log.debug(f' {effect=}')
-            settings:List[Tuple[DeviceUri, DeviceAttr, VTUnion, bool]] = []
-            for setting in self.graph.objects(effect, L9['setting']):
-                try:
-                    d = typedValue(DeviceUri, self.graph, setting, L9['device'])
-                    a = typedValue(DeviceAttr, self.graph, setting, L9['deviceAttr'])
-                    v = typedValue(VTUnion | None, self.graph, setting, L9['value'])
-                    sv = typedValue(VTUnion|None, self.graph, setting, L9['scaledValue'])
-                    if not (bool(v) ^ bool(sv)):
-                        raise NotImplementedError('no value for %s' % setting)
-                    if d is None:
-                        raise TypeError('no device on %s' % effect)
-                    if a is None:
-                        raise TypeError('no attr on %s' % effect)
-                except Exception:
-                    traceback.print_exc()
-                    continue
-
-                settingValue = cast(VTUnion, v if v is not None else sv)
-                settings.append((d, a, settingValue, bool(sv)))
-                log.debug(f'   effect {effect} has {settings=}')
-            if settings:
-                self.effectOutputs[effect] = settings
-            # also have to read eff :effectAttr [ :tint x; :tintStrength y ]
-
-    def values(self, effect, strength, colorScale):
-        out = {}
-        for dev, devAttr, value, isScaled in self.effectOutputs.get(effect, []):
-            if isScaled:
-                value = scale(value, strength)
-            if colorScale is not None and devAttr == L9['color']:
-                value = scale(value, colorScale)
-            out[(dev, devAttr)] = value
-        return out