diff options
| author | pepperpepperpepper <pepper@scannerjammer.com> | 2015-12-05 13:54:45 -0800 |
|---|---|---|
| committer | pepperpepperpepper <pepper@scannerjammer.com> | 2015-12-05 13:54:45 -0800 |
| commit | a61bd671f9032dfba7dc7eb2fdbf4258014ec8c6 (patch) | |
| tree | 2a0f881d873ae7e80930d32a3eef5d6f37852204 | |
| parent | f8264bcb55d6f8e8ba3a0df1011df5678c542fdc (diff) | |
fixed set by user
| -rw-r--r-- | ricky/param/__init__.py | 23 | ||||
| -rw-r--r-- | ricky/param/enum.py | 5 | ||||
| -rw-r--r-- | ricky/params.py | 9 |
3 files changed, 23 insertions, 14 deletions
diff --git a/ricky/param/__init__.py b/ricky/param/__init__.py index 6573c86..70dff65 100644 --- a/ricky/param/__init__.py +++ b/ricky/param/__init__.py @@ -12,37 +12,46 @@ class Param(object): self._value_default = None self.name = name self.required = required - self.set_by_user = set_by_user self._value_default = kwargs.get("default") or None + if not hasattr(self, "set_by_user"): + self._set_by_user = set_by_user if self.value is not None and \ kwargs.get("value") is not None: self._value = kwargs.get("value") else: self._value = self._value_default or None # maybe FIXME - if not hasattr(self, "set_by_user"): - self.set_by_user = set_by_user + + def as_dict(self): + return { + 'type': self.__class__.__name__, + 'required': self.required, + 'name': self.name, + 'default': self.default, + 'value': self.value + } def __str__(self): - return pprint.pformat(vars(self)) # FIXME needs to be more explicit + return pprint.pformat(self.as_dict()) def value_get(self): - if self.set_by_user == 1: + if self._set_by_user: return self._value return self._value_default def value_set(self, value): self._value = value + self._set_by_user = True value = property(value_get, value_set) def default_set(self, value): raise ValueError("Default must be set at instantiation") - def default_get(self, value): + def default_get(self): return self._value_default - default = property(default_set, default_get) + default = property(default_get, default_set) def randomize(self): pass diff --git a/ricky/param/enum.py b/ricky/param/enum.py index 757bd29..f0adc9e 100644 --- a/ricky/param/enum.py +++ b/ricky/param/enum.py @@ -31,3 +31,8 @@ class Enum(Param): def randomize(self): self.value_set(random.choice(self._options)) + + def as_dict(self): + my_dict = super(Enum, self).as_dict() + my_dict['options'] = self._options + return my_dict diff --git a/ricky/params.py b/ricky/params.py index 5084235..f0479bb 100644 --- a/ricky/params.py +++ b/ricky/params.py @@ -16,9 +16,7 @@ class Params(object): def __str__(self): """string representation""" - return pprint.pformat( - [{param.name: param._value} for param in self._params] - ) + return pprint.pformat(self.as_dict()) def randomize(self): """assign random values to all params, taking into account weight""" @@ -41,10 +39,7 @@ class Params(object): def as_dict(self): """displays the params names and values in dictionary form""" - result = {} - for param in self._params: - result[param.name] = param.value - return result + return [param.as_dict() for param in self._params] def from_dict(self, params_dict): """set param values manually from a dictionary""" |
