changeset 230:b7095e4a6c43

curvecalc fixes: curve paths, empty function strings
author drewp@bigasterisk.com
date Sun, 05 Jun 2005 07:04:34 +0000
parents c5a79314afdf
children 2c02748847f0
files bin/curvecalc light9/Submaster.py light9/curve.py
diffstat 3 files changed, 11 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/bin/curvecalc	Sun Jun 05 07:03:32 2005 +0000
+++ b/bin/curvecalc	Sun Jun 05 07:04:34 2005 +0000
@@ -250,7 +250,11 @@
 subterms = []
 subterm_adder(root, curveset, subterms, root, ssv).pack(side='top',fill='x')
 for line in file(showconfig.subtermsForSong(song)):
-    subname,expr = line.strip().split(" ",1)
+    try:
+        subname,expr = line.strip().split(" ",1)
+    except ValueError:
+        subname = line.strip()
+        expr = ""
 
     term = add_one_subterm(subname, curveset, subterms, root, ssv, expr)
     
@@ -262,7 +266,7 @@
 def savekey(*args):
     print "saving",song
     savesubterms(showconfig.subtermsForSong(song),subterms)
-    curveset.save(basename="curves/"+song)
+    curveset.save(basename=os.path.join(showconfig.curvesDir(),song))
     print "saved"
 
     
@@ -283,7 +287,7 @@
     d.addErrback(updateerr)
 def updateerr(e):
     global later
-    print "err",e
+    print "Update error",e
     if later and not later.cancelled and not later.called: later.cancel()
     later = reactor.callLater(1,update)
 def update2(t):
--- a/light9/Submaster.py	Sun Jun 05 07:03:32 2005 +0000
+++ b/light9/Submaster.py	Sun Jun 05 07:04:34 2005 +0000
@@ -54,8 +54,8 @@
         self.save()
     def get_levels(self):
         return self.levels
-    def all_zeros(self):
-        return not (max(self.levels.values()) > 0)
+    def no_nonzero(self):
+        return (not self.levels.values()) or not (max(self.levels.values()) > 0)
     def __mul__(self, scalar):
         return Submaster("%s*%s" % (self.name, scalar), 
             dict_scale(self.levels, scalar), temporary=1)
@@ -118,7 +118,7 @@
     return level
 
 def sub_maxes(*subs):
-    nonzero_subs = [s for s in subs if not s.all_zeros()]
+    nonzero_subs = [s for s in subs if not s.no_nonzero()]
     name = "max(%s)" % ", ".join([repr(s) for s in nonzero_subs])
     return Submaster(name,
                      dict_max(*[sub.levels for sub in nonzero_subs]),
--- a/light9/curve.py	Sun Jun 05 07:03:32 2005 +0000
+++ b/light9/curve.py	Sun Jun 05 07:04:34 2005 +0000
@@ -246,7 +246,7 @@
         """find all files that look like basename-curvename and add
         curves with their contents"""
         for filename in glob.glob("%s-*"%basename):
-            curvename = filename[filename.find('-')+1:]
+            curvename = filename[filename.rfind('-')+1:]
             c=Curve()
             c.load(filename)
             curvename = curvename.replace('-','_')