1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
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 __iter__(self):
for key, value in vars(self).iteritems():
yield key, 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 set_val(self, key, value, value_type=None, enum_values=None):
try:
self.__setattr__(key, value)
except Exception as e:
self.err_warn("key: %s value: %s" % (key, value), error=str(e))
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)))
|