Fix the post processing of enums in the Python generator, such that it uses the proper variable namesfrom x-enum-varnames (#18566)

Remove sample
This commit is contained in:
0xMattijs
2024-05-11 18:40:06 +02:00
committed by GitHub
parent eec30f2cda
commit 365fcd3fb4
10 changed files with 141 additions and 5 deletions

View File

@@ -9,6 +9,8 @@ Name | Type | Description | Notes
**enum_integer_default** | **int** | | [optional] [default to 5]
**enum_integer** | **int** | | [optional]
**enum_number** | **float** | | [optional]
**enum_number_vendor_ext** | **int** | | [optional]
**enum_string_vendor_ext** | **str** | | [optional]
**outer_enum** | [**OuterEnum**](OuterEnum.md) | | [optional]
**outer_enum_integer** | [**OuterEnumInteger**](OuterEnumInteger.md) | | [optional]
**outer_enum_default_value** | [**OuterEnumDefaultValue**](OuterEnumDefaultValue.md) | | [optional]

View File

@@ -34,12 +34,14 @@ class EnumTest(BaseModel):
enum_integer_default: Optional[StrictInt] = 5
enum_integer: Optional[StrictInt] = None
enum_number: Optional[StrictFloat] = None
enum_number_vendor_ext: Optional[StrictInt] = None
enum_string_vendor_ext: Optional[StrictStr] = None
outer_enum: Optional[OuterEnum] = Field(default=None, alias="outerEnum")
outer_enum_integer: Optional[OuterEnumInteger] = Field(default=None, alias="outerEnumInteger")
outer_enum_default_value: Optional[OuterEnumDefaultValue] = Field(default=None, alias="outerEnumDefaultValue")
outer_enum_integer_default_value: Optional[OuterEnumIntegerDefaultValue] = Field(default=None, alias="outerEnumIntegerDefaultValue")
additional_properties: Dict[str, Any] = {}
__properties = ["enum_string", "enum_string_required", "enum_integer_default", "enum_integer", "enum_number", "outerEnum", "outerEnumInteger", "outerEnumDefaultValue", "outerEnumIntegerDefaultValue"]
__properties = ["enum_string", "enum_string_required", "enum_integer_default", "enum_integer", "enum_number", "enum_number_vendor_ext", "enum_string_vendor_ext", "outerEnum", "outerEnumInteger", "outerEnumDefaultValue", "outerEnumIntegerDefaultValue"]
@validator('enum_string')
def enum_string_validate_enum(cls, value):
@@ -88,6 +90,26 @@ class EnumTest(BaseModel):
raise ValueError("must be one of enum values (1.1, -1.2)")
return value
@validator('enum_number_vendor_ext')
def enum_number_vendor_ext_validate_enum(cls, value):
"""Validates the enum"""
if value is None:
return value
if value not in (42, 18, 56):
raise ValueError("must be one of enum values (42, 18, 56)")
return value
@validator('enum_string_vendor_ext')
def enum_string_vendor_ext_validate_enum(cls, value):
"""Validates the enum"""
if value is None:
return value
if value not in ('FOO', 'Bar', 'baz'):
raise ValueError("must be one of enum values ('FOO', 'Bar', 'baz')")
return value
class Config:
"""Pydantic configuration"""
allow_population_by_field_name = True
@@ -140,6 +162,8 @@ class EnumTest(BaseModel):
"enum_integer_default": obj.get("enum_integer_default") if obj.get("enum_integer_default") is not None else 5,
"enum_integer": obj.get("enum_integer"),
"enum_number": obj.get("enum_number"),
"enum_number_vendor_ext": obj.get("enum_number_vendor_ext"),
"enum_string_vendor_ext": obj.get("enum_string_vendor_ext"),
"outer_enum": obj.get("outerEnum"),
"outer_enum_integer": obj.get("outerEnumInteger"),
"outer_enum_default_value": obj.get("outerEnumDefaultValue"),