File tree 7 files changed +335
-322
lines changed
7 files changed +335
-322
lines changed Original file line number Diff line number Diff line change 1
- from pyvalid .__accepts import Accepts
2
- from pyvalid .__returns import Returns
1
+ from pyvalid .__accepts import Accepts as accepts
2
+ from pyvalid .__returns import Returns as returns
3
3
from pyvalid .__exceptions import InvalidArgumentNumberError , \
4
4
InvalidReturnType , ArgumentValidationError
5
5
6
-
7
- accepts = Accepts
8
- returns = Returns
9
6
version = '0.9.5'
10
7
11
-
12
8
__all__ = [
13
9
'validators' ,
14
10
'switch' ,
Load Diff This file was deleted.
Original file line number Diff line number Diff line change
1
+ from abc import ABCMeta , abstractmethod
2
+ from six import with_metaclass
3
+ from pyvalid import accepts
4
+ try :
5
+ from collections .abc import Callable
6
+ except ImportError :
7
+ from collections import Callable
8
+
9
+
10
+ class Validator (Callable ):
11
+
12
+ @accepts (object , Callable )
13
+ def __init__ (self , func ):
14
+ self .__func = func
15
+
16
+ def __call__ (self , * args , ** kwargs ):
17
+ return self .__func (* args , ** kwargs )
18
+
19
+
20
+ class AbstractValidator (with_metaclass (ABCMeta , Validator )):
21
+
22
+ @property
23
+ @abstractmethod
24
+ def checkers (self ):
25
+ raise NotImplementedError
26
+
27
+ @abstractmethod
28
+ def __call__ (self ):
29
+ raise NotImplementedError
30
+
31
+ def __init__ (self ):
32
+ Validator .__init__ (self , self )
33
+ for checker_func , checker_args in list (self .checkers .items ()):
34
+ try :
35
+ to_del = checker_args [0 ] is None
36
+ except (IndexError , TypeError ):
37
+ to_del = True
38
+ if to_del :
39
+ del self .checkers [checker_func ]
40
+
41
+ def _check (self , val ):
42
+ valid = True
43
+ for checker_func , checker_args in self .checkers .items ():
44
+ valid = checker_func (val , * checker_args )
45
+ if not valid :
46
+ break
47
+ return valid
Original file line number Diff line number Diff line change
1
+ from pyvalid .validators .__base import Validator , AbstractValidator
2
+ from pyvalid .validators .__iterable import IterableValidator
3
+ from pyvalid .validators .__number import NumberValidator
4
+ from pyvalid .validators .__string import StringValidator
5
+
6
+ is_validator = Validator
7
+
8
+ __all__ = [
9
+ 'is_validator' ,
10
+ 'Validator' ,
11
+ 'AbstractValidator' ,
12
+ 'IterableValidator' ,
13
+ 'NumberValidator' ,
14
+ 'StringValidator'
15
+ ]
You can’t perform that action at this time.
0 commit comments