Skip to content

Commit 3823804

Browse files
Support polars.DataFrame in default_title
1 parent 1f22e3c commit 3823804

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

pins/drivers.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -235,13 +235,15 @@ def save_data(
235235

236236

237237
def default_title(obj, name):
238-
import pandas as pd
238+
df_family = _get_df_family(obj)
239239

240-
if isinstance(obj, pd.DataFrame):
240+
if df_family in ("pandas", "polars"):
241241
# TODO(compat): title says CSV rather than data.frame
242242
# see https://github.com/machow/pins-python/issues/5
243243
shape_str = " x ".join(map(str, obj.shape))
244244
return f"{name}: a pinned {shape_str} DataFrame"
245-
else:
245+
elif df_family == "unknown":
246246
obj_name = type(obj).__qualname__
247247
return f"{name}: a pinned {obj_name} object"
248+
else:
249+
assert_never(df_family)

pins/tests/test_drivers.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import fsspec
22
import pytest
33
import pandas as pd
4+
import polars as pl
45

56
from pathlib import Path
67

@@ -35,6 +36,7 @@ class D:
3536
[
3637
(pd.DataFrame({"x": [1, 2]}), "somename: a pinned 2 x 1 DataFrame"),
3738
(pd.DataFrame({"x": [1], "y": [2]}), "somename: a pinned 1 x 2 DataFrame"),
39+
(pl.DataFrame({"x": [1, 2]}), "somename: a pinned 2 x 1 DataFrame"),
3840
(ExC(), "somename: a pinned ExC object"),
3941
(ExC().D(), "somename: a pinned ExC.D object"),
4042
([1, 2, 3], "somename: a pinned list object"),

0 commit comments

Comments
 (0)