diff --git a/openapi_python_client/parser/properties/schemas.py b/openapi_python_client/parser/properties/schemas.py index ff579a9ea..6e369e6ab 100644 --- a/openapi_python_client/parser/properties/schemas.py +++ b/openapi_python_client/parser/properties/schemas.py @@ -11,11 +11,9 @@ from ..errors import ParseError, PropertyError, RecursiveReferenceInterupt if TYPE_CHECKING: # pragma: no cover - from .enum_property import EnumProperty - from .model_property import ModelProperty + from .property import Property else: - EnumProperty = "EnumProperty" - ModelProperty = "ModelProperty" + Property = "Property" T = TypeVar("T") _ReferencePath = NewType("_ReferencePath", str) @@ -64,10 +62,10 @@ class Schemas: """Structure for containing all defined, shareable, and reusable schemas (attr classes and Enums)""" classes_by_reference: Dict[ - _ReferencePath, _Holder[Union[EnumProperty, ModelProperty, RecursiveReferenceInterupt]] + _ReferencePath, _Holder[Union[Property, RecursiveReferenceInterupt]] ] = attr.ib(factory=dict) classes_by_name: Dict[ - _ClassName, _Holder[Union[EnumProperty, ModelProperty, RecursiveReferenceInterupt]] + _ClassName, _Holder[Union[Property, RecursiveReferenceInterupt]] ] = attr.ib(factory=dict) errors: List[ParseError] = attr.ib(factory=list) @@ -105,17 +103,12 @@ def _update_schemas_with_reference( def _update_schemas_with_data( *, ref_path: _ReferencePath, data: oai.Schema, schemas: Schemas, visited: Set[_ReferencePath], config: Config ) -> Union[Schemas, PropertyError]: - from . import build_enum_property, build_model_property + from . import property_from_data - prop: Union[PropertyError, ModelProperty, EnumProperty] - if data.enum is not None: - prop, schemas = build_enum_property( - data=data, name=ref_path, required=True, schemas=schemas, enum=data.enum, parent_name=None, config=config - ) - else: - prop, schemas = build_model_property( - data=data, name=ref_path, schemas=schemas, required=True, parent_name=None, config=config - ) + prop: Union[PropertyError, Property] + prop, schemas = property_from_data( + data=data, name=ref_path, schemas=schemas, required=True, parent_name="", config=config + ) holder = schemas.classes_by_reference.get(ref_path) if isinstance(prop, PropertyError):