55from inspect import getsource
66
77from .base import Code , CodeGenerator
8- from .parser import RefNode
8+ from .parser import schema_var_name
99
1010
1111class Schema (Code ):
@@ -89,8 +89,10 @@ def build_data(swagger):
8989 scopes [(endpoint , method )] = list (security .values ()).pop ()
9090 break
9191
92+ schemas = OrderedDict ([(schema_var_name (path ), swagger .get (path )) for path in swagger .definitions ])
93+
9294 data = dict (
93- definitions = { 'definitions' : swagger . origin_data . get ( 'definitions' , {})} ,
95+ schemas = schemas ,
9496 validators = validators ,
9597 filters = filters ,
9698 scopes = scopes ,
@@ -107,7 +109,7 @@ def _process(self):
107109 yield Schema (build_data (self .swagger ))
108110
109111
110- def merge_default (schema , value , get_first = True , resolver = None ):
112+ def merge_default (schema , value , get_first = True ):
111113 # TODO: more types support
112114 type_defaults = {
113115 'integer' : 9573 ,
@@ -117,17 +119,17 @@ def merge_default(schema, value, get_first=True, resolver=None):
117119 'boolean' : False
118120 }
119121
120- results = normalize (schema , value , type_defaults , resolver = resolver )
122+ results = normalize (schema , value , type_defaults )
121123 if get_first :
122124 return results [0 ]
123125 return results
124126
125127
126- def build_default (schema , resolver = None ):
127- return merge_default (schema , None , resolver = resolver )
128+ def build_default (schema ):
129+ return merge_default (schema , None )
128130
129131
130- def normalize (schema , data , required_defaults = None , resolver = None ):
132+ def normalize (schema , data , required_defaults = None ):
131133 if required_defaults is None :
132134 required_defaults = {}
133135 errors = []
@@ -215,7 +217,7 @@ def _normalize_dict(schema, data):
215217
216218 def _normalize_list (schema , data ):
217219 result = []
218- if hasattr (data , '__iter__' ) and not isinstance (data , ( dict , RefNode ) ):
220+ if hasattr (data , '__iter__' ) and not isinstance (data , dict ):
219221 for item in data :
220222 result .append (_normalize (schema .get ('items' ), item ))
221223 elif 'default' in schema :
@@ -228,15 +230,6 @@ def _normalize_default(schema, data):
228230 else :
229231 return data
230232
231- def _normalize_ref (schema , data ):
232- if resolver == None :
233- raise TypeError ("resolver must be provided" )
234- ref = schema .get (u"$ref" )
235- scope , resolved = resolver .resolve (ref )
236- return _normalize (resolved , data )
237-
238-
239-
240233 def _normalize (schema , data ):
241234 if schema is True or schema == {}:
242235 return data
@@ -246,13 +239,10 @@ def _normalize(schema, data):
246239 'object' : _normalize_dict ,
247240 'array' : _normalize_list ,
248241 'default' : _normalize_default ,
249- 'ref' : _normalize_ref
250242 }
251243 type_ = schema .get ('type' , 'object' )
252244 if type_ not in funcs :
253245 type_ = 'default'
254- if schema .get (u'$ref' , None ):
255- type_ = 'ref'
256246
257247 return funcs [type_ ](schema , data )
258248
0 commit comments