diff options
Diffstat (limited to 'poker/utils')
-rw-r--r-- | poker/utils/__init__.py | 0 | ||||
-rw-r--r-- | poker/utils/enum.py | 27 |
2 files changed, 27 insertions, 0 deletions
diff --git a/poker/utils/__init__.py b/poker/utils/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/poker/utils/__init__.py diff --git a/poker/utils/enum.py b/poker/utils/enum.py new file mode 100644 index 0000000..91e83a5 --- /dev/null +++ b/poker/utils/enum.py @@ -0,0 +1,27 @@ +from enum import StrEnum +from typing import Any + + +class AutoName(StrEnum): + """Use the lower case name as the value for Python Enum (default would be integers). + + Inherits from str to ensure all types are string and as a bonus it becomes JSON + serializable. + + See here for more information: + https://docs.python.org/3/library/enum.html#using-automatic-values + """ + + def __str__(self) -> str: + """Return string representation.""" + return str(self.value) + + @staticmethod + def _generate_next_value_( + name: str, start: int, count: int, last_values: list[Any] + ) -> str: + """Enum standard structure - the next value. + + See this on @staticmethod: https://github.com/python/mypy/issues/7591 + """ + return name.lower() |