Skip to content

Commit a95fa8f

Browse files
committed
WIP: support for zarr v3
1 parent b974d55 commit a95fa8f

6 files changed

Lines changed: 187 additions & 46 deletions

File tree

.python-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.10
1+
3.12

docs/data_options.rst

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,15 +129,18 @@ This is currently supported for the ``AnnDataWrapper`` class using the ``adata_s
129129
vc.widget()
130130
131131
132-
Or, with a Zarr store instance (instead of a local string path to a DirectoryStore):
132+
Or, with a Zarr store instance (instead of a local string path to a LocalStore/DirectoryStore):
133133

134134
.. code-block:: python
135135
136136
import zarr
137+
from obstore.store import HTTPStore
137138
from vitessce import VitessceConfig, AnnDataWrapper
138139
139-
# ...
140-
store = zarr.storage.FSStore("s3://my_bucket/path/to/my_store.adata.zarr")
140+
obs_store = HTTPStore.from_url("https://my_bucket.example.com/path/to/my_store.adata.zarr")
141+
store = zarr.storage.ObjectStore(obs_store, read_only=True)
142+
# or
143+
store = zarr.storage.LocalStore("./path/to/my_store.adata.zarr")
141144
142145
vc = VitessceConfig(name="My Vitessce Configuration")
143146
vc.add_dataset(name="My Dataset").add_object(AnnDataWrapper(

docs/notebooks/spatial_data_blobs.ipynb

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@
115115
")\n",
116116
"# Add data to the configuration:\n",
117117
"wrapper = SpatialDataWrapper(\n",
118-
" sdata_path=spatialdata_filepath,\n",
118+
" sdata_store=spatialdata_filepath,\n",
119119
" # The following paths are relative to the root of the SpatialData zarr store on-disk.\n",
120120
" image_path=\"images/blobs_image\",\n",
121121
" obs_segmentations_path=\"labels/blobs_labels\",\n",
@@ -129,7 +129,7 @@
129129
" }\n",
130130
")\n",
131131
"points_wrapper = SpatialDataWrapper(\n",
132-
" sdata_path=spatialdata_filepath,\n",
132+
" sdata_store=spatialdata_filepath,\n",
133133
" # The following paths are relative to the root of the SpatialData zarr store on-disk.\n",
134134
" obs_points_path=\"points/blobs_points\",\n",
135135
" obs_feature_matrix_path=\"tables/table_points/X\", # TODO\n",
@@ -221,6 +221,27 @@
221221
"outputs": [],
222222
"source": []
223223
},
224+
{
225+
"cell_type": "code",
226+
"execution_count": null,
227+
"metadata": {},
228+
"outputs": [],
229+
"source": []
230+
},
231+
{
232+
"cell_type": "code",
233+
"execution_count": null,
234+
"metadata": {},
235+
"outputs": [],
236+
"source": []
237+
},
238+
{
239+
"cell_type": "code",
240+
"execution_count": null,
241+
"metadata": {},
242+
"outputs": [],
243+
"source": []
244+
},
224245
{
225246
"cell_type": "code",
226247
"execution_count": null,
@@ -245,7 +266,7 @@
245266
"name": "python",
246267
"nbconvert_exporter": "python",
247268
"pygments_lexer": "ipython3",
248-
"version": "3.10.14"
269+
"version": "3.12.5"
249270
}
250271
},
251272
"nbformat": 4,

pyproject.toml

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ authors = [
1111
description = "Jupyter widget facilitating interactive visualization of spatial single-cell data with Vitessce"
1212
readme = "README.md"
1313
license = {file = "LICENSE"}
14-
requires-python = ">=3.10"
14+
requires-python = ">=3.12"
1515
keywords = ["ipython", "jupyter", "widgets"]
1616
classifiers = [
1717
'Development Status :: 4 - Beta',
@@ -30,7 +30,6 @@ dependencies = [
3030
'black>=21.11b1',
3131
'numpy>=1.21.2',
3232
'zarr>=3.0.0',
33-
'numcodecs>=0.5.7,<0.16.0',
3433
]
3534

3635
[project.optional-dependencies]
@@ -61,7 +60,7 @@ docs = [
6160
all = [
6261
# For data_utils
6362
'negspy>=0.2.24',
64-
'anndata>=0.7.8',
63+
'anndata>=0.12.10',
6564
# scanpy < 1.10.3 does not support numpy >= 2.0.0 and does not
6665
# Reference: https://github.com/scverse/scanpy/pull/3115/files
6766
'scanpy>=1.10.2',
@@ -70,13 +69,13 @@ all = [
7069

7170
'jupyter-server-proxy>=1.5.2',
7271
'oxc-py>=0.1.1',
73-
'anywidget>=0.9.10',
72+
'anywidget>=0.11.0',
7473
'uvicorn>=0.17.0',
7574
'ujson>=4.0.1',
7675
'starlette>=0.14.0',
7776
'generate-tiff-offsets>=0.1.9',
7877
'kerchunk>=0.2.6',
79-
'fsspec',
78+
'obstore',
8079

8180
# aiofiles is not explicitly referenced in our code,
8281
# but it is an implicit dependency of starlette==0.14.0.
@@ -88,8 +87,7 @@ building = []
8887
testing = []
8988
linting = []
9089
notebook = [
91-
'spatialdata>=0.3.0',
92-
'dask[dataframe]>=2025.2.0',
90+
'spatialdata>=0.7.3',
9391
'marimo',
9492
'starlette>=0.42.0',
9593
'tqdm>=4.1.0',
@@ -121,8 +119,7 @@ dev = [
121119
'boto3>=1.16.30',
122120
'scikit-misc>=0.1.3',
123121
'autopep8>=2.0.2',
124-
'spatialdata>=0.3.0',
125-
'dask[dataframe]>=2025.2.0',
122+
'spatialdata>=0.7.3',
126123
]
127124

128125
[tool.uv]

0 commit comments

Comments
 (0)