From d88d5886654595e0ce93babb95f1b2a89aac1978 Mon Sep 17 00:00:00 2001 From: Peter Caisse Date: Wed, 4 Jun 2025 03:18:58 -0400 Subject: [PATCH] Replace periods with '_DOT_' in Python enum member names (#21372) This is relevant for enums whose values are floats since without this step the enum is syntactically invalid. See: https://github.com/OpenAPITools/openapi-generator/issues/21322 --- .../languages/AbstractPythonCodegen.java | 2 ++ .../src/test/resources/3_0/enum_float.yaml | 33 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 modules/openapi-generator/src/test/resources/3_0/enum_float.yaml diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonCodegen.java index 0c5a3838a82..c8c76e39469 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonCodegen.java @@ -1061,6 +1061,8 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co } public String toEnumVariableName(String name, String datatype) { + name = name.replace(".", "_DOT_"); + if ("int".equals(datatype)) { return "NUMBER_" + name.replace("-", "MINUS_"); } diff --git a/modules/openapi-generator/src/test/resources/3_0/enum_float.yaml b/modules/openapi-generator/src/test/resources/3_0/enum_float.yaml new file mode 100644 index 00000000000..909521c8c61 --- /dev/null +++ b/modules/openapi-generator/src/test/resources/3_0/enum_float.yaml @@ -0,0 +1,33 @@ +openapi: 3.0.0 +info: + title: Sample API + description: API description in Markdown. + version: 1.0.0 +paths: + /pony-sizes: + get: + summary: Returns all pony sizes. + description: Optional extended description in Markdown. + responses: + 200: + description: OK + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PonySizes' +components: + schemas: + PonySizes: + type: object + properties: + type: + $ref: '#/components/schemas/Type' + Type: + type: float + enum: + - 2.0 + - 1.0 + - 0.5 + - 0.25