2727log = logging .getLogger (__name__ )
2828
2929
30- class PrimitiveTypeUnmarshaller :
30+ class BaseSchemaUnmarshaller :
3131
32- FORMATTERS = {}
32+ FORMATTERS = {
33+ None : Formatter (),
34+ }
3335
34- def __init__ (self , formatter , validator , schema ):
35- self .formatter = formatter
36- self .validator = validator
36+ def __init__ (self , schema ):
3737 self .schema = schema
3838
3939 def __call__ (self , value ):
@@ -44,6 +44,20 @@ def __call__(self, value):
4444
4545 return self .unmarshal (value )
4646
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+
4761 def _formatter_validate (self , value ):
4862 result = self .formatter .validate (value )
4963 if not result :
@@ -123,9 +137,9 @@ class BooleanUnmarshaller(PrimitiveTypeUnmarshaller):
123137class ComplexUnmarshaller (PrimitiveTypeUnmarshaller ):
124138
125139 def __init__ (
126- self , formatter , validator , schema , unmarshallers_factory ,
140+ self , schema , formatter , validator , unmarshallers_factory ,
127141 context = None ):
128- super ().__init__ (formatter , validator , schema )
142+ super ().__init__ (schema , formatter , validator )
129143 self .unmarshallers_factory = unmarshallers_factory
130144 self .context = context
131145
@@ -242,10 +256,6 @@ def _unmarshal_properties(self, value, one_of_schema=None):
242256
243257class AnyUnmarshaller (ComplexUnmarshaller ):
244258
245- FORMATTERS = {
246- None : Formatter (),
247- }
248-
249259 SCHEMA_TYPES_ORDER = [
250260 'object' , 'array' , 'boolean' ,
251261 'integer' , 'number' , 'string' ,
0 commit comments