equal
deleted
inserted
replaced
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: |