diff options
Diffstat (limited to 'Param')
| -rw-r--r-- | Param/Bool/__init__.py | 12 | ||||
| -rw-r--r-- | Param/Color/__init__.py | 7 | ||||
| -rw-r--r-- | Param/Enum/__init__.py | 9 | ||||
| -rw-r--r-- | Param/Float/__init__.py | 9 | ||||
| -rw-r--r-- | Param/Img_url/__init__.py | 37 | ||||
| -rw-r--r-- | Param/Int/__init__.py | 10 | ||||
| -rw-r--r-- | Param/Json/__init__.py | 6 | ||||
| -rw-r--r-- | Param/Raw/__init__.py | 5 | ||||
| -rw-r--r-- | Param/String/__init__.py | 19 | ||||
| -rw-r--r-- | Param/__init__.py | 33 |
10 files changed, 92 insertions, 55 deletions
diff --git a/Param/Bool/__init__.py b/Param/Bool/__init__.py index 38fa7fa..8ccca00 100644 --- a/Param/Bool/__init__.py +++ b/Param/Bool/__init__.py @@ -1,10 +1,12 @@ from Param import Param - -def ParamBool(Param): +import re +class ParamBool(Param): def __init__(self, value, classname=""): - self._classname = classname - super(ParamBool).__init__() - self.value = self._bool_correct(value) + super(ParamBool, self).__init__(classname=classname) + if value: + self.value = self._bool_correct(value) + else: + self.value = False def _bool_correct(self, b): if type(b) == str: if re.match(r'true', b, re.IGNORECASE): diff --git a/Param/Color/__init__.py b/Param/Color/__init__.py index ea7895c..9163338 100644 --- a/Param/Color/__init__.py +++ b/Param/Color/__init__.py @@ -1,9 +1,8 @@ from Param import Param - -def ParamColor(Param): +import re +class ParamColor(Param): def __init__(self, value, classname=""): - self._classname = classname - super(ParamColor).__init__() + super(ParamColor, self).__init__(classname=classname) try: self.value = self._color_sanitize(value) except Exception as e: diff --git a/Param/Enum/__init__.py b/Param/Enum/__init__.py index f5aad73..3923a64 100644 --- a/Param/Enum/__init__.py +++ b/Param/Enum/__init__.py @@ -1,9 +1,8 @@ from Param import Param - -def ParamEnum(Param): +import sys +class ParamEnum(Param): def __init__(self, value, enum_values=[], classname=""): - self._classname = classname - super(ParamEnum).__init__() + super(ParamEnum,self).__init__(classname=classname) if value not in enum_values: - return err_warn("Value %s not in enum values" % str(value)) + return self.err_warn("Value %s not in enum values" % str(value)) self.value = value diff --git a/Param/Float/__init__.py b/Param/Float/__init__.py index eada7ac..0581815 100644 --- a/Param/Float/__init__.py +++ b/Param/Float/__init__.py @@ -1,11 +1,14 @@ from Param import Param -def ParamFloat(Param): +class ParamFloat(Param): def __init__(self, value, classname=""): self._classname = classname - super(ParamFloat).__init__() + super(ParamFloat, self).__init__(classname=classname) try: - self.value = float(value) + if value: + self.value = float(value) + else: + self.value = 0.0 except Exception as e: self.err_warn("Not a float: %s" % str(value)) self.err_warn(str(e)) diff --git a/Param/Img_url/__init__.py b/Param/Img_url/__init__.py index 176888b..58ed2e0 100644 --- a/Param/Img_url/__init__.py +++ b/Param/Img_url/__init__.py @@ -1,7 +1,9 @@ +import os from Param import Param from Config import * import urllib, urllib2 from subprocess import Popen, PIPE +import sys Request = urllib2.Request urlencode = urllib.urlencode urlopen = urllib2.urlopen @@ -9,26 +11,41 @@ Request = urllib2.Request urlencode = urllib.urlencode urlopen = urllib2.urlopen - -def ParamImg_url(Param): +import sys; +class ParamImg_url(Param): def __init__(self, value, key="", classname=""): - self._classname = classname - super(ParamImg_url).__init__() - + super(ParamImg_url, self).__init__(classname=classname) if value: try: self.filename = self._filename_temporary(key) - self.path = os.path.join(self._working_dir, _filename) - self._image_download(value, self._path) - self.mimetype = self._image_mimetype(_path) - self.value = self.path + + self.path = os.path.join(self._working_dir, self.filename) + self._image_download(value, self.path) + self.mimetype = self._image_mimetype(self.path) + self.url = value except Exception as e: self.err_warn("Unable to download image: %s" % str(value)) self.err_warn(str(e)) - def _filename_temporary(self, s): return "_tmp-{}-{}_{}".format(self._classname, self._now, s) + + def __dict__(self): + return { + 'filename' : self.filename, + 'path': self.path, + 'url': self.url, + 'mimetype': self.mimetype + } + + def __getitem__(self, item): + return self.__dict__().__getitem__(item) + + def __str__(self): + return str(self.__dict__()) + + def __nonzero__(self): + return True if self.path and self.mimetype else False def _image_download(self, url, path): max_size = MAX_SIZE diff --git a/Param/Int/__init__.py b/Param/Int/__init__.py index 4d52bdf..0a73cc1 100644 --- a/Param/Int/__init__.py +++ b/Param/Int/__init__.py @@ -1,11 +1,13 @@ from Param import Param -def ParamInt(Param): +class ParamInt(Param): def __init__(self, value, classname=""): - self._classname = classname - super(ParamInt).__init__() + super(ParamInt, self).__init__(classname=classname) try: - self.value = int(value) + if value: + self.value = int(value) + else: + self.value = 0 except Exception as e: self.err_warn("Not an int: %s" % str(value)) self.err_warn(str(e)) diff --git a/Param/Json/__init__.py b/Param/Json/__init__.py index 5e3bbc2..28a7126 100644 --- a/Param/Json/__init__.py +++ b/Param/Json/__init__.py @@ -1,8 +1,8 @@ from Param import Param import simplejson as json -def ParamJson(Param): +class ParamJson(Param): def __init__(self, value, classname=""): - self._classname = classname - super(ParamJson).__init__() + super(ParamJson, self).__init__(classname=classname) self.value = json.parse(value) + diff --git a/Param/Raw/__init__.py b/Param/Raw/__init__.py index 7eb1a4d..f8adaab 100644 --- a/Param/Raw/__init__.py +++ b/Param/Raw/__init__.py @@ -1,7 +1,6 @@ from Param import Param -def ParamRaw(Param): +class ParamRaw(Param): def __init__(self, value, classname=""): - self._classname = classname - super(ParamRaw).__init__() + super(ParamRaw, self).__init__(classname=classname) self.value = value diff --git a/Param/String/__init__.py b/Param/String/__init__.py index fe6b6c1..df65c9d 100644 --- a/Param/String/__init__.py +++ b/Param/String/__init__.py @@ -1,13 +1,16 @@ from Param import Param +import re -def ParamString(Param): +class ParamString(Param): def __init__(self, value, classname=""): - self._classname = classname - super(ParamString).__init__() - try: - self.value = self.sanitize(value) - except Exception as e: - self.err_warn("Unable to sanitize: %s" % str(value)) - self.err_warn(str(e)) + super(ParamString, self).__init__(classname=classname) + if value: + try: + self.value = self.sanitize(value) + except Exception as e: + self.err_warn("Unable to sanitize: %s" % str(value)) + self.err_warn(str(e)) + else: + self.value = "" def sanitize (self, s): return re.sub(r'\W+', '', s) diff --git a/Param/__init__.py b/Param/__init__.py index 80dcc0e..678b9dc 100644 --- a/Param/__init__.py +++ b/Param/__init__.py @@ -3,18 +3,11 @@ 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 BadParamError(Exception): + pass -class Params(object): +class Param(object): def __init__(self, classname="", **kwargs): self._working_dir = WORKING_DIR self._now = kwargs.get("now", str(int(time.time()))); @@ -28,6 +21,17 @@ class Params(object): def __str__(self): return str(self.value) + def __eq__(self, other): + return self.value == other + + def __ne__(self, other): + return self.value != other + + def set_val(self, value): + try: + self.value = value + except Exception as e: + self.err_warn("Unable to set value {}".format(value)) def err_warn(self, s, error=None): self._error_log(s, error=error); @@ -50,3 +54,12 @@ class Params(object): if error: sys.stderr.write("PARAM ERROR: {}\n".format(str(error))) +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 |
