an enum AutoName from python docs with multiple stringcase options.
$ pip install autonamefrom autoname import AutoName
from enum import auto
# an enum class
class GameType(AutoName):
INDIE = auto()
print(GameType.INDIE.value) # "INDIE"
# could be alternative in pydantic instead of literal
from pydantic import BaseModel
class Game(BaseModel):
type: GameTypeAlso have others stringcases coverter
AutoNameLower- convert name value to lowercaseAutoNameUpper- convert name value to uppercase
e.g.
from autoname import AutoNameLower
from enum import auto
class GameType(AutoNameLower):
INDIE = auto()
print(GameType.INDIE.value) # "indie"You could also bring your own case convertion algorithm.
from autoname import AutoName, transform
from enum import auto
@transform(function=str.lower)
class GameType(AutoName):
INDIE = auto()
print(GameType.INDIE.value) # "indie"If the autoname is not a sound variable name. there are alias too.
StrEnum=AutoNameLowerStrEnum=AutoNameLowerUpperStrEnum=AutoNameUpper
e.g.
from autoname import StrEnum, transform
from enum import auto
class GameType(StrEnum):
INDIE = auto()
print(GameType.INDIE.value) # "INDIE"StrEnumfromfastapi-utils