27
27
log = logging .getLogger (__name__ )
28
28
29
29
30
- class PrimitiveTypeUnmarshaller :
30
+ class BaseSchemaUnmarshaller :
31
31
32
- FORMATTERS = {}
32
+ FORMATTERS = {
33
+ None : Formatter (),
34
+ }
33
35
34
- def __init__ (self , formatter , validator , schema ):
35
- self .formatter = formatter
36
- self .validator = validator
36
+ def __init__ (self , schema ):
37
37
self .schema = schema
38
38
39
39
def __call__ (self , value ):
@@ -44,6 +44,20 @@ def __call__(self, value):
44
44
45
45
return self .unmarshal (value )
46
46
47
+ def validate (self , value ):
48
+ raise NotImplementedError
49
+
50
+ def unmarshal (self , value ):
51
+ raise NotImplementedError
52
+
53
+
54
+ class PrimitiveTypeUnmarshaller (BaseSchemaUnmarshaller ):
55
+
56
+ def __init__ (self , schema , formatter , validator ):
57
+ super ().__init__ (schema )
58
+ self .formatter = formatter
59
+ self .validator = validator
60
+
47
61
def _formatter_validate (self , value ):
48
62
result = self .formatter .validate (value )
49
63
if not result :
@@ -123,9 +137,9 @@ class BooleanUnmarshaller(PrimitiveTypeUnmarshaller):
123
137
class ComplexUnmarshaller (PrimitiveTypeUnmarshaller ):
124
138
125
139
def __init__ (
126
- self , formatter , validator , schema , unmarshallers_factory ,
140
+ self , schema , formatter , validator , unmarshallers_factory ,
127
141
context = None ):
128
- super ().__init__ (formatter , validator , schema )
142
+ super ().__init__ (schema , formatter , validator )
129
143
self .unmarshallers_factory = unmarshallers_factory
130
144
self .context = context
131
145
@@ -242,10 +256,6 @@ def _unmarshal_properties(self, value, one_of_schema=None):
242
256
243
257
class AnyUnmarshaller (ComplexUnmarshaller ):
244
258
245
- FORMATTERS = {
246
- None : Formatter (),
247
- }
248
-
249
259
SCHEMA_TYPES_ORDER = [
250
260
'object' , 'array' , 'boolean' ,
251
261
'integer' , 'number' , 'string' ,
0 commit comments