summaryrefslogtreecommitdiff
path: root/ricky/param/numberrange.py
diff options
context:
space:
mode:
authorpepperpepperpepper <pepper@scannerjammer.com>2015-10-08 21:15:47 -0700
committerpepperpepperpepper <pepper@scannerjammer.com>2015-10-08 21:15:47 -0700
commitb4fdde9e35bb1fdaf2d88e07b2fa00dce80d6cf6 (patch)
tree27fefddb5b691a71a6759473c4d04b1979dfcc20 /ricky/param/numberrange.py
parent65915957b1e99e979f298cdba5d30284c1b3df0f (diff)
fixing like crazy
Diffstat (limited to 'ricky/param/numberrange.py')
-rw-r--r--ricky/param/numberrange.py52
1 files changed, 32 insertions, 20 deletions
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