aboutsummaryrefslogtreecommitdiff
path: root/poker
diff options
context:
space:
mode:
Diffstat (limited to 'poker')
-rw-r--r--poker/utils/__init__.py0
-rw-r--r--poker/utils/enum.py27
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()