aboutsummaryrefslogtreecommitdiff
path: root/venv/lib/python3.8/site-packages/narwhals/_enum.py
diff options
context:
space:
mode:
authorsotech117 <michael_foiani@brown.edu>2025-07-31 17:27:24 -0400
committersotech117 <michael_foiani@brown.edu>2025-07-31 17:27:24 -0400
commit5bf22fc7e3c392c8bd44315ca2d06d7dca7d084e (patch)
tree8dacb0f195df1c0788d36dd0064f6bbaa3143ede /venv/lib/python3.8/site-packages/narwhals/_enum.py
parentb832d364da8c2efe09e3f75828caf73c50d01ce3 (diff)
add code for analysis of data
Diffstat (limited to 'venv/lib/python3.8/site-packages/narwhals/_enum.py')
-rw-r--r--venv/lib/python3.8/site-packages/narwhals/_enum.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/venv/lib/python3.8/site-packages/narwhals/_enum.py b/venv/lib/python3.8/site-packages/narwhals/_enum.py
new file mode 100644
index 0000000..929eecc
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/narwhals/_enum.py
@@ -0,0 +1,42 @@
+from __future__ import annotations
+
+# ruff: noqa: ARG004
+from enum import Enum
+from typing import Any
+
+
+class NoAutoEnum(Enum):
+ """Enum base class that prohibits the use of enum.auto() for value assignment.
+
+ This behavior is achieved by overriding the value generation mechanism.
+
+ Examples:
+ >>> from enum import auto
+ >>> from narwhals._enum import NoAutoEnum
+ >>>
+ >>> class Colors(NoAutoEnum):
+ ... RED = 1
+ ... GREEN = 2
+ >>> Colors.RED
+ <Colors.RED: 1>
+
+ >>> class ColorsWithAuto(NoAutoEnum):
+ ... RED = 1
+ ... GREEN = auto()
+ Traceback (most recent call last):
+ ...
+ ValueError: Creating values with `auto()` is not allowed. Please provide a value manually instead.
+
+ Raises:
+ ValueError: If `auto()` is attempted to be used for any enum member value.
+ """
+
+ @staticmethod
+ def _generate_next_value_(
+ name: str, start: int, count: int, last_values: list[Any]
+ ) -> Any:
+ msg = "Creating values with `auto()` is not allowed. Please provide a value manually instead."
+ raise ValueError(msg)
+
+
+__all__ = ["NoAutoEnum"]