Skip to content

Commit 51c29ea

Browse files
committed
parser / properties / do not restrict reference pointer type to enum or object
1 parent a731477 commit 51c29ea

File tree

1 file changed

+12
-17
lines changed

1 file changed

+12
-17
lines changed

openapi_python_client/parser/properties/schemas.py

+12-17
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,9 @@
1111
from ..errors import ParseError, PropertyError
1212

1313
if TYPE_CHECKING: # pragma: no cover
14-
from .enum_property import EnumProperty
15-
from .model_property import ModelProperty
14+
from .property import Property
1615
else:
17-
EnumProperty = "EnumProperty"
18-
ModelProperty = "ModelProperty"
16+
Property = "Property"
1917

2018

2119
_ReferencePath = NewType("_ReferencePath", str)
@@ -58,26 +56,23 @@ def from_string(*, string: str, config: Config) -> "Class":
5856
class Schemas:
5957
"""Structure for containing all defined, shareable, and reusable schemas (attr classes and Enums)"""
6058

61-
classes_by_reference: Dict[_ReferencePath, Union[EnumProperty, ModelProperty]] = attr.ib(factory=dict)
62-
classes_by_name: Dict[_ClassName, Union[EnumProperty, ModelProperty]] = attr.ib(factory=dict)
59+
classes_by_reference: Dict[_ReferencePath, Property] = attr.ib(factory=dict)
60+
classes_by_name: Dict[_ClassName, Property] = attr.ib(factory=dict)
6361
errors: List[ParseError] = attr.ib(factory=list)
6462

6563

6664
def update_schemas_with_data(
6765
*, ref_path: _ReferencePath, data: oai.Schema, schemas: Schemas, config: Config
6866
) -> Union[Schemas, PropertyError]:
69-
from . import build_enum_property, build_model_property
70-
71-
prop: Union[PropertyError, ModelProperty, EnumProperty]
72-
if data.enum is not None:
73-
prop, schemas = build_enum_property(
74-
data=data, name=ref_path, required=True, schemas=schemas, enum=data.enum, parent_name=None, config=config
75-
)
76-
else:
77-
prop, schemas = build_model_property(
78-
data=data, name=ref_path, schemas=schemas, required=True, parent_name=None, config=config
79-
)
67+
from . import property_from_data
68+
69+
prop: Union[PropertyError, Property]
70+
prop, schemas = property_from_data(
71+
data=data, name=ref_path, schemas=schemas, required=True, parent_name=None, config=config
72+
)
73+
8074
if isinstance(prop, PropertyError):
8175
return prop
76+
8277
schemas = attr.evolve(schemas, classes_by_reference={ref_path: prop, **schemas.classes_by_reference})
8378
return schemas

0 commit comments

Comments
 (0)