diff options
Diffstat (limited to 'ricky')
| -rw-r--r-- | ricky/param/multiselect.py | 35 | ||||
| -rw-r--r-- | ricky/param/numberrange.py | 9 | ||||
| -rw-r--r-- | ricky/param/param.py | 46 |
3 files changed, 45 insertions, 45 deletions
diff --git a/ricky/param/multiselect.py b/ricky/param/multiselect.py index ac5c9e7..68df161 100644 --- a/ricky/param/multiselect.py +++ b/ricky/param/multiselect.py @@ -4,31 +4,12 @@ from ricky.param import Param class MultiSelect(Param): def __init__(self, **kwargs): - self._options = kwargs.get('options') or [] super(MultiSelect, self).__init__(**kwargs) - if len(self._options): - self._validate_options() - """default value is the option with the heaviest weight""" - self.default(self._choose_heaviest()) - - def options(self): - return self._options - - def _validate_options(self): - try: - int(self._options[0]['weight']) - self._options[0]['value'] - except Exception: - raise ValueError('Unable to validate %s\n:' % self.name) def value_get(self): 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 @@ -46,19 +27,3 @@ class MultiSelect(Param): self.value = elem["value"] break - def _choose_heaviest(self): - heaviest_idx = 0 - heaviest_weight = 0 - idx = 0 - if (len(self.options())): - for elem in self.options(): - if elem["weight"] > heaviest_weight: - heaviest_weight = elem["weight"] - heaviest_idx = idx - idx += 1 - return self.options()[heaviest_idx]["value"] - else: - self.randomize() - - def heaviest(self): - self.value = self._choose_heaviest() diff --git a/ricky/param/numberrange.py b/ricky/param/numberrange.py index 85314f8..30b9a6a 100644 --- a/ricky/param/numberrange.py +++ b/ricky/param/numberrange.py @@ -19,8 +19,10 @@ class NumberRange(Param): if position >= choice: self.value = elem["value"] return - self.value = random.randint(self.range_min, self.range_max) - + + val = random.randint(self.range_min, self.range_max) + self.value = val + @property def value(self): return super(NumberRange, self).value_get() @@ -28,7 +30,8 @@ class NumberRange(Param): @value.setter def value(self, value): self._value = value - if self._value < self.range_min or self._value > self.range_max: + if self._value and \ + (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 diff --git a/ricky/param/param.py b/ricky/param/param.py index 0d1739f..57c801a 100644 --- a/ricky/param/param.py +++ b/ricky/param/param.py @@ -15,6 +15,21 @@ class Param(object): self.is_ready = 0 self._value = value self.set_by_user = set_by_user + self._options = kwargs.get('options') or [] + if len(self._options): + self._validate_options() + """default value is the option with the heaviest weight""" + self.default(self._choose_heaviest()) + + def options(self): + return self._options + + def _validate_options(self): + try: + int(self._options[0]['weight']) + self._options[0]['value'] + except Exception: + raise ValueError('Unable to validate %s\n:' % self.name) def __str__(self): return pprint.pformat(vars(self)) @@ -26,13 +41,13 @@ class Param(object): def value_set(self, value): self._value = value - sys.stderr.write("trying to set %s - %s: %s \n" % - ( - self.__class__.__name__, - 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 @@ -52,3 +67,20 @@ class Param(object): def randomize(self): pass + + def _choose_heaviest(self): + heaviest_idx = 0 + heaviest_weight = 0 + idx = 0 + if (len(self.options())): + for elem in self.options(): + if elem["weight"] > heaviest_weight: + heaviest_weight = elem["weight"] + heaviest_idx = idx + idx += 1 + return self.options()[heaviest_idx]["value"] + else: + self.randomize() + + def heaviest(self): + self.value = self._choose_heaviest() |
