diff options
Diffstat (limited to 'Param/__init__.py')
| -rw-r--r-- | Param/__init__.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/Param/__init__.py b/Param/__init__.py new file mode 100644 index 0000000..4152587 --- /dev/null +++ b/Param/__init__.py @@ -0,0 +1,59 @@ +import re +import os +import time +import sys +import urllib, urllib2 +from subprocess import Popen, PIPE +Request = urllib2.Request +urlencode = urllib.urlencode +urlopen = urllib2.urlopen + +from Config import WORKING_DIR, MAX_SIZE, \ + SPECIAL_DOWNLOADERS, SPECIAL_DOWNLOADERS_MAX_SIZE, \ + BIN_IDENTIFY + +class BadParamError(Exception): + pass + +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))) + + + |
