summaryrefslogtreecommitdiff
path: root/Param
diff options
context:
space:
mode:
Diffstat (limited to 'Param')
-rw-r--r--Param/Bool/__init__.py12
-rw-r--r--Param/Color/__init__.py7
-rw-r--r--Param/Enum/__init__.py9
-rw-r--r--Param/Float/__init__.py9
-rw-r--r--Param/Img_url/__init__.py37
-rw-r--r--Param/Int/__init__.py10
-rw-r--r--Param/Json/__init__.py6
-rw-r--r--Param/Raw/__init__.py5
-rw-r--r--Param/String/__init__.py19
-rw-r--r--Param/__init__.py33
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