From 021eb8c95a59c6e89814ddeb614d0fc6de770513 Mon Sep 17 00:00:00 2001 From: Blampey Quentin Date: Tue, 12 Nov 2024 18:25:24 +0100 Subject: [PATCH 1/2] Added a spatialdata-io mirror --- src/spatialdata/__init__.py | 1 + src/spatialdata/_accessors.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 src/spatialdata/_accessors.py diff --git a/src/spatialdata/__init__.py b/src/spatialdata/__init__.py index 8b0664aba..dbe0dcbed 100644 --- a/src/spatialdata/__init__.py +++ b/src/spatialdata/__init__.py @@ -53,6 +53,7 @@ ] from spatialdata import dataloader, datasets, models, transformations +from spatialdata._accessors import io from spatialdata._core._deepcopy import deepcopy from spatialdata._core.centroids import get_centroids from spatialdata._core.concatenate import concatenate diff --git a/src/spatialdata/_accessors.py b/src/spatialdata/_accessors.py new file mode 100644 index 000000000..ff402a9cf --- /dev/null +++ b/src/spatialdata/_accessors.py @@ -0,0 +1,16 @@ +import types + +try: + import spatialdata_io as io +except ImportError: + + io = types.ModuleType("spatialdata_io") + + def _raise_install_spatialdata_io() -> None: + raise AttributeError( + "To use readers, `spatialdata_io` must be installed, e.g. via `pip install spatialdata-io`." + ) + + io.__getattr__ = lambda *_: _raise_install_spatialdata_io() + +__all__ = ["io"] From aa6f40e2e14c657108dafb3578e0f65ed652af2e Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Mon, 6 Jan 2025 13:01:22 +0100 Subject: [PATCH 2/2] removed io acessor, using io package --- src/spatialdata/__init__.py | 1 - src/spatialdata/_accessors.py | 16 ---------------- src/spatialdata/_bridges/__init__.py | 0 src/spatialdata/io/__init__.py | 9 +++++++++ 4 files changed, 9 insertions(+), 17 deletions(-) delete mode 100644 src/spatialdata/_accessors.py create mode 100644 src/spatialdata/_bridges/__init__.py create mode 100644 src/spatialdata/io/__init__.py diff --git a/src/spatialdata/__init__.py b/src/spatialdata/__init__.py index 7df417d4a..598660597 100644 --- a/src/spatialdata/__init__.py +++ b/src/spatialdata/__init__.py @@ -55,7 +55,6 @@ ] from spatialdata import dataloader, datasets, models, transformations -from spatialdata._accessors import io from spatialdata._core._deepcopy import deepcopy from spatialdata._core.centroids import get_centroids from spatialdata._core.concatenate import concatenate diff --git a/src/spatialdata/_accessors.py b/src/spatialdata/_accessors.py deleted file mode 100644 index ff402a9cf..000000000 --- a/src/spatialdata/_accessors.py +++ /dev/null @@ -1,16 +0,0 @@ -import types - -try: - import spatialdata_io as io -except ImportError: - - io = types.ModuleType("spatialdata_io") - - def _raise_install_spatialdata_io() -> None: - raise AttributeError( - "To use readers, `spatialdata_io` must be installed, e.g. via `pip install spatialdata-io`." - ) - - io.__getattr__ = lambda *_: _raise_install_spatialdata_io() - -__all__ = ["io"] diff --git a/src/spatialdata/_bridges/__init__.py b/src/spatialdata/_bridges/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/spatialdata/io/__init__.py b/src/spatialdata/io/__init__.py new file mode 100644 index 000000000..a23181cad --- /dev/null +++ b/src/spatialdata/io/__init__.py @@ -0,0 +1,9 @@ +"""Experimental bridge to the spatialdata_io package.""" + +try: + from spatialdata_io import * # noqa: F403 +except ImportError as e: + raise ImportError( + "To access spatialdata.io, `spatialdata_io` must be installed, e.g. via `pip install spatialdata-io`. " + f"Original exception: {e}" + ) from e