|
9 | 9 | "property_from_data",
|
10 | 10 | ]
|
11 | 11 |
|
| 12 | +from itertools import chain |
12 | 13 | from typing import Any, ClassVar, Dict, Generic, Iterable, Iterator, List, Optional, Set, Tuple, TypeVar, Union
|
13 | 14 |
|
14 | 15 | import attr
|
@@ -352,12 +353,7 @@ def build_union_property(
|
352 | 353 | ) -> Tuple[Union[UnionProperty, PropertyError], Schemas]:
|
353 | 354 | sub_properties: List[Property] = []
|
354 | 355 |
|
355 |
| - sub_data: List[Union[oai.Schema, oai.Reference]] = [] |
356 |
| - for _data in [data.anyOf, data.oneOf]: |
357 |
| - if isinstance(_data, Iterable): |
358 |
| - sub_data.extend(_data) |
359 |
| - |
360 |
| - for i, sub_prop_data in enumerate(sub_data): |
| 356 | + for i, sub_prop_data in enumerate(chain(data.anyOf or [], data.oneOf or [])): |
361 | 357 | sub_prop, schemas = property_from_data(
|
362 | 358 | name=f"{name}_type{i}",
|
363 | 359 | required=required,
|
@@ -445,8 +441,8 @@ def _property_from_data(
|
445 | 441 | return _property_from_ref(name=name, required=required, parent=None, data=data, schemas=schemas)
|
446 | 442 |
|
447 | 443 | sub_data: List[Union[oai.Schema, oai.Reference]] = []
|
448 |
| - for _data in [data.allOf, data.anyOf, data.oneOf]: |
449 |
| - if isinstance(_data, Iterable): |
| 444 | + for _data in (data.allOf, data.anyOf, data.oneOf): |
| 445 | + if _data: |
450 | 446 | sub_data.extend(_data)
|
451 | 447 |
|
452 | 448 | # A union of a single reference should just be passed through to that reference (don't create copy class)
|
|
0 commit comments