From a60b53a49e2cfa840d37b6c0b72cfe37caf29509 Mon Sep 17 00:00:00 2001 From: pepperpepperpepper Date: Tue, 8 Dec 2015 17:00:56 -0800 Subject: finished normalization, fixing serialization --- example.py | 1 + ricky/param/enum.py | 6 +++--- ricky/params/__init__.py | 6 ++++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/example.py b/example.py index 8139ceb..e322718 100755 --- a/example.py +++ b/example.py @@ -17,3 +17,4 @@ for params_class in ricky.params.Params.__subclasses__(): print type(params_instance) params_instance.from_dict(data['params']) print params_instance.execute() + print params_instance.as_normalized() diff --git a/ricky/param/enum.py b/ricky/param/enum.py index 137c58e..09a4cc3 100644 --- a/ricky/param/enum.py +++ b/ricky/param/enum.py @@ -41,11 +41,11 @@ class Enum(Param): return my_dict def from_normalized(self, value): - maximum = len(self._options - 1) + maximum = len(self._options) - 1 idx_val = int(round(maximum * value, 0)) self.value = self._options[idx_val] def as_normalized(self): - maximum = len(self._options - 1) - value = int(self.as_hex(), 16) + maximum = len(self._options) - 1 + value = self._options.index(self.value) return decimal.Decimal(value)/decimal.Decimal(maximum) diff --git a/ricky/params/__init__.py b/ricky/params/__init__.py index cb927e7..0cb4921 100644 --- a/ricky/params/__init__.py +++ b/ricky/params/__init__.py @@ -101,6 +101,12 @@ class Params(object): result[param.name] = param.value return result + def as_normalized(self): + return tuple([ + {'name': param.name, 'normalized': param.as_normalized()} + for param in self._params + ]) + def from_dict(self, params_dict): """set param values manually from a dictionary""" for param in self._params: -- cgit v1.2.3-70-g09d2