Skip to content

Commit 2e115d4

Browse files
timtreisclaude
andcommitted
Restore dask Series handling in _coerce_categorical_source
The points datashader path passes dask Series (from a dask DataFrame) to this function. Dask Series lacks .array, so we must compute() first. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent ea71fed commit 2e115d4

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/spatialdata_plot/pl/render.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,12 @@
6969
_DS_NAN_CATEGORY = "ds_nan"
7070

7171

72-
def _coerce_categorical_source(series: pd.Series) -> pd.Categorical:
73-
"""Return a ``pd.Categorical`` from a pandas Series."""
72+
def _coerce_categorical_source(series: pd.Series | dd.Series) -> pd.Categorical:
73+
"""Return a ``pd.Categorical`` from a pandas or dask Series."""
74+
if isinstance(series, dd.Series):
75+
if isinstance(series.dtype, pd.CategoricalDtype) and getattr(series.cat, "known", True) is False:
76+
series = series.cat.as_known()
77+
series = series.compute()
7478
if isinstance(series.dtype, pd.CategoricalDtype):
7579
return series.array
7680
return pd.Categorical(series)

0 commit comments

Comments
 (0)