import time import sys from Config import WORKING_DIR from Param.Int import ParamInt from Param.Raw import ParamRaw from Param.Bool import ParamBool from Param.Enum import ParamEnum from Param.Json import ParamJson from Param.Color import ParamColor from Param.Float import ParamFloat from Param.Img_url import ParamImg_url from Param.String import ParamString class Params(object): def __init__(self, classname="", **kwargs): self._working_dir = WORKING_DIR self._now = kwargs.get("now", str(int(time.time()))); self._classname = classname for key, value in kwargs.items(): setattr(self, key, value) def __nonzero__(self): return True if self.value else False def __str__(self): return str(self.value) def err_warn(self, s, error=None): self._error_log(s, error=error); raise BadParamError("%s - %s" % (self._classname, s)) def __getattr__(self, key): try: return self.__getattribute__(key); except AttributeError: return None def err_fatal(self, s, error=None): self._log(s, error, fatal=True); sys.exit(1); def _error_log(self, s, error=None, fatal=False): message = "ERROR - BAD PARAM" if fatal: message += "- [FATAL] -" sys.stderr.write("{}:{} - {}\n".format(message, self._classname, s)) if error: sys.stderr.write("PARAM ERROR: {}\n".format(str(error)))