diff --git a/.chronus/changes/python-removeEnumPadding-2026-1-27-12-23-22.md b/.chronus/changes/python-removeEnumPadding-2026-1-27-12-23-22.md new file mode 100644 index 00000000000..c0e8e0fa7ab --- /dev/null +++ b/.chronus/changes/python-removeEnumPadding-2026-1-27-12-23-22.md @@ -0,0 +1,7 @@ +--- +changeKind: feature +packages: + - "@typespec/http-client-python" +--- + +Remove enum value padding because we generate our enum value names with upper case so there is no need diff --git a/packages/http-client-python/generator/pygen/preprocess/__init__.py b/packages/http-client-python/generator/pygen/preprocess/__init__.py index 315d8ff9078..e2f8cf842b3 100644 --- a/packages/http-client-python/generator/pygen/preprocess/__init__.py +++ b/packages/http-client-python/generator/pygen/preprocess/__init__.py @@ -21,7 +21,6 @@ get_body_type_for_description, JSON_REGEXP, KNOWN_TYPES, - update_enum_value, ) @@ -272,25 +271,12 @@ def update_types(self, yaml_data: list[dict[str, Any]]) -> None: type["description"] = update_description(type.get("description", ""), type["name"]) type["snakeCaseName"] = to_snake_case(type["name"]) if type.get("values"): - # we're enums - values_to_add = [] + # we're enums - enum values are UPPER_CASE so no padding needed for reserved words for value in type["values"]: - padded_name = self.pad_reserved_words(value["name"].lower(), PadType.ENUM_VALUE, value).upper() - if self.version_tolerant: - if padded_name[0] in "0123456789": - padded_name = "ENUM_" + padded_name - value["name"] = padded_name - else: - if value["name"] != padded_name: - values_to_add.append( - update_enum_value( - name=padded_name, - value=value["value"], - description=value["description"], - enum_type=value["enumType"], - ) - ) - type["values"].extend(values_to_add) + upper_name = value["name"].upper() + if upper_name[0] in "0123456789": + upper_name = "ENUM_" + upper_name + value["name"] = upper_name # add type for reference for v in HEADERS_CONVERT_IN_METHOD.values(): diff --git a/packages/http-client-python/generator/pygen/preprocess/python_mappings.py b/packages/http-client-python/generator/pygen/preprocess/python_mappings.py index d81bee8134d..c9621498437 100644 --- a/packages/http-client-python/generator/pygen/preprocess/python_mappings.py +++ b/packages/http-client-python/generator/pygen/preprocess/python_mappings.py @@ -56,7 +56,6 @@ class PadType(str, Enum): ENUM_CLASS = "Enum" METHOD = "_method" PARAMETER = "_parameter" - ENUM_VALUE = "_enum" PROPERTY = "_property" OPERATION_GROUP = "Operations" @@ -183,7 +182,6 @@ class PadType(str, Enum): PadType.MODEL: ["enum", *_always_reserved], PadType.PROPERTY: ["self", *_always_reserved], PadType.ENUM_CLASS: ["enum", *_always_reserved], - PadType.ENUM_VALUE: ["mro", *_always_reserved], PadType.OPERATION_GROUP: [*_always_reserved], } diff --git a/packages/http-client-python/generator/test/unittests/test_name_converter.py b/packages/http-client-python/generator/test/unittests/test_name_converter.py index c205c0b0bae..4bfbee891b6 100644 --- a/packages/http-client-python/generator/test/unittests/test_name_converter.py +++ b/packages/http-client-python/generator/test/unittests/test_name_converter.py @@ -34,10 +34,3 @@ def test_escaped_reserved_words(): for name in expected_conversion_parameter: assert pad_reserved_words(name, pad_type=PadType.PARAMETER) == expected_conversion_parameter[name] - expected_conversion_enum = { - "self": "self", - "mro": "mro_enum", - "continuation_token": "continuation_token", - } - for name in expected_conversion_enum: - assert pad_reserved_words(name, pad_type=PadType.ENUM_VALUE) == expected_conversion_enum[name]