iro/validate.py
branchdevel
changeset 181 8a5be61f34c5
parent 178 ee4a6eb5a34b
child 193 e5ec4bfa4929
equal deleted inserted replaced
180:55ab949cf0f8 181:8a5be61f34c5
     1 from twisted.internet import defer
     1 from twisted.internet import defer
     2 
     2 
     3 import re
     3 import re
     4 from decorator import decorator
     4 from decorator import decorator
     5 from inspect import getcallargs
     5 from inspect import getcallargs
       
     6 import types
     6 
     7 
     7 from .error import ValidateException, InvalidTel, InvalidMail
     8 from .error import ValidateException, InvalidTel, InvalidMail
     8 from .telnumber import Telnumber
     9 from .telnumber import Telnumber
     9 
    10 
    10 def vBool(value, field):
    11 def vBool(value, field):
    74     Abc..123@example.com
    75     Abc..123@example.com
    75     thisis."notallowed@example.com
    76     thisis."notallowed@example.com
    76     this\\ still\\"not\\allowed@example.com
    77     this\\ still\\"not\\allowed@example.com
    77     '''
    78     '''
    78     ret = []
    79     ret = []
       
    80     str_=False
       
    81     if type(value) is types.StringType:
       
    82         str_=True
       
    83         value=[value]
    79     for v in value:
    84     for v in value:
    80         parts= re.match(r'^(.*)@(.+?)$',v)
    85         parts= re.match(r'^(.*)@(.+?)$',v)
    81         if not parts:
    86         if not parts:
    82             raise InvalidMail(v,field)
    87             raise InvalidMail(v,field)
    83         local=parts.group(1)
    88         local=parts.group(1)
   116             i += 1
   121             i += 1
   117         if c%2 == 0 and c > 1:                        #no single quote allowed
   122         if c%2 == 0 and c > 1:                        #no single quote allowed
   118             raise InvalidMail(v,field)
   123             raise InvalidMail(v,field)
   119         if v not in ret:
   124         if v not in ret:
   120             ret.append(v)
   125             ret.append(v)
       
   126     if str_:
       
   127         ret=ret[0]
   121     return ret
   128     return ret
   122 
   129 
   123 def validate(kwd,func, need=True,*args,**kargs):
   130 def validate(kwd,func, need=True,*args,**kargs):
   124     '''validate decorator
   131     '''validate decorator
   125     use it like this:
   132     use it like this: