openapi-generator
openapi-generator copied to clipboard
[BUG] python generated models for py3.11+ should use StrEnum instead of str,Enum
Bug Report Checklist
As of python 3.11, a generate model class class MyType(str, Enum) should be replaced by class MyType(StrEnum)
Quite annoying, more info https://blog.pecar.me/python-enum
how critical is it?
we still need to support older versions of python, e.g. 3.9 even though it's reached EOL
one workaround is to use customized templates (e.g. -t via CLI)
@wing328 i was not suggesting to drop all older python versions. i am well aware that i spartically impossible.
the impact depends on how you use the enums in code: if you keep using the myenum.NAME.value, nothing changes, but if you use the enum stringifictaion, like f"{myenum.NAME}" (and expect the .value string) it is broken.
a solution might be to do something like
try:
from enum import StrEnum
except:
class StrEnum(str, Enum):
...
and use StrEnum in the generated code ?