iro/validate.py
branchdevel
changeset 115 323d06431100
parent 114 1ed072cc6793
child 118 e16c0250c974
--- a/iro/validate.py	Fri Jan 27 15:01:59 2012 +0100
+++ b/iro/validate.py	Fri Jan 27 17:49:57 2012 +0100
@@ -1,12 +1,12 @@
 import re
-from functools import wraps
+from decorator import decorator
 
 from inspect import getcallargs
 from .error import ValidateException
 
-def boolean(value, field):
-    t=[True,"true",1]
-    f=[False,"false",0]
+def vBool(value, field):
+    t=[True, 1, "true", "True", "TRUE"]
+    f=[False, 0, "false", "False", "FALSE"]
     if value in t:
         return True
     elif value in f:
@@ -15,7 +15,7 @@
         raise ValidateException(field=field, msg='%s is not boolean' % field)
 
 
-def validateHash(value,field,minlength=None,maxlength=None):
+def vHash(value,field,minlength=None,maxlength=None):
     if not re.match(r'^[a-f0-9]*$', value.lower()):
         raise ValidateException(field=field)
     if minlength and len(value)<minlength:
@@ -24,9 +24,11 @@
         raise ValidateException(field=field)
     return value
 
-def vuserhash(value,field):
-    '''vailidate function for userhash'''
-    return validateHash(value,field,minlength=15,maxlength=15)
+def vTel(value,field):
+    return value
+
+def vEmail(value, field):
+    return value
 
 def validate(kwd,func, need=True,*args,**kargs):
     '''validate decorator
@@ -35,23 +37,17 @@
         f(userhash)
     that will validate usrhash with the function vuserhash.
     Every validate function should raise an Exception, if the the value is not valid'''
-    def v(f):
-        @wraps(f)
-        def new_f(*a,**k):
-            kp=getcallargs(new_f.original,*a,**k)
-            try:
-                if need or kp[kwd] is not None:
-                    kp[kwd] = func(kp[kwd],kwd,*args,**kargs)
-                else:
-                    kp[kwd] = None
-            except KeyError:
-                if need:
-                    raise ValidateException(field=kwd,msg="%s is nessasary"%kwd)
-            return f(**kp)
+    @decorator
+    def v(f,*a,**k):
+        kp=getcallargs(f,*a,**k)
         try:
-            new_f.original=f.original
-        except AttributeError:
-            new_f.original=f
-        return new_f
+            if need or kp[kwd] is not None:
+                kp[kwd] = func(kp[kwd],kwd,*args,**kargs)
+            else:
+                kp[kwd] = None
+        except KeyError:
+            if need:
+                raise ValidateException(field=kwd,msg="%s is nessasary"%kwd)
+        return f(**kp)
     return v