Skip to content

Commit ccaf682

Browse files
feat(python): Improved error message on invalid Python Enum init (#20060)
1 parent 4a46723 commit ccaf682

File tree

3 files changed

+5
-7
lines changed

3 files changed

+5
-7
lines changed

py-polars/polars/convert/general.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -782,7 +782,7 @@ def _from_series_repr(m: re.Match[str]) -> Series:
782782
else:
783783
string_values = [
784784
v.strip()
785-
for v in re.findall(r"[\s>#]*(?:\t|\s{4,})([^\n]*)\n", m.groups()[-1])
785+
for v in re.findall(r"[\s>#]*(?:\t|\s{2,})([^\n]*)\n", m.groups()[-1])
786786
]
787787
if string_values == ["[", "]"]:
788788
string_values = []

py-polars/polars/datatypes/classes.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -622,10 +622,10 @@ def __init__(self, categories: Series | Iterable[str] | type[enum.Enum]) -> None
622622
)
623623

624624
if isclass(categories) and issubclass(categories, enum.Enum):
625-
for enum_subclass in (enum.IntFlag, enum.Flag, enum.IntEnum):
625+
for enum_subclass in (enum.Flag, enum.IntEnum):
626626
if issubclass(categories, enum_subclass):
627-
enum_type_name = enum_subclass.__name__
628-
msg = f"Enum categories must be strings; Python `enum.{enum_type_name}` values are integers"
627+
enum_type_name = categories.__name__
628+
msg = f"Enum categories must be strings; `{enum_type_name}` values are integers"
629629
raise TypeError(msg)
630630

631631
enum_values = [

py-polars/tests/unit/datatypes/test_enum.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,9 @@ class Color(EnumBase): # type: ignore[no-redef,misc,valid-type]
9494
GREEN = enum.auto()
9595
BLUE = enum.auto()
9696

97-
base_name = EnumBase.__name__
98-
9997
with pytest.raises(
10098
TypeError,
101-
match=f"Enum categories must be strings; Python `enum.{base_name}` values are integers",
99+
match="Enum categories must be strings; `Color` values are integers",
102100
):
103101
pl.Enum(Color)
104102

0 commit comments

Comments
 (0)