From da88f08f225e51a014724db926b5f5329c6f839b Mon Sep 17 00:00:00 2001 From: Yosef <2219045+ShemTovYosef@users.noreply.github.com> Date: Sun, 22 Dec 2024 16:46:58 +0200 Subject: [PATCH] [Python] Code generator doesn't preserve original case for variables --- .../codegen/languages/PythonClientCodegen.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PythonClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PythonClientCodegen.java index 9ef2e69e009..f001af0c858 100755 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PythonClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PythonClientCodegen.java @@ -31,6 +31,7 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig public static final String CAMEL_CASE_OPTION = "camel"; public static final String SNAKE_CASE_OPTION = "snake"; public static final String KEBAB_CASE_OPTION = "kebab"; + public static final String ORIGINAL_CASE_OPTION = "original"; protected String packageName; // e.g. petstore_api protected String packageVersion; @@ -308,7 +309,7 @@ public void postProcessPattern(String pattern, Map vendorExtensi protected void setCaseType() { final String caseType = String.valueOf(additionalProperties.get(CASE_OPTION)); - if (CAMEL_CASE_OPTION.equalsIgnoreCase(caseType) || SNAKE_CASE_OPTION.equalsIgnoreCase(caseType) || KEBAB_CASE_OPTION.equalsIgnoreCase(caseType)) { + if (CAMEL_CASE_OPTION.equalsIgnoreCase(caseType) || SNAKE_CASE_OPTION.equalsIgnoreCase(caseType) || KEBAB_CASE_OPTION.equalsIgnoreCase(caseType) || ORIGINAL_CASE_OPTION.equalsIgnoreCase(caseType)) { this.caseType = caseType; } else { this.caseType = SNAKE_CASE_OPTION; @@ -425,11 +426,13 @@ public String toVarName(String name) { // remove dollar sign name = name.replaceAll("$", ""); - // if it's all uppper case, convert to lower case - if (name.matches("^[A-Z_]*$")) { + // if it's all upper case, convert to lower case + if (!ORIGINAL_CASE_OPTION.equalsIgnoreCase(this.caseType) && name.matches("^[A-Z_]*$")) { name = name.toLowerCase(); } - if (CAMEL_CASE_OPTION.equalsIgnoreCase(this.caseType)) { + if (ORIGINAL_CASE_OPTION.equalsIgnoreCase(this.caseType)) { + // leave the variable name as is + } else if (CAMEL_CASE_OPTION.equalsIgnoreCase(this.caseType)) { name = camelize(name, true); } else if (KEBAB_CASE_OPTION.equalsIgnoreCase(this.caseType)) { name = dashize(name);