@@ -36,10 +36,10 @@ class Schema(object):
3636 """Represents an OpenAPI Schema."""
3737
3838 def __init__ (
39- self , schema_type , model = None , properties = None , items = None ,
39+ self , schema_type = None , model = None , properties = None , items = None ,
4040 schema_format = None , required = None , default = None , nullable = False ,
4141 enum = None , deprecated = False , all_of = None ):
42- self .type = SchemaType (schema_type )
42+ self .type = schema_type and SchemaType (schema_type )
4343 self .model = model
4444 self .properties = properties and dict (properties ) or {}
4545 self .items = items
@@ -76,12 +76,12 @@ def cast(self, value):
7676 """Cast value to schema type"""
7777 if value is None :
7878 if not self .nullable :
79- raise InvalidValueType (
80- "Failed to cast value of {0} to {1}" .format (
81- value , self .type )
82- )
79+ raise InvalidValueType ("Null value for non-nullable schema" )
8380 return self .default
8481
82+ if self .type is None :
83+ return value
84+
8585 cast_mapping = self .get_cast_mapping ()
8686
8787 if self .type in cast_mapping and value == '' :
@@ -167,7 +167,7 @@ def __init__(self, dereferencer):
167167 def create (self , schema_spec ):
168168 schema_deref = self .dereferencer .dereference (schema_spec )
169169
170- schema_type = schema_deref [ 'type' ]
170+ schema_type = schema_deref . get ( 'type' )
171171 schema_format = schema_deref .get ('format' )
172172 model = schema_deref .get ('x-model' , None )
173173 required = schema_deref .get ('required' , False )
@@ -192,9 +192,10 @@ def create(self, schema_spec):
192192 items = self ._create_items (items_spec )
193193
194194 return Schema (
195- schema_type , model = model , properties = properties , items = items ,
196- schema_format = schema_format , required = required , default = default ,
197- nullable = nullable , enum = enum , deprecated = deprecated , all_of = all_of ,
195+ schema_type = schema_type , model = model , properties = properties ,
196+ items = items , schema_format = schema_format , required = required ,
197+ default = default , nullable = nullable , enum = enum ,
198+ deprecated = deprecated , all_of = all_of ,
198199 )
199200
200201 @property
0 commit comments