From 64c7f6783b4a6e3965fb3c37620653084fd6e6e0 Mon Sep 17 00:00:00 2001 From: jonas2612 Date: Thu, 30 Oct 2025 07:59:10 +0100 Subject: [PATCH 1/2] fix categories import --- src/spatialdata/models/models.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/spatialdata/models/models.py b/src/spatialdata/models/models.py index 60f4ee20..e8bc0815 100644 --- a/src/spatialdata/models/models.py +++ b/src/spatialdata/models/models.py @@ -885,7 +885,8 @@ def _add_metadata_and_validate( # It also just changes the state of the series, so it is not a big deal. if isinstance(data[c].dtype, CategoricalDtype) and not data[c].cat.known: try: - data[c] = data[c].cat.set_categories(data[c].head(1).cat.categories) + data[c] = data[c].cat.as_known() + data[c] = data[c].cat.set_categories(data[c]._meta.cat.categories) except ValueError: logger.info(f"Column `{c}` contains unknown categories. Consider casting it.") From 8425f3497135c7741125d319bbb1d2f65fff7af5 Mon Sep 17 00:00:00 2001 From: jonas2612 Date: Mon, 3 Nov 2025 16:17:46 +0100 Subject: [PATCH 2/2] ensure reproducibility --- src/spatialdata/models/models.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/spatialdata/models/models.py b/src/spatialdata/models/models.py index e8bc0815..a4efd60e 100644 --- a/src/spatialdata/models/models.py +++ b/src/spatialdata/models/models.py @@ -885,8 +885,7 @@ def _add_metadata_and_validate( # It also just changes the state of the series, so it is not a big deal. if isinstance(data[c].dtype, CategoricalDtype) and not data[c].cat.known: try: - data[c] = data[c].cat.as_known() - data[c] = data[c].cat.set_categories(data[c]._meta.cat.categories) + data[c] = data[c].cat.set_categories(data[c].compute().cat.categories) except ValueError: logger.info(f"Column `{c}` contains unknown categories. Consider casting it.")