Skip to content

Commit ff7950f

Browse files
committed
openapi_schema_pydantic / schema / {any,all,one}Of default to List.Empty
1 parent 6b734c6 commit ff7950f

File tree

3 files changed

+6
-10
lines changed

3 files changed

+6
-10
lines changed

openapi_python_client/parser/properties/__init__.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ def build_union_property(
353353
) -> Tuple[Union[UnionProperty, PropertyError], Schemas]:
354354
sub_properties: List[Property] = []
355355

356-
for i, sub_prop_data in enumerate(chain(data.anyOf or [], data.oneOf or [])):
356+
for i, sub_prop_data in enumerate(chain(data.anyOf, data.oneOf)):
357357
sub_prop, schemas = property_from_data(
358358
name=f"{name}_type{i}",
359359
required=required,
@@ -440,11 +440,7 @@ def _property_from_data(
440440
if isinstance(data, oai.Reference):
441441
return _property_from_ref(name=name, required=required, parent=None, data=data, schemas=schemas)
442442

443-
sub_data: List[Union[oai.Schema, oai.Reference]] = []
444-
for _data in (data.allOf, data.anyOf, data.oneOf):
445-
if _data:
446-
sub_data.extend(_data)
447-
443+
sub_data: List[Union[oai.Schema, oai.Reference]] = data.allOf + data.anyOf + data.oneOf
448444
# A union of a single reference should just be passed through to that reference (don't create copy class)
449445
if len(sub_data) == 1 and isinstance(sub_data[0], oai.Reference):
450446
return _property_from_ref(name=name, required=required, parent=data, data=sub_data[0], schemas=schemas)

openapi_python_client/parser/properties/model_property.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def _check_existing(prop: Property) -> Union[Property, PropertyError]:
8888
return prop_or_error
8989

9090
unprocessed_props = data.properties or {}
91-
for sub_prop in data.allOf or []:
91+
for sub_prop in data.allOf:
9292
if isinstance(sub_prop, oai.Reference):
9393
ref_path = parse_reference_path(sub_prop.ref)
9494
if isinstance(ref_path, ParseError):

openapi_python_client/schema/openapi_schema_pydantic/schema.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ class Schema(BaseModel):
224224
types defined by keyword. Recall: "number" includes "integer".
225225
"""
226226

227-
allOf: Optional[List[Union[Reference, "Schema"]]] = None
227+
allOf: List[Union[Reference, "Schema"]] = Field(default_factory=list)
228228
"""
229229
**From OpenAPI spec:
230230
Inline or referenced schema MUST be of a [Schema Object](#schemaObject) and not a standard JSON Schema.**
@@ -241,7 +241,7 @@ class Schema(BaseModel):
241241
value.
242242
"""
243243

244-
oneOf: Optional[List[Union[Reference, "Schema"]]] = None
244+
oneOf: List[Union[Reference, "Schema"]] = Field(default_factory=list)
245245
"""
246246
**From OpenAPI spec:
247247
Inline or referenced schema MUST be of a [Schema Object](#schemaObject) and not a standard JSON Schema.**
@@ -258,7 +258,7 @@ class Schema(BaseModel):
258258
keyword's value.
259259
"""
260260

261-
anyOf: Optional[List[Union[Reference, "Schema"]]] = None
261+
anyOf: List[Union[Reference, "Schema"]] = Field(default_factory=list)
262262
"""
263263
**From OpenAPI spec:
264264
Inline or referenced schema MUST be of a [Schema Object](#schemaObject) and not a standard JSON Schema.**

0 commit comments

Comments
 (0)