Skip to content

Commit 91dd973

Browse files
authored
Merge branch 'main' into zarr-metadata-model-layer
2 parents 06668a7 + aedb360 commit 91dd973

4 files changed

Lines changed: 18 additions & 99 deletions

File tree

.pre-commit-config.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ default_language_version:
1515

1616
repos:
1717
- repo: https://github.com/astral-sh/ruff-pre-commit
18-
rev: v0.15.15
18+
rev: v0.15.20
1919
hooks:
2020
- id: ruff-check
2121
args: ["--fix", "--show-fixes"]
@@ -41,11 +41,11 @@ repos:
4141
always_run: true
4242
types_or: [python, pyi]
4343
- repo: https://github.com/scientific-python/cookie
44-
rev: 2026.04.04
44+
rev: 2026.06.18
4545
hooks:
4646
- id: sp-repo-review
4747
- repo: https://github.com/numpy/numpydoc
48-
rev: v1.10.0
48+
rev: v1.11.0rc0
4949
hooks:
5050
- id: numpydoc-validation
5151
- repo: local
@@ -58,7 +58,7 @@ repos:
5858
types: [python]
5959
files: ^(src|tests)/
6060
- repo: https://github.com/zizmorcore/zizmor-pre-commit
61-
rev: v1.25.2
61+
rev: v1.26.1
6262
hooks:
6363
- id: zizmor
6464
- repo: https://github.com/twisted/towncrier

README.md

Lines changed: 8 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -4,97 +4,14 @@
44

55
# Zarr
66

7-
<table>
8-
<tr>
9-
<td>Latest Release</td>
10-
<td>
11-
<a href="https://pypi.org/project/zarr/">
12-
<img src="https://badge.fury.io/py/zarr.svg" alt="latest release" />
13-
</a>
14-
</td>
15-
</tr>
16-
<tr>
17-
<td></td>
18-
<td>
19-
<a href="https://anaconda.org/anaconda/zarr/">
20-
<img src="https://anaconda.org/conda-forge/zarr/badges/version.svg" alt="latest release" />
21-
</a>
22-
</td>
23-
</tr>
24-
<tr>
25-
<td>Package Status</td>
26-
<td>
27-
<a href="https://pypi.org/project/zarr/">
28-
<img src="https://img.shields.io/pypi/status/zarr.svg" alt="status" />
29-
</a>
30-
</td>
31-
</tr>
32-
<tr>
33-
<td>License</td>
34-
<td>
35-
<a href="https://github.com/zarr-developers/zarr-python/blob/main/LICENSE.txt">
36-
<img src="https://img.shields.io/pypi/l/zarr.svg" alt="license" />
37-
</a>
38-
</td>
39-
</tr>
40-
<tr>
41-
<td>Build Status</td>
42-
<td>
43-
<a href="https://github.com/zarr-developers/zarr-python/blob/main/.github/workflows/python-package.yml">
44-
<img src="https://github.com/zarr-developers/zarr-python/actions/workflows/python-package.yml/badge.svg" alt="build status" />
45-
</a>
46-
</td>
47-
</tr>
48-
<tr>
49-
<td>Pre-commit Status</td>
50-
<td>
51-
<a href="https://github.com/zarr-developers/zarr-python/blob/main/.pre-commit-config.yaml">
52-
<img src="https://results.pre-commit.ci/badge/github/zarr-developers/zarr-python/main.svg" alt="pre-commit status" />
53-
</a>
54-
</td>
55-
</tr>
56-
<tr>
57-
<td>Coverage</td>
58-
<td>
59-
<a href="https://codecov.io/gh/zarr-developers/zarr-python">
60-
<img src="https://codecov.io/gh/zarr-developers/zarr-python/branch/main/graph/badge.svg" alt="coverage" />
61-
</a>
62-
</td>
63-
</tr>
64-
<tr>
65-
<td>Downloads</td>
66-
<td>
67-
<a href="https://zarr.readthedocs.io">
68-
<img src="https://pepy.tech/badge/zarr" alt="pypi downloads" />
69-
</a>
70-
</td>
71-
</tr>
72-
<tr>
73-
<td>Developer Chat</td>
74-
<td>
75-
<a href="https://ossci.zulipchat.com/#narrow/channel/423692-Zarr-Python">
76-
<img src="https://img.shields.io/badge/zulip-join_chat-brightgreen.svg" />
77-
</a>
78-
</td>
79-
</tr>
80-
<tr>
81-
<td>Funding</td>
82-
<td>
83-
<a href="https://chanzuckerberg.com/eoss/">
84-
<img src="https://img.shields.io/badge/funded%20by-EOSS-FF414B.svg?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PHBhdGggZD0iTTIyLjA5OCAyMS4wNzRjLTEuMjM1Ljg2LTIuNjggMS4zOTktNC42ODggMS40MzgtMi40MjYuMDUtNC4yMzgtMS41NTEtNC40MDYtMy45MThhNC40NjUgNC40NjUgMCAwIDEgMS4xODctMy4zOCA0LjQ4IDQuNDggMCAwIDEgMy4yODYtMS40NDQgNC42NzQgNC42NzQgMCAwIDEgMS44OTQuMzc1cy0uMTU2IDEuMzItLjIxIDEuOTE0bDEuOTg3LjAxNS4zNTYtMi45NzYtLjU2My0uMzU2YTYuNTQxIDYuNTQxIDAgMCAwLTMuNDg0LS45NjkgNi41OTMgNi41OTMgMCAwIDAtNC43NSAyLjA4NiA2LjQxNSA2LjQxNSAwIDAgMC0xLjcxNSA0Ljg3NWMuMTEzIDEuNjEuODA5IDMuMDc4IDEuOTUgNC4xNDEgMS4xNTYgMS4wNyAyLjcxNCAxLjY0NSA0LjM5OCAxLjYzMy4wMzkgMCAuMDc4IDAgLjEyNS0uMDA0YTkuOTE4IDkuOTE4IDAgMCAwIDMuNDMzLS43MjNsMS40MzQtMi43ODlzLS4wMjctLjA2Mi0uMjM0LjA3OCIgc3R5bGU9InN0cm9rZTpub25lO2ZpbGwtcnVsZTpub256ZXJvO2ZpbGw6I2ZmZjtmaWxsLW9wYWNpdHk6MSIvPjxwYXRoIGQ9Im0yOC44NjMgMjguMjE1LS4yNDIgMi43NDJ2LjAzMWMtLjEwMSAxLjAzNS0uNjUyIDEuOTE0LTEuNDg0IDIuMzUyLS42Ni4zNDctMS4zOC4zNDctMi4wMjgtLjAwOC0uNjc1LS4zNjMtLjk5Mi0uOTE4LTEuMTE3LTEuNjEzLS4xODctMS4xMDIuNDM4LTIuMjU0IDEuMjkzLTIuODMybDEzLjM1Mi04LjY4OGMuMDk3LjczOC4xNTIgMS40ODUuMTUyIDIuMjUgMCA4Ljk5Mi03LjMwOSAxNi4zMDUtMTYuMjkzIDE2LjMwNS04Ljk4OCAwLTE2LjI4OS03LjMxMy0xNi4yODktMTYuMzA1IDAtOC45ODggNy4zMDUtMTYuMyAxNi4yOTMtMTYuM3MxMi40OTYgNC4wOSAxNC45ODQgOS45MUwzOS4xMTQgMTVDMzYuMjYxIDguNjY0IDI5Ljg5MyA0LjIzNCAyMi41IDQuMjM0Yy03LjM5NSAwLTE4LjIxNSA4LjE3Mi0xOC4yMTUgMTguMjE1IDAgMTAuMDQ3IDguMTcyIDE4LjIxMSAxOC4yMTEgMTguMjExIDEwLjA0IDAgMTguMjE1LTguMTcyIDE4LjIxNS0xOC4yMSAwLTEwLjA0LS4xMS0yLjI5NC0uMzEzLTMuMzkxYTE5Ljk5NyAxOS45OTcgMCAwIDAtLjQ1My0xLjgzMmwtMy43OTMgMi4zNy01LjAyIDMuMThjLS4xNzUtLjY2OC0uNTgxLTEuMzQzLTEuNDQtMS43My0xLjAxMi0uNDY1LTIuNjYtLjExLTMuODY4LjU4MiAwIDAgMy4zMDUtNi40MDIgMy44Ni03LjQ1LjAzNS0uMDY2LS4wMTYtLjE0OC0uMDk4LS4xNDhoLTYuMThsLS4yNSAyLjA2N0gyNi41MDhsLTQuNzMgOS4wNjJjLS4wOTQuMTc2LjA5Ny4zNjMuMjc3LjI3NGwyLjUyMy0xLjM0YzEuMjE5LS42MjUgMy4yNS0xLjkxIDQuMjU0LTEuMTY4LjE0NS4xMS4zMzIuMzk4LjM0OC42OTVhLjM1Ny4zNTcgMCAwIDEtLjE0OS4yOTNsLTUuMDQzIDMuNDA2Yy0xLjYzNiAxLjE2OC0yLjI3NyAyLjkxLTIuMTIgNC41NTUuMTI0IDEuMzc1Ljk4NCAyLjU2NiAyLjI1NyAzLjI2MmE0LjE3IDQuMTcgMCAwIDAgMi4xMTMuNTE1IDQuMTY5IDQuMTY5IDAgMCAwIDEuODY0LS41YzEuNDM3LS43NTQgMi4zOTQtMi4yMzQgMi41NjItMy45NDVsLjQwMi00LjYxMy0yLjE5OSAxLjYzM1ptMCAwIiBzdHlsZT0ic3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOm5vbnplcm87ZmlsbDojZmZmO2ZpbGwtb3BhY2l0eToxIi8+PC9zdmc+" alt="CZI's Essential Open Source Software for Science" />
85-
</a>
86-
</td>
87-
</tr>
88-
<tr>
89-
<td>Citation</td>
90-
<td>
91-
<a href="https://doi.org/10.5281/zenodo.3773450">
92-
<img src="https://zenodo.org/badge/DOI/10.5281/zenodo.3773450.svg" alt="DOI" />
93-
</a>
94-
</td>
95-
</tr>
96-
97-
</table>
7+
[![Latest Release](https://badge.fury.io/py/zarr.svg)](https://pypi.org/project/zarr/)
8+
[![CondaForge](https://anaconda.org/conda-forge/zarr/badges/version.svg)](https://anaconda.org/anaconda/zarr/)
9+
[![Package Status](https://img.shields.io/pypi/status/zarr.svg)](https://pypi.org/project/zarr/)
10+
[![License](https://img.shields.io/pypi/l/zarr.svg)](https://github.com/zarr-developers/zarr-python/blob/main/LICENSE.txt)
11+
[![Coverage](https://codecov.io/gh/zarr-developers/zarr-python/branch/main/graph/badge.svg)](https://codecov.io/gh/zarr-developers/zarr-python)
12+
[![Downloads](https://pepy.tech/badge/zarr)](https://zarr.readthedocs.io)
13+
[![Developer Chat](https://img.shields.io/badge/zulip-join_chat-brightgreen.svg)](https://ossci.zulipchat.com/#narrow/channel/423692-Zarr-Python)
14+
[![Citation](https://zenodo.org/badge/DOI/10.5281/zenodo.3773450.svg)](https://doi.org/10.5281/zenodo.3773450)
9815

9916
## What is it?
10017

changes/4133.doc.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fixed the documented default of ``max_age_seconds`` in the ``CacheStore`` docstring: the default is ``"infinity"`` (no expiration), not ``None``, which is rejected. Also noted that ``cache_store`` must support deletes.

src/zarr/experimental/cache_store.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,11 @@ class CacheStore(WrapperStore[Store]):
5252
store : Store
5353
The underlying store to wrap with caching
5454
cache_store : Store
55-
The store to use for caching (can be any Store implementation)
56-
max_age_seconds : int | None, optional
57-
Maximum age of cached entries in seconds. None means no expiration.
58-
Default is None.
55+
The store to use for caching (can be any Store implementation that
56+
supports deletes)
57+
max_age_seconds : int or "infinity", optional
58+
Maximum age of cached entries in seconds. The string "infinity" means
59+
entries never expire. Default is "infinity".
5960
max_size : int | None, optional
6061
Maximum size of the cache in bytes. When exceeded, least recently used
6162
items are evicted. None means unlimited size. Default is None.

0 commit comments

Comments
 (0)