Skip to content

Commit 631386b

Browse files
Nementonp1-ra
authored andcommitted
parser / properties / do not restrict reference pointer type to enum or object
1 parent 47adea9 commit 631386b

File tree

1 file changed

+9
-16
lines changed

1 file changed

+9
-16
lines changed

openapi_python_client/parser/properties/schemas.py

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,9 @@
1111
from ..errors import ParseError, PropertyError, RecursiveReferenceInterupt
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
T = TypeVar("T")
2119
_ReferencePath = NewType("_ReferencePath", str)
@@ -64,10 +62,10 @@ class Schemas:
6462
"""Structure for containing all defined, shareable, and reusable schemas (attr classes and Enums)"""
6563

6664
classes_by_reference: Dict[
67-
_ReferencePath, _Holder[Union[EnumProperty, ModelProperty, RecursiveReferenceInterupt]]
65+
_ReferencePath, _Holder[Union[Property, RecursiveReferenceInterupt]]
6866
] = attr.ib(factory=dict)
6967
classes_by_name: Dict[
70-
_ClassName, _Holder[Union[EnumProperty, ModelProperty, RecursiveReferenceInterupt]]
68+
_ClassName, _Holder[Union[Property, RecursiveReferenceInterupt]]
7169
] = attr.ib(factory=dict)
7270
errors: List[ParseError] = attr.ib(factory=list)
7371

@@ -105,17 +103,12 @@ def _update_schemas_with_reference(
105103
def _update_schemas_with_data(
106104
*, ref_path: _ReferencePath, data: oai.Schema, schemas: Schemas, visited: Set[_ReferencePath], config: Config
107105
) -> Union[Schemas, PropertyError]:
108-
from . import build_enum_property, build_model_property
106+
from . import property_from_data
109107

110-
prop: Union[PropertyError, ModelProperty, EnumProperty]
111-
if data.enum is not None:
112-
prop, schemas = build_enum_property(
113-
data=data, name=ref_path, required=True, schemas=schemas, enum=data.enum, parent_name=None, config=config
114-
)
115-
else:
116-
prop, schemas = build_model_property(
117-
data=data, name=ref_path, schemas=schemas, required=True, parent_name=None, config=config
118-
)
108+
prop: Union[PropertyError, Property]
109+
prop, schemas = property_from_data(
110+
data=data, name=ref_path, schemas=schemas, required=True, parent_name="", config=config
111+
)
119112

120113
holder = schemas.classes_by_reference.get(ref_path)
121114
if isinstance(prop, PropertyError):

0 commit comments

Comments
 (0)