spatialdata 0.7.0.dev1__tar.gz → 0.7.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/.pre-commit-config.yaml +2 -2
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/PKG-INFO +4 -3
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/_version.py +2 -2
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/conf.py +1 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/contributing.md +5 -2
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/pyproject.toml +3 -2
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/models/models.py +15 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/io/test_readwrite.py +42 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/.bumpversion.cfg +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/.editorconfig +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/.github/codecov.yml +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/.github/release.yml +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/.github/workflows/build_image.yml +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/.github/workflows/release.yaml +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/.github/workflows/test.yaml +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/.gitignore +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/.gitmodules +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/.mypy.ini +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/.readthedocs.yaml +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/CHANGELOG.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/Dockerfile +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/LICENSE +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/README.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/asv.conf.json +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/benchmarks/README.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/benchmarks/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/benchmarks/spatialdata_benchmark.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/benchmarks/utils.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/Makefile +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/_static/.gitkeep +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/_static/css/custom.css +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/_static/img/spatialdata_horizontal.png +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/_templates/.gitkeep +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/_templates/autosummary/base.rst +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/_templates/autosummary/class.rst +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/_templates/autosummary/function.rst +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/api/SpatialData.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/api/data_formats.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/api/dataloader.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/api/datasets.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/api/io.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/api/models.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/api/models_utils.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/api/operations.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/api/testing.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/api/transformations.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/api/transformations_utils.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/api.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/changelog.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/design_doc.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/extensions/typed_returns.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/glossary.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/index.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/installation.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/references.bib +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/references.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/docs/user_guide.md +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/__main__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_bridges/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/_deepcopy.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/_elements.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/_utils.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/centroids.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/concatenate.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/data_extent.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/operations/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/operations/_utils.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/operations/aggregate.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/operations/map.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/operations/rasterize.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/operations/rasterize_bins.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/operations/transform.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/operations/vectorize.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/query/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/query/_utils.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/query/relational_query.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/query/spatial_query.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/spatialdata.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/validation.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_docs.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_io/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_io/_utils.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_io/format.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_io/io_points.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_io/io_raster.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_io/io_shapes.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_io/io_table.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_io/io_zarr.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_logging.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_types.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_utils.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/config.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/dataloader/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/dataloader/datasets.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/datasets.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/io/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/models/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/models/_accessor.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/models/_utils.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/testing.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/transformations/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/transformations/_utils.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/transformations/ngff/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/transformations/ngff/_utils.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/transformations/ngff/ngff_coordinate_system.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/transformations/ngff/ngff_transformations.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/transformations/operations.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/transformations/transformations.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/conftest.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/operations/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/operations/test_aggregations.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/operations/test_map.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/operations/test_rasterize.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/operations/test_rasterize_bins.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/operations/test_spatialdata_operations.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/operations/test_transform.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/operations/test_vectorize.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/query/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/query/test_relational_query.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/query/test_relational_query_match_sdata_to_table.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/query/test_spatial_query.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/test_centroids.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/test_data_extent.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/test_deepcopy.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/test_get_attrs.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/test_validation.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/data/multipolygon.json +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/data/points.json +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/data/polygon.json +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/dataloader/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/dataloader/test_datasets.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/datasets/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/datasets/test_datasets.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/io/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/io/test_attrs_io.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/io/test_format.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/io/test_metadata.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/io/test_multi_table.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/io/test_partial_read.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/io/test_pyramids_performance.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/io/test_utils.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/models/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/models/test_accessor.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/models/test_models.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/transformations/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/transformations/ngff/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/transformations/ngff/conftest.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/transformations/ngff/test_ngff_coordinate_system.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/transformations/ngff/test_ngff_transformations.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/transformations/test_transformations.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/transformations/test_transformations_utils.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/utils/__init__.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/utils/test_element_utils.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/utils/test_sanitize.py +0 -0
- {spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/utils/test_testing.py +0 -0
|
@@ -9,7 +9,7 @@ ci:
|
|
|
9
9
|
skip: []
|
|
10
10
|
repos:
|
|
11
11
|
- repo: https://github.com/rbubley/mirrors-prettier
|
|
12
|
-
rev: v3.
|
|
12
|
+
rev: v3.8.1
|
|
13
13
|
hooks:
|
|
14
14
|
- id: prettier
|
|
15
15
|
exclude: ^.github/workflows/test.yaml
|
|
@@ -20,7 +20,7 @@ repos:
|
|
|
20
20
|
additional_dependencies: [numpy, types-requests]
|
|
21
21
|
exclude: tests/|docs/
|
|
22
22
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
23
|
-
rev: v0.14.
|
|
23
|
+
rev: v0.14.14
|
|
24
24
|
hooks:
|
|
25
25
|
- id: ruff
|
|
26
26
|
args: [--fix, --exit-non-zero-on-fix]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: spatialdata
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.1
|
|
4
4
|
Summary: Spatial data format.
|
|
5
5
|
Project-URL: Documentation, https://spatialdata.scverse.org/en/latest
|
|
6
6
|
Project-URL: Source, https://github.com/scverse/spatialdata.git
|
|
@@ -42,7 +42,7 @@ Requires-Dist: anndata>=0.9.1
|
|
|
42
42
|
Requires-Dist: annsel>=0.1.2
|
|
43
43
|
Requires-Dist: click
|
|
44
44
|
Requires-Dist: dask-image
|
|
45
|
-
Requires-Dist: dask
|
|
45
|
+
Requires-Dist: dask<2026.1.2,>=2025.2.0
|
|
46
46
|
Requires-Dist: datashader
|
|
47
47
|
Requires-Dist: fsspec[http,s3]
|
|
48
48
|
Requires-Dist: geopandas>=0.14
|
|
@@ -56,7 +56,7 @@ Requires-Dist: pooch
|
|
|
56
56
|
Requires-Dist: pyarrow
|
|
57
57
|
Requires-Dist: rich
|
|
58
58
|
Requires-Dist: scikit-image
|
|
59
|
-
Requires-Dist: scipy
|
|
59
|
+
Requires-Dist: scipy!=1.17.0
|
|
60
60
|
Requires-Dist: setuptools
|
|
61
61
|
Requires-Dist: shapely>=2.0.1
|
|
62
62
|
Requires-Dist: spatial-image>=1.2.3
|
|
@@ -68,6 +68,7 @@ Requires-Dist: xarray>=2024.10.0
|
|
|
68
68
|
Requires-Dist: zarr>=3.0.0
|
|
69
69
|
Provides-Extra: benchmark
|
|
70
70
|
Requires-Dist: asv; extra == 'benchmark'
|
|
71
|
+
Requires-Dist: memray; extra == 'benchmark'
|
|
71
72
|
Provides-Extra: dev
|
|
72
73
|
Requires-Dist: bump2version; extra == 'dev'
|
|
73
74
|
Requires-Dist: sentry-prevent-cli; extra == 'dev'
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.7.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 7,
|
|
31
|
+
__version__ = version = '0.7.1'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 7, 1)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -123,6 +123,7 @@ exclude_patterns = [
|
|
|
123
123
|
"tutorials/notebooks/notebooks/developers_resources/storage_format/Readme.md",
|
|
124
124
|
"tutorials/notebooks/notebooks/examples/technology_stereoseq.ipynb",
|
|
125
125
|
"tutorials/notebooks/notebooks/examples/technology_curio.ipynb",
|
|
126
|
+
"tutorials/notebooks/notebooks/examples/technology_cosmx.ipynb",
|
|
126
127
|
"tutorials/notebooks/notebooks/examples/stereoseq_data/*",
|
|
127
128
|
]
|
|
128
129
|
# Ignore warnings.
|
|
@@ -74,6 +74,10 @@ Additionally, there's a CI job that tests against pre-releases of all dependenci
|
|
|
74
74
|
|
|
75
75
|
By including this additional information, the document now provides a more comprehensive overview of the continuous integration process related to testing.
|
|
76
76
|
|
|
77
|
+
### Integration testing
|
|
78
|
+
|
|
79
|
+
Cross-repo integration testing is available in the [spatialdata-integration-testing](https://github.com/scverse/spatialdata-integration-testing/) repo. Please follow the instructions in the Readme. For questions ask Luca.
|
|
80
|
+
|
|
77
81
|
## Publishing a release
|
|
78
82
|
|
|
79
83
|
### Updating the version number
|
|
@@ -87,6 +91,7 @@ Before making a release, you need to update the version number. Please adhere to
|
|
|
87
91
|
> 3. PATCH version when you make backwards compatible bug fixes.
|
|
88
92
|
>
|
|
89
93
|
> Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
|
|
94
|
+
> For pre-release please use the aX suffix, such as v0.7.0a0, v0.7.0a1. Do not use the devX suffix since it doesn't support multiple incremental versions.
|
|
90
95
|
|
|
91
96
|
You can find the [labels for pre-release in this page](https://packaging.python.org/en/latest/discussions/versioning/#valid-version-numbers).
|
|
92
97
|
|
|
@@ -97,8 +102,6 @@ If you use `bump2version`, you can run one of the following commands in the root
|
|
|
97
102
|
bump2version patch
|
|
98
103
|
bump2version minor
|
|
99
104
|
bump2version major
|
|
100
|
-
# if you want to create a pre-release
|
|
101
|
-
bump2version --new-version 1.2.0rc1
|
|
102
105
|
```
|
|
103
106
|
|
|
104
107
|
Once you are done, run
|
|
@@ -26,7 +26,7 @@ dependencies = [
|
|
|
26
26
|
"annsel>=0.1.2",
|
|
27
27
|
"click",
|
|
28
28
|
"dask-image",
|
|
29
|
-
"dask>=2025.2.0",
|
|
29
|
+
"dask>=2025.2.0,<2026.1.2",
|
|
30
30
|
"datashader",
|
|
31
31
|
"fsspec[s3,http]",
|
|
32
32
|
"geopandas>=0.14",
|
|
@@ -43,7 +43,7 @@ dependencies = [
|
|
|
43
43
|
"shapely>=2.0.1",
|
|
44
44
|
"spatial_image>=1.2.3",
|
|
45
45
|
"scikit-image",
|
|
46
|
-
"scipy",
|
|
46
|
+
"scipy!=1.17.0",
|
|
47
47
|
"typing_extensions>=4.8.0",
|
|
48
48
|
"universal_pathlib>=0.2.6",
|
|
49
49
|
"xarray>=2024.10.0",
|
|
@@ -78,6 +78,7 @@ docs = [
|
|
|
78
78
|
]
|
|
79
79
|
benchmark = [
|
|
80
80
|
"asv",
|
|
81
|
+
"memray",
|
|
81
82
|
]
|
|
82
83
|
torch = [
|
|
83
84
|
"torch"
|
|
@@ -1061,6 +1061,21 @@ class TableModel:
|
|
|
1061
1061
|
if len(set(expected_regions).symmetric_difference(set(found_regions))) > 0:
|
|
1062
1062
|
raise ValueError(f"Regions in the AnnData object and `{attr[self.REGION_KEY_KEY]}` do not match.")
|
|
1063
1063
|
|
|
1064
|
+
# Warning for object/string columns with NaN in region_key or instance_key
|
|
1065
|
+
instance_key = attr[self.INSTANCE_KEY]
|
|
1066
|
+
region_key = attr[self.REGION_KEY_KEY]
|
|
1067
|
+
for key_name, key_value in [("region_key", region_key), ("instance_key", instance_key)]:
|
|
1068
|
+
if key_value in data.obs:
|
|
1069
|
+
col = data.obs[key_value]
|
|
1070
|
+
col_dtype = col.dtype
|
|
1071
|
+
if (col_dtype == "object" or pd.api.types.is_string_dtype(col_dtype)) and col.isna().any():
|
|
1072
|
+
logger.warning(
|
|
1073
|
+
f"The {key_name} column '{key_value}' is of {col_dtype} type and contains NaN values. "
|
|
1074
|
+
"After writing and reading with AnnData, NaN values may (depending on the AnnData version) "
|
|
1075
|
+
"be converted to strings. This may cause issues when matching instances across read/write "
|
|
1076
|
+
"cycles."
|
|
1077
|
+
)
|
|
1078
|
+
|
|
1064
1079
|
def validate(
|
|
1065
1080
|
self,
|
|
1066
1081
|
data: AnnData,
|
|
@@ -1065,3 +1065,45 @@ def test_read_sdata(tmp_path: Path, points: SpatialData) -> None:
|
|
|
1065
1065
|
assert_spatial_data_objects_are_identical(sdata_from_path, sdata_from_str)
|
|
1066
1066
|
assert_spatial_data_objects_are_identical(sdata_from_path, sdata_from_upath)
|
|
1067
1067
|
assert_spatial_data_objects_are_identical(sdata_from_path, sdata_from_zarr_group)
|
|
1068
|
+
|
|
1069
|
+
|
|
1070
|
+
def test_sdata_with_nan_in_obs() -> None:
|
|
1071
|
+
"""Test writing SpatialData with mixed string/NaN values in obs works correctly.
|
|
1072
|
+
|
|
1073
|
+
Regression test for https://github.com/scverse/spatialdata/issues/399
|
|
1074
|
+
Previously this raised TypeError: expected unicode string, found nan.
|
|
1075
|
+
Now the write succeeds, though NaN values in object-dtype columns are
|
|
1076
|
+
converted to the string "nan" after round-trip.
|
|
1077
|
+
"""
|
|
1078
|
+
from spatialdata.models import TableModel
|
|
1079
|
+
|
|
1080
|
+
table = TableModel.parse(
|
|
1081
|
+
AnnData(
|
|
1082
|
+
obs=pd.DataFrame(
|
|
1083
|
+
{
|
|
1084
|
+
"region": ["region1", "region2"],
|
|
1085
|
+
"instance": [0, 0],
|
|
1086
|
+
"column_only_region1": ["string", np.nan],
|
|
1087
|
+
"column_only_region2": [np.nan, 3],
|
|
1088
|
+
}
|
|
1089
|
+
)
|
|
1090
|
+
),
|
|
1091
|
+
region_key="region",
|
|
1092
|
+
instance_key="instance",
|
|
1093
|
+
region=["region1", "region2"],
|
|
1094
|
+
)
|
|
1095
|
+
sdata = SpatialData(tables={"table": table})
|
|
1096
|
+
assert sdata["table"].obs["column_only_region1"].iloc[1] is np.nan
|
|
1097
|
+
assert np.isnan(sdata["table"].obs["column_only_region2"].iloc[0])
|
|
1098
|
+
|
|
1099
|
+
with tempfile.TemporaryDirectory() as tmpdir:
|
|
1100
|
+
path = os.path.join(tmpdir, "data.zarr")
|
|
1101
|
+
sdata.write(path)
|
|
1102
|
+
|
|
1103
|
+
sdata2 = SpatialData.read(path)
|
|
1104
|
+
assert "column_only_region1" in sdata2["table"].obs.columns
|
|
1105
|
+
assert sdata2["table"].obs["column_only_region1"].iloc[0] == "string"
|
|
1106
|
+
assert sdata2["table"].obs["column_only_region2"].iloc[1] == 3
|
|
1107
|
+
# After round-trip, NaN in object-dtype column becomes string "nan"
|
|
1108
|
+
assert sdata2["table"].obs["column_only_region1"].iloc[1] == "nan"
|
|
1109
|
+
assert np.isnan(sdata2["table"].obs["column_only_region2"].iloc[0])
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/operations/rasterize_bins.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/_core/query/relational_query.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/transformations/ngff/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/src/spatialdata/transformations/transformations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/core/operations/test_spatialdata_operations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/transformations/ngff/test_ngff_transformations.py
RENAMED
|
File without changes
|
|
File without changes
|
{spatialdata-0.7.0.dev1 → spatialdata-0.7.1}/tests/transformations/test_transformations_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|