From a61bd671f9032dfba7dc7eb2fdbf4258014ec8c6 Mon Sep 17 00:00:00 2001 From: pepperpepperpepper Date: Sat, 5 Dec 2015 13:54:45 -0800 Subject: fixed set by user --- ricky/param/__init__.py | 23 ++++++++++++++++------- ricky/param/enum.py | 5 +++++ 2 files changed, 21 insertions(+), 7 deletions(-) (limited to 'ricky/param') 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 -- cgit v1.2.3-70-g09d2