diff options
author | sotech117 <michael_foiani@brown.edu> | 2025-07-31 17:27:24 -0400 |
---|---|---|
committer | sotech117 <michael_foiani@brown.edu> | 2025-07-31 17:27:24 -0400 |
commit | 5bf22fc7e3c392c8bd44315ca2d06d7dca7d084e (patch) | |
tree | 8dacb0f195df1c0788d36dd0064f6bbaa3143ede /venv/lib/python3.8/site-packages/narwhals/_enum.py | |
parent | b832d364da8c2efe09e3f75828caf73c50d01ce3 (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.py | 42 |
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"] |