From 2c525be865efe06088425369813240992e02b373 Mon Sep 17 00:00:00 2001 From: pepperpepperpepper Date: Thu, 8 Oct 2015 19:35:12 -0700 Subject: fixed a lot of things --- ricky/params.py | 109 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 63 insertions(+), 46 deletions(-) (limited to 'ricky/params.py') diff --git a/ricky/params.py b/ricky/params.py index 304ad2d..2b5e6ee 100644 --- a/ricky/params.py +++ b/ricky/params.py @@ -1,49 +1,66 @@ +"""base class for all params""" import sys import pprint + + class Params(object): - def __init__(self): - self._api = None - self._params = [] - - def param(self, name): - for p in self._params: - if p.name == name: - return p - return None - - def __str__(self): - return pprint.pformat({ "params": map(lambda x: vars(x), self._params) }) - - def randomize(self): - for el in self._params: - if el.set_by_user: - continue - el.randomize() - - @property - def api(self): - return self._api - - @api.setter - def api(self, cls): - self._api = cls - - - def execute(self): - return self.api.call(self) - - def is_ready(self): - for p in self._params: - if not p.is_ready and not p.default: - sys.stderr.write("param not ready: {}".format(p)) - return 0 - return 1 - - def __dict__(self): - result = {} - for p in self._params: - result[p.name] = p.value - return result - - def as_dict(self): - return self.__dict__() + def __init__(self): + self._api = None + self._params = [] + + def param(self, name): + """getter for the param by name""" + for param in self._params: + if param.name == name: + return param + return None + + def __str__(self): + """string representation""" + return pprint.pformat({"params": map(lambda x: vars(x), self._params)}) + + def randomize(self): + """assign random values to all params, taking into account weight""" + for param in self._params: + if param.set_by_user: + continue + param.randomize() + + + @property + def api(self): + """property setter for im api""" + return self._api + + @api.setter + def api(self, cls): + """property getter for im api""" + self._api = cls + + def execute(self): + """calls the associated api""" + return self.api.call(self) + + def is_ready(self): + """test to see if any params with required values are missing""" + for param in self._params: + if not param.is_ready and not param.default: + sys.stderr.write("param not ready: %s\n" % param) + return 0 + return 1 + + def __dict__(self): + result = {} + for param in self._params: + result[param.name] = param.value + return result + + def as_dict(self): + """alias for __dict__""" + return self.__dict__() + + def from_dict(self, params_dict): + """set param values manually from a dictionary""" + for param in self._params: + if param.name in params_dict.keys(): + param.value_set(params_dict[param.name]) -- cgit v1.2.3-70-g09d2