@@ -21,16 +21,16 @@ def __init__(self, root_package: python.ModulePath, source: openapi.OpenAPI) ->
2121 self .root_package = root_package
2222 self .source = source
2323 self .type_models : set [Stack ] = set ()
24- self .all_models : dict [Stack , MetaModel | None ] = {}
24+ self .all_models : dict [Stack , MetaModel ] = {}
2525
2626 @resolve_ref
2727 def process_schema (
2828 self ,
2929 value : openapi .Schema | bool | None ,
3030 stack : Stack ,
3131 ) -> MetaModel | None :
32- if model := self .all_models .get (stack ):
33- return model
32+ if existing := self .all_models .get (stack ):
33+ return existing
3434
3535 if value is False or (isinstance (value , openapi .Schema ) and value .enum and len (value .enum ) == 0 ):
3636 return None
@@ -53,9 +53,10 @@ def process_schema(
5353 except AttributeError :
5454 logger .debug ('Unsupported property %s' , field_stack )
5555
56- model = model .normalize_model ()
57- self .all_models [stack ] = model
58- return model
56+ if model_ := model .normalize_model ():
57+ self .all_models [stack ] = model_
58+ return model_
59+ return None
5960
6061 def process_schema_title (self , value : str , _ : Stack , model : MetaModel , _1 : openapi .Schema ) -> None :
6162 model .title = value
@@ -196,11 +197,11 @@ def schema_modules(self) -> Iterable[python.SchemaModule]:
196197 for stack , model in self .all_models .items ():
197198 if stack not in self .type_models or model is None :
198199 continue
199- typ = model .as_type (str (self .root_package ))
200+ types = list ( model .as_types (str (self .root_package ) ))
200201
201- if typ :
202- modules [python .ModulePath (resolve_type_name (str (self .root_package ), model .stack ).typ .module )].append (
203- typ
202+ if types :
203+ modules [python .ModulePath (resolve_type_name (str (self .root_package ), model .stack ).typ .module )].extend (
204+ types
204205 )
205206 return [
206207 python .SchemaModule (
0 commit comments