From 1e7a4e1756bae8c6bf137b9133e75929ad98fd2d Mon Sep 17 00:00:00 2001 From: Leo Ji Date: Mon, 30 Mar 2026 12:52:45 +0000 Subject: [PATCH 1/3] DOC: remove result="ansi" causing empty code blocks in user guide Closes #3506. Made-with: Cursor --- docs/user-guide/experimental.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/user-guide/experimental.md b/docs/user-guide/experimental.md index eaa53a4622..c7f86337a3 100644 --- a/docs/user-guide/experimental.md +++ b/docs/user-guide/experimental.md @@ -55,7 +55,7 @@ such as a remote store for source data and a local store for persistent caching. The CacheStore provides significant performance improvements for repeated data access: -```python exec="true" session="experimental" source="above" result="ansi" +```python exec="true" session="experimental" source="above" import time # Benchmark reading with cache @@ -121,7 +121,7 @@ cache = CacheStore( **cache_set_data**: Controls whether written data is cached -```python exec="true" session="experimental" source="above" result="ansi" +```python exec="true" session="experimental" source="above" # Cache data when writing (default) cache = CacheStore( store=source_store, @@ -141,7 +141,7 @@ cache = CacheStore( The CacheStore provides statistics to monitor cache performance and state: -```python exec="true" session="experimental" source="above" result="ansi" +```python exec="true" session="experimental" source="above" # Access some data to generate cache activity data = zarr_array[0:50, 0:50] # First access - cache miss data = zarr_array[0:50, 0:50] # Second access - cache hit @@ -232,7 +232,7 @@ of source and cache stores for your specific use case. Here's a complete example demonstrating cache effectiveness: -```python exec="true" session="experimental-final" source="above" result="ansi" +```python exec="true" session="experimental-final" source="above" import numpy as np import time from tempfile import mkdtemp From 4fe185918ec82dd015f23107a391f0b12197f486 Mon Sep 17 00:00:00 2001 From: Leo Ji Date: Mon, 30 Mar 2026 18:03:09 +0000 Subject: [PATCH 2/3] DOC: fix store migration guide: remove broken row, add LRUStoreCache note Removes truncated table row and adds migration note for LRUStoreCache. Closes #2699. Closes #2857. Made-with: Cursor --- docs/user-guide/v3_migration.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/user-guide/v3_migration.md b/docs/user-guide/v3_migration.md index 8f835d4440..a358357489 100644 --- a/docs/user-guide/v3_migration.md +++ b/docs/user-guide/v3_migration.md @@ -142,7 +142,6 @@ The following stores have been renamed or changed: | `DirectoryStore` | [`zarr.storage.LocalStore`][] | | `FSStore` | [`zarr.storage.FsspecStore`][] | | `TempStore` | Use [`tempfile.TemporaryDirectory`][] with [`LocalStore`][zarr.storage.LocalStore] | -| `zarr. A number of deprecated stores were also removed. @@ -152,6 +151,9 @@ See issue #1274 for more details on the removal of these stores. N5 formatted data. - `ABSStore` - use the [`zarr.storage.FsspecStore`][] instead along with fsspec's [adlfs backend](https://github.com/fsspec/adlfs). +- `LRUStoreCache` - no direct equivalent in Zarr-Python 3. Caching behaviour can be + achieved by wrapping a store with a third-party caching layer, or by using an + `FsspecStore` with a caching filesystem (e.g. `fsspec.implementations.caching`). - `DBMStore` - `LMDBStore` - `SQLiteStore` From 7783ebf92780f255485d47140d0c8c44b5287e44 Mon Sep 17 00:00:00 2001 From: Davis Vann Bennett Date: Fri, 9 Oct 2026 19:09:19 +0200 Subject: [PATCH 3/3] docs: point LRUStoreCache migration note at CacheStore Move `LRUStoreCache` into the renamed-stores table, since it was never deprecated in 2.x, and point it at the experimental `zarr.experimental.cache_store.CacheStore`. Replace the nonexistent `fsspec.implementations.caching` module with `fsspec.implementations.cached`, and add the changelog fragment. Assisted-by: ClaudeCode:claude-opus-5-5 --- changes/3850.doc.md | 1 + docs/user-guide/v3_migration.md | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 changes/3850.doc.md diff --git a/changes/3850.doc.md b/changes/3850.doc.md new file mode 100644 index 0000000000..ff5564792b --- /dev/null +++ b/changes/3850.doc.md @@ -0,0 +1 @@ +Document the removal of `LRUStoreCache` in the v3 migration guide, and point to the experimental `zarr.experimental.cache_store.CacheStore` as its replacement. diff --git a/docs/user-guide/v3_migration.md b/docs/user-guide/v3_migration.md index ac9f795509..0e65649650 100644 --- a/docs/user-guide/v3_migration.md +++ b/docs/user-guide/v3_migration.md @@ -165,6 +165,13 @@ The following stores have been renamed or changed: | `DirectoryStore` | [`zarr.storage.LocalStore`][] | | `FSStore` | [`zarr.storage.FsspecStore`][] | | `TempStore` | Use [`tempfile.TemporaryDirectory`][] with [`LocalStore`][zarr.storage.LocalStore] | +| `LRUStoreCache` | [`zarr.experimental.cache_store.CacheStore`][] (experimental) | + +`LRUStoreCache` has no stable equivalent in Zarr-Python 3. The experimental +[`CacheStore`](experimental.md#cachestore) wraps a store and caches its contents in a second +store, evicting the least recently used entries once `max_size` is reached. For remote data read +through [`FsspecStore`][zarr.storage.FsspecStore], fsspec's caching filesystems +(`fsspec.implementations.cached`, e.g. a `simplecache::s3://...` URL) are another option. A number of deprecated stores were also removed. See [issue #1274](https://github.com/zarr-developers/zarr-python/issues/1274) for more details on the removal of these stores. @@ -173,9 +180,6 @@ See [issue #1274](https://github.com/zarr-developers/zarr-python/issues/1274) fo N5 formatted data. - `ABSStore` - use the [`zarr.storage.FsspecStore`][] instead along with fsspec's [adlfs backend](https://github.com/fsspec/adlfs). -- `LRUStoreCache` - no direct equivalent in Zarr-Python 3. Caching behaviour can be - achieved by wrapping a store with a third-party caching layer, or by using an - `FsspecStore` with a caching filesystem (e.g. `fsspec.implementations.caching`). - `DBMStore` - `LMDBStore` - `SQLiteStore`