diff --git a/narwhals/dtypes.py b/narwhals/dtypes.py index 8ef5d30183..b433bd6fd5 100644 --- a/narwhals/dtypes.py +++ b/narwhals/dtypes.py @@ -633,9 +633,9 @@ def __init__(self, categories: Iterable[str] | type[enum.Enum]) -> None: @property def categories(self) -> tuple[str, ...]: """The categories in the dataset.""" - if cached := self._cached_categories: + if (cached := self._cached_categories) is not None: return cached - if delayed := self._delayed_categories: + if (delayed := self._delayed_categories) is not None: self._cached_categories = delayed.to_tuple() return self._cached_categories msg = f"Internal structure of {type(self).__name__!r} is invalid." # pragma: no cover diff --git a/tests/dtypes/dtypes_test.py b/tests/dtypes/dtypes_test.py index 8c6eb7f6c4..7fb5cc29f2 100644 --- a/tests/dtypes/dtypes_test.py +++ b/tests/dtypes/dtypes_test.py @@ -441,7 +441,9 @@ def test_cast_decimal_to_native() -> None: ) -@pytest.mark.parametrize("categories", [["a", "b"], enum.Enum("Test", "a b"), [1, 2, 3]]) +@pytest.mark.parametrize( + "categories", [["a", "b"], enum.Enum("Test", "a b"), [1, 2, 3], []] +) def test_enum_valid(categories: Iterable[Any] | type[enum.Enum]) -> None: dtype = nw.Enum(categories) assert dtype == nw.Enum