@@ -21,16 +21,16 @@ def __init__(self, root_package: python.ModulePath, source: openapi.OpenAPI) ->
21
21
self .root_package = root_package
22
22
self .source = source
23
23
self .type_models : set [Stack ] = set ()
24
- self .all_models : dict [Stack , MetaModel | None ] = {}
24
+ self .all_models : dict [Stack , MetaModel ] = {}
25
25
26
26
@resolve_ref
27
27
def process_schema (
28
28
self ,
29
29
value : openapi .Schema | bool | None ,
30
30
stack : Stack ,
31
31
) -> MetaModel | None :
32
- if model := self .all_models .get (stack ):
33
- return model
32
+ if existing := self .all_models .get (stack ):
33
+ return existing
34
34
35
35
if value is False or (isinstance (value , openapi .Schema ) and value .enum and len (value .enum ) == 0 ):
36
36
return None
@@ -53,9 +53,10 @@ def process_schema(
53
53
except AttributeError :
54
54
logger .debug ('Unsupported property %s' , field_stack )
55
55
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
59
60
60
61
def process_schema_title (self , value : str , _ : Stack , model : MetaModel , _1 : openapi .Schema ) -> None :
61
62
model .title = value
@@ -196,11 +197,11 @@ def schema_modules(self) -> Iterable[python.SchemaModule]:
196
197
for stack , model in self .all_models .items ():
197
198
if stack not in self .type_models or model is None :
198
199
continue
199
- typ = model .as_type (str (self .root_package ))
200
+ types = list ( model .as_types (str (self .root_package ) ))
200
201
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
204
205
)
205
206
return [
206
207
python .SchemaModule (
0 commit comments