summaryrefslogtreecommitdiff
path: root/ricky/param
diff options
context:
space:
mode:
Diffstat (limited to 'ricky/param')
-rw-r--r--ricky/param/color.py43
-rw-r--r--ricky/param/multiselect.py4
-rw-r--r--ricky/param/numberrange.py52
-rw-r--r--ricky/param/param.py8
-rw-r--r--ricky/param/string.py1
-rw-r--r--ricky/param/username.py4
6 files changed, 72 insertions, 40 deletions
diff --git a/ricky/param/color.py b/ricky/param/color.py
index b331fb9..e192cba 100644
--- a/ricky/param/color.py
+++ b/ricky/param/color.py
@@ -1,30 +1,39 @@
from ricky.param.multiselect import MultiSelect
import random
+
+
class Color(MultiSelect):
def __init__(self, **kwargs):
- super(Color, self).__init__(**kwargs)
+ super(Color, self).__init__(**kwargs)
@classmethod
- def from_rgb(cls, r,g,b):
- return cls(value="rgb({},{},{})".format(r,g,b))
+ def from_rgb(cls, r, g, b):
+ return cls(value="rgb({},{},{})".format(r, g, b))
@property
def value(self):
- return super(MultiSelect, self).value_get()
+ return super(MultiSelect, self).value_get()
+
@value.setter
def value(self, value):
- self._value = value
- if not self._value is None:
- self.is_ready = 1
- self.set_by_user = 1
+ self._value = value
+ if self._value is not None:
+ self.is_ready = 1
+ self.set_by_user = 1
def randomize(self):
- weights_total = sum(map(lambda x: x["weight"], self.options())) + (255 * 255 * 255)
- choice = random.randint(0, weights_total)
- position = 0
- for elem in self.options():
- position += elem["weight"]
- if position >= choice:
- self.value = elem["value"]
- return
- self.value = "rgb({},{},{})".format( random.randint(0,255), random.randint(0,255), random.randint(0,255))
+ weights_total = sum(
+ map(lambda x: x["weight"], self.options())
+ ) + (255 * 255 * 255)
+ choice = random.randint(0, weights_total)
+ position = 0
+ for elem in self.options():
+ position += elem["weight"]
+ if position >= choice:
+ self.value = elem["value"]
+ return
+ self.value = "rgb(%s,%s,%s)" % (
+ random.randint(0, 255),
+ random.randint(0, 255),
+ random.randint(0, 255)
+ )
diff --git a/ricky/param/multiselect.py b/ricky/param/multiselect.py
index 1db22f3..ac5c9e7 100644
--- a/ricky/param/multiselect.py
+++ b/ricky/param/multiselect.py
@@ -25,6 +25,10 @@ class MultiSelect(Param):
return super(MultiSelect, self).value_get()
def value_set(self, value):
+ import sys
+ sys.stderr.write("in value set right now for some reason...\n")
+ sys.stderr.write("%s\n" % self.name)
+ sys.stderr.write("%s\n" % value)
if not any([value == i['value'] for i in self._options]) and \
value is not None:
raise ValueError
diff --git a/ricky/param/numberrange.py b/ricky/param/numberrange.py
index 37b85e3..5ecd165 100644
--- a/ricky/param/numberrange.py
+++ b/ricky/param/numberrange.py
@@ -1,27 +1,39 @@
-import sys
-from ricky.param.multiselect import MultiSelect
import random
-class NumberRange(MultiSelect):
+from ricky.param import Param
+
+
+class NumberRange(Param):
def __init__(self, **kwargs):
- super(NumberRange, self).__init__(**kwargs)
- self.range_min = kwargs['min']
- self.range_max = kwargs['max']
+ super(Param, self).__init__()
+ self.range_min = kwargs['min']
+ self.range_max = kwargs['max']
+
def randomize(self):
- weights_total = sum(map(lambda x: x["weight"], self.options())) + self.range_max - self.range_min
- choice = random.randint(0, weights_total)
- position = 0
- for elem in self.options():
- position += elem["weight"]
- if position >= choice:
- self.value = elem["value"]
- return
- self.value = random.randint(self.range_min,self.range_max)
+ weights_total = sum(
+ map(lambda x: x["weight"], self.options())
+ ) + self.range_max - self.range_min
+ choice = random.randint(0, weights_total)
+ position = 0
+ for elem in self.options():
+ position += elem["weight"]
+ if position >= choice:
+ self.value = elem["value"]
+ return
+ self.value = random.randint(self.range_min, self.range_max)
+
@property
def value(self):
- return super(MultiSelect, self).value_get()
+ return super(Param, self).value_get()
+
@value.setter
def value(self, value):
- self._value = value
- if not self._value is None:
- self.is_ready = 1
- self.set_by_user = 1
+ self._value = value
+ if self._value < self.range_min or self._value > self.range_max:
+ raise ValueError(
+ "Value must be between %s and %s\n" % (
+ self.range_min, self.range_max
+ )
+ )
+ if self._value is not None:
+ self.is_ready = 1
+ self.set_by_user = 1
diff --git a/ricky/param/param.py b/ricky/param/param.py
index 838da6b..0d1739f 100644
--- a/ricky/param/param.py
+++ b/ricky/param/param.py
@@ -26,7 +26,13 @@ class Param(object):
def value_set(self, value):
self._value = value
- sys.stderr.write("trying to set %s: %s \n" % (self.name, value))
+ sys.stderr.write("trying to set %s - %s: %s \n" %
+ (
+ self.__class__.__name__,
+ self.name,
+ value
+ )
+ )
if self._value:
self.is_ready = 1
self.set_by_user = 1
diff --git a/ricky/param/string.py b/ricky/param/string.py
index 10e289a..ba1fc26 100644
--- a/ricky/param/string.py
+++ b/ricky/param/string.py
@@ -1,4 +1,5 @@
from ricky.param import Param
+
class String(Param):
def __init__(self, **kwargs):
super(String, self).__init__(**kwargs)
diff --git a/ricky/param/username.py b/ricky/param/username.py
index e5023ec..cc00f60 100644
--- a/ricky/param/username.py
+++ b/ricky/param/username.py
@@ -3,5 +3,5 @@ from ricky.param.string import String
class Username(String):
def __init__(self, **kwargs):
- super(Username, self).__init__(**kwargs)
- self.default(USERNAME)
+ super(Username, self).__init__(**kwargs)
+ self.default(USERNAME)