test: enable pytest strict mode and fix duplicate parametrization ids#215
Draft
d-v-b wants to merge 22 commits into
Draft
test: enable pytest strict mode and fix duplicate parametrization ids#215d-v-b wants to merge 22 commits into
d-v-b wants to merge 22 commits into
Conversation
…velopers#4110) Signed-off-by: NIK-TIGER-BILL <nik.tiger.bill@github.com> Co-authored-by: NIK-TIGER-BILL <nik.tiger.bill@github.com>
…pers#4102) Co-authored-by: Davis Bennett <davis.v.bennett@gmail.com>
* chore(deps): bump the actions group across 1 directory with 8 updates (#176) Bumps the actions group with 8 updates in the / directory: | Package | From | To | | --- | --- | --- | | [prefix-dev/setup-pixi](https://github.com/prefix-dev/setup-pixi) | `0.9.5` | `0.9.6` | | [codecov/codecov-action](https://github.com/codecov/codecov-action) | `6.0.0` | `6.0.1` | | [github/issue-metrics](https://github.com/github/issue-metrics) | `4.2.2` | `4.2.7` | | [j178/prek-action](https://github.com/j178/prek-action) | `2.0.3` | `2.0.4` | | [actions/upload-artifact](https://github.com/actions/upload-artifact) | `7.0.0` | `7.0.1` | | [actions/download-artifact](https://github.com/actions/download-artifact) | `7.0.0` | `8.0.1` | | [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) | `1.13.0` | `1.14.0` | | [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action) | `0.5.3` | `0.5.6` | Updates `prefix-dev/setup-pixi` from 0.9.5 to 0.9.6 - [Release notes](https://github.com/prefix-dev/setup-pixi/releases) - [Commits](prefix-dev/setup-pixi@1b2de7f...5185adf) Updates `codecov/codecov-action` from 6.0.0 to 6.0.1 - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](codecov/codecov-action@57e3a13...e79a696) Updates `github/issue-metrics` from 4.2.2 to 4.2.7 - [Release notes](https://github.com/github/issue-metrics/releases) - [Commits](github-community-projects/issue-metrics@c9e9838...1e38d5e) Updates `j178/prek-action` from 2.0.3 to 2.0.4 - [Release notes](https://github.com/j178/prek-action/releases) - [Commits](j178/prek-action@6ad8027...bdca6f1) Updates `actions/upload-artifact` from 7.0.0 to 7.0.1 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@v7...043fb46) Updates `actions/download-artifact` from 7.0.0 to 8.0.1 - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](actions/download-artifact@v7...3e5f45b) Updates `pypa/gh-action-pypi-publish` from 1.13.0 to 1.14.0 - [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases) - [Commits](pypa/gh-action-pypi-publish@v1.13.0...cef2210) Updates `zizmorcore/zizmor-action` from 0.5.3 to 0.5.6 - [Release notes](https://github.com/zizmorcore/zizmor-action/releases) - [Commits](zizmorcore/zizmor-action@b1d7e1f...5f14fd0) --- updated-dependencies: - dependency-name: prefix-dev/setup-pixi dependency-version: 0.9.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: codecov/codecov-action dependency-version: 6.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: github/issue-metrics dependency-version: 4.2.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: j178/prek-action dependency-version: 2.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: actions/upload-artifact dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: actions/download-artifact dependency-version: 8.0.1 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: pypa/gh-action-pypi-publish dependency-version: 1.14.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions - dependency-name: zizmorcore/zizmor-action dependency-version: 0.5.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * refactor: dedupe overwrite-check logic in array creation Extract the repeated "delete existing node if overwriting (and the store supports deletes), otherwise enforce no existing node" dance into a single private helper `_prepare_overwrite`, used by `_create_v3`, `_create_v2`, and `_create_array_metadata`. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * refactor: inline single-caller get-selection wrappers The module-level `_get_orthogonal_selection`, `_get_mask_selection`, and `_get_coordinate_selection` helpers each constructed an indexer and delegated to `_get_selection`, and each had exactly one caller (the corresponding `AsyncArray.get_*_selection` method). Inline the indexer construction into those methods and delete the wrappers. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * refactor: unify zarr-dtype access via metadata.dtype `ArrayV2Metadata.dtype` and `ArrayV3Metadata.dtype` (the latter an alias for `data_type`) both already return the zarr dtype object, so the repeated `metadata.dtype if zarr_format == 2 else metadata.data_type` dispatch in `AsyncArray._zdtype`, `_get_selection`, and `_set_selection` collapses to a single `metadata.dtype` access. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * refactor: make Array.cdata_shape delegate to _chunk_grid_shape `Array.cdata_shape` and `Array._chunk_grid_shape` had identical bodies; the public `cdata_shape` now delegates to `_chunk_grid_shape` instead of duplicating the access. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * refactor: inline no-op default_filters_v3 `default_filters_v3` unconditionally returned an empty tuple. Inline that empty tuple at its two call sites (with a short comment) and delete the function. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * refactor: dedupe contains_group V3 branch via _contains_node_v3 The V3 branch of `contains_group` re-implemented the node-type detection that `_contains_node_v3` already performs. Replace it with `(await _contains_node_v3(store_path)) == "group"`, which is behaviorally identical for all cases (missing document, array, group, malformed/non-object JSON, and missing node_type key all map to the same result). `contains_array` is intentionally left unchanged: its V3 branch falls through to a `ValueError` when a *group* node is present, which `_contains_node_v3` does not reproduce, so swapping it would change observable behavior. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * refactor: extract not-yet-implemented kwarg warning helper `open_group` and `create` each had repeated `if x is not None: warnings.warn(f"...not yet implemented...")` blocks. Extract a `_warn_unimplemented_kwargs` helper taking a name->value mapping. The helper uses stacklevel=3 to compensate for the extra call frame, so the warning still points at the same call site (verified: identical message, category, source location, and emission order). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * refactor: fold fill_value extraction into _like_args `_like_args` now records the source array's fill_value, so `empty_like`, `full_like`, and `open_like` no longer need to re-check isinstance and setdefault it. `ones_like`/`zeros_like` drop the inherited fill_value (they supply their own), preserving exact prior behavior including the existing duplicate-keyword TypeError when an explicit fill_value is passed. Update the `_like_args` unit test to include the new key. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix: catch UnicodeDecodeError in _contains_node_v3 Routing `contains_group` through the shared `_contains_node_v3` helper narrowed the exception handling from `(ValueError, KeyError, TypeError)` to `(KeyError, TypeError, json.JSONDecodeError)`. A non-UTF-8 `zarr.json` makes `json.loads` raise `UnicodeDecodeError` (a `ValueError` subclass that is not `json.JSONDecodeError`), so `contains_group` would raise instead of returning `False` as it did before. Broaden the guard to `ValueError`, which covers both malformed JSON and non-UTF-8 bytes, exactly matching the previous behavior (and aligning `ensure_no_existing_node`, which also routes through this helper). Add regression tests for the non-UTF-8 case across `contains_array`, `contains_group`, and `_contains_node_v3`. Assisted-by: ClaudeCode:claude-opus-4.8 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Assisted-by: GitHub Copilot (GPT-5.3-Codex)
…decs (zarr-developers#4116) * fix: keep element order when writing F-contiguous chunks with vlen codecs The numcodecs vlen codecs flatten their input with order='A', so an F-contiguous object-dtype chunk is encoded in transposed element order while decode reshapes in C order, silently scrambling the round-trip. Make both vlen codec wrappers pass a C-contiguous array to numcodecs; this copies only the object-pointer array and only when the chunk is not already C-contiguous. * docs: add changelog entry * fix: keep element order for numcodecs filter codecs too The generic numcodecs adapter codecs pass the chunk to numcodecs unchanged, so F-contiguous chunks hit the same order='A' flattening as the vlen codecs: Delta, FixedScaleOffset and PackBits all round-trip transposed data for an F-contiguous chunk that exactly covers the selection. Apply the same C-contiguity normalization in the array-array and array-bytes adapter encode paths. --------- Co-authored-by: Davis Bennett <davis.v.bennett@gmail.com>
…#4122) Follow-up test-quality cleanup for the zarr-developersgh-3558 fix (zarr-developers#4116): - Merge test_vlen_string_f_contiguous and test_vlen_bytes_f_contiguous into one test parametrized over (dtype, fill_value, elements), matching the parametrized style of test_vlen_string in the same file. - Drop the chunks=(2,2) case: with (3,3) data it produces only partial chunks, which the codec pipeline recopies to C order before encoding, so it never exercised the F-contiguous path it claimed to cover. Use chunks == shape (a single complete chunk) so the F-contiguous buffer reaches the codec untouched. - Build the F-contiguous input directly via reshape(order="F") instead of wrapping a C-order reshape in np.asarray(..., order="F"), and assert data.flags.f_contiguous so a future simplification can't silently defeat the regression guard. - Add a docstring stating the verified behavior. Assisted-by: ClaudeCode:claude-opus-4.8
) Bumps the actions group with 5 updates: | Package | From | To | | --- | --- | --- | | [CodSpeedHQ/action](https://github.com/codspeedhq/action) | `4.17.6` | `4.18.1` | | [actions/setup-python](https://github.com/actions/setup-python) | `6.2.0` | `6.3.0` | | [actions/cache/restore](https://github.com/actions/cache) | `5.0.5` | `6.1.0` | | [actions/cache/save](https://github.com/actions/cache) | `5.0.5` | `6.1.0` | | [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action) | `0.5.6` | `0.5.7` | Updates `CodSpeedHQ/action` from 4.17.6 to 4.18.1 - [Release notes](https://github.com/codspeedhq/action/releases) - [Changelog](https://github.com/CodSpeedHQ/action/blob/main/CHANGELOG.md) - [Commits](CodSpeedHQ/action@63f3e98...a4a36bb) Updates `actions/setup-python` from 6.2.0 to 6.3.0 - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](actions/setup-python@a309ff8...ece7cb0) Updates `actions/cache/restore` from 5.0.5 to 6.1.0 - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](actions/cache@27d5ce7...55cc834) Updates `actions/cache/save` from 5.0.5 to 6.1.0 - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](actions/cache@27d5ce7...55cc834) Updates `zizmorcore/zizmor-action` from 0.5.6 to 0.5.7 - [Release notes](https://github.com/zizmorcore/zizmor-action/releases) - [Commits](zizmorcore/zizmor-action@5f14fd0...192e21d) --- updated-dependencies: - dependency-name: CodSpeedHQ/action dependency-version: 4.18.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions - dependency-name: actions/setup-python dependency-version: 6.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions - dependency-name: actions/cache/restore dependency-version: 6.1.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: actions/cache/save dependency-version: 6.1.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: zizmorcore/zizmor-action dependency-version: 0.5.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Davis Bennett <davis.v.bennett@gmail.com>
Bumps [joserfc](https://github.com/authlib/joserfc) from 1.6.5 to 1.6.8. - [Release notes](https://github.com/authlib/joserfc/releases) - [Changelog](https://github.com/authlib/joserfc/blob/main/docs/changelog.rst) - [Commits](authlib/joserfc@1.6.5...1.6.8) --- updated-dependencies: - dependency-name: joserfc dependency-version: 1.6.8 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
updates: - [github.com/astral-sh/ruff-pre-commit: v0.15.15 → v0.15.20](astral-sh/ruff-pre-commit@v0.15.15...v0.15.20) - [github.com/scientific-python/cookie: 2026.04.04 → 2026.06.18](scientific-python/cookie@2026.04.04...2026.06.18) - [github.com/numpy/numpydoc: v1.10.0 → v1.11.0rc0](numpy/numpydoc@v1.10.0...v1.11.0rc0) - [github.com/zizmorcore/zizmor-pre-commit: v1.25.2 → v1.26.1](zizmorcore/zizmor-pre-commit@v1.25.2...v1.26.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Remove broken badge It relies on a CI workflow that had been removed in 2024 by 9e3e8c0. It's unclear whether it should be replaced by a different CI workflow, and if so which one. * Horizontal layout for badges, to save space * Remove Funding Co-authored-by: Max Jones <14077947+maxrjones@users.noreply.github.com> --------- Co-authored-by: Max Jones <14077947+maxrjones@users.noreply.github.com> Co-authored-by: Davis Bennett <davis.v.bennett@gmail.com>
…rs#4133) * chore(deps): bump the actions group across 1 directory with 8 updates (#176) Bumps the actions group with 8 updates in the / directory: | Package | From | To | | --- | --- | --- | | [prefix-dev/setup-pixi](https://github.com/prefix-dev/setup-pixi) | `0.9.5` | `0.9.6` | | [codecov/codecov-action](https://github.com/codecov/codecov-action) | `6.0.0` | `6.0.1` | | [github/issue-metrics](https://github.com/github/issue-metrics) | `4.2.2` | `4.2.7` | | [j178/prek-action](https://github.com/j178/prek-action) | `2.0.3` | `2.0.4` | | [actions/upload-artifact](https://github.com/actions/upload-artifact) | `7.0.0` | `7.0.1` | | [actions/download-artifact](https://github.com/actions/download-artifact) | `7.0.0` | `8.0.1` | | [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) | `1.13.0` | `1.14.0` | | [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action) | `0.5.3` | `0.5.6` | Updates `prefix-dev/setup-pixi` from 0.9.5 to 0.9.6 - [Release notes](https://github.com/prefix-dev/setup-pixi/releases) - [Commits](prefix-dev/setup-pixi@1b2de7f...5185adf) Updates `codecov/codecov-action` from 6.0.0 to 6.0.1 - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](codecov/codecov-action@57e3a13...e79a696) Updates `github/issue-metrics` from 4.2.2 to 4.2.7 - [Release notes](https://github.com/github/issue-metrics/releases) - [Commits](github-community-projects/issue-metrics@c9e9838...1e38d5e) Updates `j178/prek-action` from 2.0.3 to 2.0.4 - [Release notes](https://github.com/j178/prek-action/releases) - [Commits](j178/prek-action@6ad8027...bdca6f1) Updates `actions/upload-artifact` from 7.0.0 to 7.0.1 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@v7...043fb46) Updates `actions/download-artifact` from 7.0.0 to 8.0.1 - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](actions/download-artifact@v7...3e5f45b) Updates `pypa/gh-action-pypi-publish` from 1.13.0 to 1.14.0 - [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases) - [Commits](pypa/gh-action-pypi-publish@v1.13.0...cef2210) Updates `zizmorcore/zizmor-action` from 0.5.3 to 0.5.6 - [Release notes](https://github.com/zizmorcore/zizmor-action/releases) - [Commits](zizmorcore/zizmor-action@b1d7e1f...5f14fd0) --- updated-dependencies: - dependency-name: prefix-dev/setup-pixi dependency-version: 0.9.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: codecov/codecov-action dependency-version: 6.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: github/issue-metrics dependency-version: 4.2.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: j178/prek-action dependency-version: 2.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: actions/upload-artifact dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: actions/download-artifact dependency-version: 8.0.1 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: pypa/gh-action-pypi-publish dependency-version: 1.14.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions - dependency-name: zizmorcore/zizmor-action dependency-version: 0.5.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: fix CacheStore max_age_seconds docstring default The docstring documented max_age_seconds as 'int | None' with a default of None, but the signature defaults to "infinity" and None is rejected by validation. Also note that cache_store must support deletes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
) Bumps the actions group with 3 updates: [scientific-python/issue-from-pytest-log-action](https://github.com/scientific-python/issue-from-pytest-log-action), [j178/prek-action](https://github.com/j178/prek-action) and [actions/attest](https://github.com/actions/attest). Updates `scientific-python/issue-from-pytest-log-action` from 1.5.0 to 1.6.0 - [Release notes](https://github.com/scientific-python/issue-from-pytest-log-action/releases) - [Commits](scientific-python/issue-from-pytest-log-action@8e905db...87351a8) Updates `j178/prek-action` from 2.0.4 to 2.0.5 - [Release notes](https://github.com/j178/prek-action/releases) - [Commits](j178/prek-action@bdca6f1...e98a699) Updates `actions/attest` from 4.1.0 to 4.1.1 - [Release notes](https://github.com/actions/attest/releases) - [Changelog](https://github.com/actions/attest/blob/main/RELEASE.md) - [Commits](actions/attest@59d8942...a1948c3) --- updated-dependencies: - dependency-name: scientific-python/issue-from-pytest-log-action dependency-version: 1.6.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions - dependency-name: j178/prek-action dependency-version: 2.0.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: actions/attest dependency-version: 4.1.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump the actions group across 1 directory with 8 updates (#176) Bumps the actions group with 8 updates in the / directory: | Package | From | To | | --- | --- | --- | | [prefix-dev/setup-pixi](https://github.com/prefix-dev/setup-pixi) | `0.9.5` | `0.9.6` | | [codecov/codecov-action](https://github.com/codecov/codecov-action) | `6.0.0` | `6.0.1` | | [github/issue-metrics](https://github.com/github/issue-metrics) | `4.2.2` | `4.2.7` | | [j178/prek-action](https://github.com/j178/prek-action) | `2.0.3` | `2.0.4` | | [actions/upload-artifact](https://github.com/actions/upload-artifact) | `7.0.0` | `7.0.1` | | [actions/download-artifact](https://github.com/actions/download-artifact) | `7.0.0` | `8.0.1` | | [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) | `1.13.0` | `1.14.0` | | [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action) | `0.5.3` | `0.5.6` | Updates `prefix-dev/setup-pixi` from 0.9.5 to 0.9.6 - [Release notes](https://github.com/prefix-dev/setup-pixi/releases) - [Commits](prefix-dev/setup-pixi@1b2de7f...5185adf) Updates `codecov/codecov-action` from 6.0.0 to 6.0.1 - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](codecov/codecov-action@57e3a13...e79a696) Updates `github/issue-metrics` from 4.2.2 to 4.2.7 - [Release notes](https://github.com/github/issue-metrics/releases) - [Commits](github-community-projects/issue-metrics@c9e9838...1e38d5e) Updates `j178/prek-action` from 2.0.3 to 2.0.4 - [Release notes](https://github.com/j178/prek-action/releases) - [Commits](j178/prek-action@6ad8027...bdca6f1) Updates `actions/upload-artifact` from 7.0.0 to 7.0.1 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@v7...043fb46) Updates `actions/download-artifact` from 7.0.0 to 8.0.1 - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](actions/download-artifact@v7...3e5f45b) Updates `pypa/gh-action-pypi-publish` from 1.13.0 to 1.14.0 - [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases) - [Commits](pypa/gh-action-pypi-publish@v1.13.0...cef2210) Updates `zizmorcore/zizmor-action` from 0.5.3 to 0.5.6 - [Release notes](https://github.com/zizmorcore/zizmor-action/releases) - [Commits](zizmorcore/zizmor-action@b1d7e1f...5f14fd0) --- updated-dependencies: - dependency-name: prefix-dev/setup-pixi dependency-version: 0.9.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: codecov/codecov-action dependency-version: 6.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: github/issue-metrics dependency-version: 4.2.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: j178/prek-action dependency-version: 2.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: actions/upload-artifact dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: actions/download-artifact dependency-version: 8.0.1 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: pypa/gh-action-pypi-publish dependency-version: 1.14.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions - dependency-name: zizmorcore/zizmor-action dependency-version: 0.5.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * ci: stop dependabot updates targeting support/v2 The support/v2 branch's CI is failing for reasons unrelated to actions bumps (numpy 2.5 deprecation, Windows azurite SSL errors, RTD build), so the weekly dependabot PRs against it are pure noise. Remove the target-branch entry so dependabot only tracks main. Assisted-by: ClaudeCode:claude-fable-5 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…rr-developers#4132) * chore(deps): bump the actions group across 1 directory with 8 updates (#176) Bumps the actions group with 8 updates in the / directory: | Package | From | To | | --- | --- | --- | | [prefix-dev/setup-pixi](https://github.com/prefix-dev/setup-pixi) | `0.9.5` | `0.9.6` | | [codecov/codecov-action](https://github.com/codecov/codecov-action) | `6.0.0` | `6.0.1` | | [github/issue-metrics](https://github.com/github/issue-metrics) | `4.2.2` | `4.2.7` | | [j178/prek-action](https://github.com/j178/prek-action) | `2.0.3` | `2.0.4` | | [actions/upload-artifact](https://github.com/actions/upload-artifact) | `7.0.0` | `7.0.1` | | [actions/download-artifact](https://github.com/actions/download-artifact) | `7.0.0` | `8.0.1` | | [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) | `1.13.0` | `1.14.0` | | [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action) | `0.5.3` | `0.5.6` | Updates `prefix-dev/setup-pixi` from 0.9.5 to 0.9.6 - [Release notes](https://github.com/prefix-dev/setup-pixi/releases) - [Commits](prefix-dev/setup-pixi@1b2de7f...5185adf) Updates `codecov/codecov-action` from 6.0.0 to 6.0.1 - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](codecov/codecov-action@57e3a13...e79a696) Updates `github/issue-metrics` from 4.2.2 to 4.2.7 - [Release notes](https://github.com/github/issue-metrics/releases) - [Commits](github-community-projects/issue-metrics@c9e9838...1e38d5e) Updates `j178/prek-action` from 2.0.3 to 2.0.4 - [Release notes](https://github.com/j178/prek-action/releases) - [Commits](j178/prek-action@6ad8027...bdca6f1) Updates `actions/upload-artifact` from 7.0.0 to 7.0.1 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@v7...043fb46) Updates `actions/download-artifact` from 7.0.0 to 8.0.1 - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](actions/download-artifact@v7...3e5f45b) Updates `pypa/gh-action-pypi-publish` from 1.13.0 to 1.14.0 - [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases) - [Commits](pypa/gh-action-pypi-publish@v1.13.0...cef2210) Updates `zizmorcore/zizmor-action` from 0.5.3 to 0.5.6 - [Release notes](https://github.com/zizmorcore/zizmor-action/releases) - [Commits](zizmorcore/zizmor-action@b1d7e1f...5f14fd0) --- updated-dependencies: - dependency-name: prefix-dev/setup-pixi dependency-version: 0.9.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: codecov/codecov-action dependency-version: 6.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: github/issue-metrics dependency-version: 4.2.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: j178/prek-action dependency-version: 2.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: actions/upload-artifact dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: actions/download-artifact dependency-version: 8.0.1 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: pypa/gh-action-pypi-publish dependency-version: 1.14.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions - dependency-name: zizmorcore/zizmor-action dependency-version: 0.5.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: fix errors and improve consistency across the documentation A full review of the documentation, verified by executing every runnable snippet against the current source. Highlights: Correctness: - performance.md: fix three claims contradicted by the page's own rendered output (memory-order/compression, inverted write_empty_chunks conclusion, wrong async.concurrency and threading.max_workers defaults); update stale MemoryStore pickle claim - Make three invisible exec blocks visible (rectilinear enable snippet in arrays.md, two config snippets in performance.md) - storage.md: fix the explicit-S3-filesystem example (endpoint_url misuse, missing bucket path) - config.md: show true defaults (earlier example no longer leaks array.order into the session); fix codecs.bytes key - arrays.md: document all five ArrayConfig options; correct memory:// store description; fix wrong column-index comments; remove orphaned example - v3_migration.md: remove Group.move and dimension_separator from not-yet-ported lists (both work); fix truncated store table row; update lapsed 2.x support-window and stale work-in-progress framing - cli.md: document the required cli extra; fix dry-run output; name the equivalent functions in zarr.metadata.migrate_v3 - installation.md: correct typing_extensions minimum; document all optional dependency groups (remote, gpu, cli, optional, cast-value-rs) - gpu.md: fix nonexistent zarr.Config.enable_gpu; add installation guidance - contributing.md: fix docs build output dir and serve URL; drop outdated doctest note - extending.md: custom data types are supported now, not future work - data_types.md: remove stray doctest output from a source block; use public zarr.dtype import; drop dead warnings-suppression boilerplate - quick-start.md: fix result="html" on a Python-repr output block Usability: - Reorder the user-guide nav into a beginner-to-advanced progression - quick-start.md: add H1 and heading hierarchy, remote-storage install note, and a Next steps section - user-guide/index.md: list the CLI, experimental, and examples pages - groups.md: explain group/create_group/open_group; document member enumeration and deletion - attributes.md: document bulk updates via update_attributes and deletion - consolidated_metadata.md: document the public use_consolidated knob - glossary.md: add Group, Attributes, and Consolidated Metadata entries; cover v2 metadata documents - Add cross-links between related pages throughout; replace "Coming soon" stubs with links to existing content - experimental.md: nest CacheStore sections properly; link the experimental API policy - release-notes.md: normalize version headings and dates Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: add changelog fragment for zarr-developers#4132 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: standardize on American spelling (behaviour -> behavior) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: render test="true" and exec="false" fences as code blocks Markdown Exec's superfences fence only claims exec="true" blocks. Fences carrying the repo's other validation markers (test="true", exec="false") failed superfences validation entirely and their contents spilled into the page as raw markdown -- most visibly the custom dtype example, where the included script's PEP 723 header rendered as a series of headings. The GPU page, the quick-start S3 example, and the exec="false" opt-out blocks were equally affected. Add an MkDocs hook that registers a second python fence, tried when Markdown Exec's declines, which strips the validation attributes and delegates to the standard superfences highlighter. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: convert rectilinear chunks notebook to a markdown example page The notebook rendered oddly via mkdocs-jupyter: the PEP 723 dependency header appeared as the first code cell, a bare ConfigSet repr leaked into the output, and the page styling did not match the rest of the site. Since the example cannot execute at build time anyway (it requires an xarray fork with rectilinear chunk grid support plus remote data), convert it to a markdown page in the same style as the custom dtype example, with the captured outputs shown as static blocks and an admonition explaining the requirements. The page URL is unchanged. With no notebooks left in the docs, also drop the mkdocs-jupyter plugin and dependency. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: shorten custom dtype example title to "Custom Data Type" Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: restructure API reference nav to distinguish classes from modules The API nav was a flat list whose labels came from each page's first mkdocstrings heading, mixing classes (Array), modules (codecs), and function groups (create) with no visual distinction, plus accidental labels like a title-cased Cpu, two literal Index entries, and an API section nested under API Reference. Group the nav into Classes / Functions / Modules with explicit titles: classes as zarr.Array and zarr.Group, function pages as Creating/Opening/ Saving/Loading, and modules by their dotted import path (zarr.storage, zarr.abc.store, ...), so the naming convention itself distinguishes the kinds. Also give the four subpackage index pages consistent titles. Page URLs are unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: flatten API reference nav with kind annotations Users browsing the API reference don't know in advance whether the thing they want is a class, function, or module, so grouping the nav by kind made them guess. Flatten the list back and annotate each entry with its kind instead: zarr.Array (class), Creating (functions), zarr.storage (module). Nesting is kept only where it means containment (the abc, api, buffer, and testing subpackages); their children are unannotated since context makes them modules. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: use bare function-page names from main in the API nav create/open/save/load, as on main, rather than invented verb labels; the (functions) annotation carries the kind. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: render API nav identifiers in monospace Material passes nav titles through as HTML, so wrap the identifier part of each API reference nav label in <code>, keeping the (class)/(functions)/ (module) annotations in regular type. Verified the HTML is not escaped in the sidebar, is stripped from the browser <title>, and behaves in search like any backticked heading. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: one API nav entry per function, mirroring the flat zarr namespace The create/open/save/load pages grouped functions by verb, an organization that doesn't exist in the codebase -- all of these are top-level names in the flat zarr namespace. Replace them with one page and one nav entry per function (zarr.create_array, zarr.open_group, ...), alphabetized case- insensitively alongside the classes and modules, so zarr.Array (class) sits next to zarr.array (function). This also adds previously undocumented public functions to the API reference: zarr.consolidate_metadata and zarr.print_debug_info. The unimplemented copy/copy_all/copy_store stubs and the deprecated zarr.tree are deliberately excluded. Old create/open/save/load URLs redirect to representative function pages. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: use mkdocstrings symbol badges for kind annotations in API nav The spelled-out (function)/(module)/(class) annotations made 8 of 41 monospace nav entries wrap to two lines. Replace them with the compact func/mod/class doc-symbol badges that mkdocstrings already renders in every page's table of contents, joined to the name with a non-breaking space so badge and name never separate. Verified in the rendered site: no wrapped entries, badge CSS loads globally, and function-page titles render as e.g. 'func zarr.open_group'. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…-developers#4138) * chore(deps): bump the actions group across 1 directory with 8 updates (#176) Bumps the actions group with 8 updates in the / directory: | Package | From | To | | --- | --- | --- | | [prefix-dev/setup-pixi](https://github.com/prefix-dev/setup-pixi) | `0.9.5` | `0.9.6` | | [codecov/codecov-action](https://github.com/codecov/codecov-action) | `6.0.0` | `6.0.1` | | [github/issue-metrics](https://github.com/github/issue-metrics) | `4.2.2` | `4.2.7` | | [j178/prek-action](https://github.com/j178/prek-action) | `2.0.3` | `2.0.4` | | [actions/upload-artifact](https://github.com/actions/upload-artifact) | `7.0.0` | `7.0.1` | | [actions/download-artifact](https://github.com/actions/download-artifact) | `7.0.0` | `8.0.1` | | [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) | `1.13.0` | `1.14.0` | | [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action) | `0.5.3` | `0.5.6` | Updates `prefix-dev/setup-pixi` from 0.9.5 to 0.9.6 - [Release notes](https://github.com/prefix-dev/setup-pixi/releases) - [Commits](prefix-dev/setup-pixi@1b2de7f...5185adf) Updates `codecov/codecov-action` from 6.0.0 to 6.0.1 - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](codecov/codecov-action@57e3a13...e79a696) Updates `github/issue-metrics` from 4.2.2 to 4.2.7 - [Release notes](https://github.com/github/issue-metrics/releases) - [Commits](github-community-projects/issue-metrics@c9e9838...1e38d5e) Updates `j178/prek-action` from 2.0.3 to 2.0.4 - [Release notes](https://github.com/j178/prek-action/releases) - [Commits](j178/prek-action@6ad8027...bdca6f1) Updates `actions/upload-artifact` from 7.0.0 to 7.0.1 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@v7...043fb46) Updates `actions/download-artifact` from 7.0.0 to 8.0.1 - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](actions/download-artifact@v7...3e5f45b) Updates `pypa/gh-action-pypi-publish` from 1.13.0 to 1.14.0 - [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases) - [Commits](pypa/gh-action-pypi-publish@v1.13.0...cef2210) Updates `zizmorcore/zizmor-action` from 0.5.3 to 0.5.6 - [Release notes](https://github.com/zizmorcore/zizmor-action/releases) - [Commits](zizmorcore/zizmor-action@b1d7e1f...5f14fd0) --- updated-dependencies: - dependency-name: prefix-dev/setup-pixi dependency-version: 0.9.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: codecov/codecov-action dependency-version: 6.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: github/issue-metrics dependency-version: 4.2.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: j178/prek-action dependency-version: 2.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: actions/upload-artifact dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: actions/download-artifact dependency-version: 8.0.1 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: pypa/gh-action-pypi-publish dependency-version: 1.14.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions - dependency-name: zizmorcore/zizmor-action dependency-version: 0.5.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * test: pass a list, not a generator, to parametrize in test_docs pytest 9.1 deprecated passing a non-Collection iterable to @pytest.mark.parametrize (PytestRemovedIn10Warning). find_examples() returns a generator, and with filterwarnings=error that deprecation becomes a hard collection error, breaking the doctests env under pytest 9.1.1 (e.g. the zarr-developers#4137 dependency bump). Materialize it to a list, matching the existing list(find_examples(...)) usage elsewhere in this module. Assisted-by: ClaudeCode:claude-opus-4-8 * doc: add changelog fragment for test_docs parametrize fix Assisted-by: ClaudeCode:claude-opus-4-8 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…velopers#3984) * docs: clarify difference between load and open in docstrings * docs: add changelog entry for load/open clarification * docs: rename changelog entry to match PR number * docs: clarify load returns configured buffer prototype, not always NumPy Signed-off-by: Sai Asish Y <say.apm35@gmail.com> --------- Signed-off-by: Sai Asish Y <say.apm35@gmail.com> Co-authored-by: Davis Bennett <davis.v.bennett@gmail.com>
Adopt pytest 9's `strict = true` config option, which enables
strict_config, strict_markers, strict_xfail, strict_parametrization_ids,
and future strictness options. This replaces the --strict-config and
--strict-markers addopts flags (which pytest silently ignored when
passed via addopts before 9.1, pytest#14442) and the separate
xfail_strict setting. minversion is bumped to 9 accordingly.
strict_parametrization_ids surfaced seven parametrizations whose ids
collided, which pytest previously deduplicated silently:
- test_common.py paired float("inf") with np.inf (and -inf/nan), but
np.inf IS a Python float, so three cases per test ran twice and the
intended numpy-scalar coverage did not exist. Use np.float64 scalars
with explicit ids, restoring the intended coverage.
- test_int.py deliberately includes np.dtype("i")/np.dtype("I"),
which compare equal to one of the explicit-endian dtypes and
stringify identically. The class-fixture hook in test_dtype/conftest
now suffixes colliding ids with their index instead of relying on
pytest's silent deduplication.
- test_group.py test_consistent_signatures id'd both create_hierarchy
pairs identically; ids now include module and qualname.
- test_array.py ("a" vs b"a"), test_vlen.py (str vs "str"), and
test_metadata/test_v2.py (3 vs "3") get explicit ids for the
colliding member.
Assisted-by: ClaudeCode:claude-fable-5
Assisted-by: ClaudeCode:claude-fable-5
Set faulthandler_timeout=600 with faulthandler_exit_on_timeout (new in pytest 9): if a single test exceeds 10 minutes, every thread's traceback is dumped and the run is killed, instead of hanging indefinitely with no diagnostics. Motivated by the moto fixed-port deadlock, which hung local -n auto runs at ~98% for hours and required manual kill -ABRT forensics to diagnose; with this watchdog the same bug would have failed in 10 minutes with the offending stack in the log. The ceiling is ~30x the slowest legitimate test (~20s locally) to stay clear of slow CI runners, coverage overhead, and nightly stateful hypothesis runs. Assisted-by: ClaudeCode:claude-fable-5
…th 13 updates (zarr-developers#4137) Bumps the python-dependencies group with 12 updates in the / directory: | Package | From | To | | --- | --- | --- | | [numpy](https://github.com/numpy/numpy) | `2.4.6` | `2.5.0` | | [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` | | [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.4.0` | `2026.6.0` | | [obstore](https://github.com/geospatial-jeff/pyasyncio-benchmark) | `0.10.1` | `0.11.0` | | [typer](https://github.com/fastapi/typer) | `0.26.7` | `0.26.8` | | [coverage](https://github.com/coveragepy/coveragepy) | `7.14.1` | `7.14.3` | | [pytest](https://github.com/pytest-dev/pytest) | `9.0.3` | `9.1.1` | | [pytest-accept](https://github.com/max-sixty/pytest-accept) | `0.2.3` | `0.3.0` | | [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.155.2` | `6.155.7` | | [uv](https://github.com/astral-sh/uv) | `0.11.20` | `0.11.26` | | [mkdocstrings-python](https://github.com/mkdocstrings/python) | `2.0.4` | `2.0.5` | | [ruff](https://github.com/astral-sh/ruff) | `0.15.16` | `0.15.20` | Updates `numpy` from 2.4.6 to 2.5.0 - [Release notes](https://github.com/numpy/numpy/releases) - [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst) - [Commits](numpy/numpy@v2.4.6...v2.5.0) Updates `typing-extensions` from 4.15.0 to 4.16.0 - [Release notes](https://github.com/python/typing_extensions/releases) - [Changelog](https://github.com/python/typing_extensions/blob/main/CHANGELOG.md) - [Commits](python/typing_extensions@4.15.0...4.16.0) Updates `fsspec` from 2026.4.0 to 2026.6.0 - [Commits](fsspec/filesystem_spec@2026.4.0...2026.6.0) Updates `obstore` from 0.10.1 to 0.11.0 - [Commits](https://github.com/geospatial-jeff/pyasyncio-benchmark/commits) Updates `typer` from 0.26.7 to 0.26.8 - [Release notes](https://github.com/fastapi/typer/releases) - [Changelog](https://github.com/fastapi/typer/blob/master/docs/release-notes.md) - [Commits](fastapi/typer@0.26.7...0.26.8) Updates `coverage` from 7.14.1 to 7.14.3 - [Release notes](https://github.com/coveragepy/coveragepy/releases) - [Changelog](https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst) - [Commits](coveragepy/coveragepy@7.14.1...7.14.3) Updates `pytest` from 9.0.3 to 9.1.1 - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](pytest-dev/pytest@9.0.3...9.1.1) Updates `pytest-accept` from 0.2.3 to 0.3.0 - [Release notes](https://github.com/max-sixty/pytest-accept/releases) - [Changelog](https://github.com/max-sixty/pytest-accept/blob/main/CHANGELOG.md) - [Commits](max-sixty/pytest-accept@0.2.3...0.3.0) Updates `hypothesis` from 6.155.2 to 6.155.7 - [Release notes](https://github.com/HypothesisWorks/hypothesis/releases) - [Commits](HypothesisWorks/hypothesis@v6.155.2...v6.155.7) Updates `uv` from 0.11.20 to 0.11.26 - [Release notes](https://github.com/astral-sh/uv/releases) - [Changelog](https://github.com/astral-sh/uv/blob/main/CHANGELOG.md) - [Commits](astral-sh/uv@0.11.20...0.11.26) Updates `s3fs` from 2026.4.0 to 2026.6.0 - [Changelog](https://github.com/fsspec/s3fs/blob/main/release-procedure.md) - [Commits](https://github.com/fsspec/s3fs/commits) Updates `mkdocstrings-python` from 2.0.4 to 2.0.5 - [Release notes](https://github.com/mkdocstrings/python/releases) - [Changelog](https://github.com/mkdocstrings/python/blob/main/CHANGELOG.md) - [Commits](mkdocstrings/python@2.0.4...2.0.5) Updates `ruff` from 0.15.16 to 0.15.20 - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.15.16...0.15.20) --- updated-dependencies: - dependency-name: numpy dependency-version: 2.5.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-dependencies - dependency-name: typing-extensions dependency-version: 4.16.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-dependencies - dependency-name: fsspec dependency-version: 2026.6.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: python-dependencies - dependency-name: obstore dependency-version: 0.11.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: python-dependencies - dependency-name: typer dependency-version: 0.26.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: python-dependencies - dependency-name: coverage dependency-version: 7.14.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: python-dependencies - dependency-name: pytest dependency-version: 9.1.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: python-dependencies - dependency-name: pytest-accept dependency-version: 0.3.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: python-dependencies - dependency-name: hypothesis dependency-version: 6.155.7 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: python-dependencies - dependency-name: uv dependency-version: 0.11.26 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: python-dependencies - dependency-name: s3fs dependency-version: 2026.6.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: python-dependencies - dependency-name: mkdocstrings-python dependency-version: 2.0.5 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: python-dependencies - dependency-name: ruff dependency-version: 0.15.20 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: python-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Davis Bennett <davis.v.bennett@gmail.com>
…rr-developers#4139) * chore(deps): bump the actions group across 1 directory with 8 updates (#176) Bumps the actions group with 8 updates in the / directory: | Package | From | To | | --- | --- | --- | | [prefix-dev/setup-pixi](https://github.com/prefix-dev/setup-pixi) | `0.9.5` | `0.9.6` | | [codecov/codecov-action](https://github.com/codecov/codecov-action) | `6.0.0` | `6.0.1` | | [github/issue-metrics](https://github.com/github/issue-metrics) | `4.2.2` | `4.2.7` | | [j178/prek-action](https://github.com/j178/prek-action) | `2.0.3` | `2.0.4` | | [actions/upload-artifact](https://github.com/actions/upload-artifact) | `7.0.0` | `7.0.1` | | [actions/download-artifact](https://github.com/actions/download-artifact) | `7.0.0` | `8.0.1` | | [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) | `1.13.0` | `1.14.0` | | [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action) | `0.5.3` | `0.5.6` | Updates `prefix-dev/setup-pixi` from 0.9.5 to 0.9.6 - [Release notes](https://github.com/prefix-dev/setup-pixi/releases) - [Commits](prefix-dev/setup-pixi@1b2de7f...5185adf) Updates `codecov/codecov-action` from 6.0.0 to 6.0.1 - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](codecov/codecov-action@57e3a13...e79a696) Updates `github/issue-metrics` from 4.2.2 to 4.2.7 - [Release notes](https://github.com/github/issue-metrics/releases) - [Commits](github-community-projects/issue-metrics@c9e9838...1e38d5e) Updates `j178/prek-action` from 2.0.3 to 2.0.4 - [Release notes](https://github.com/j178/prek-action/releases) - [Commits](j178/prek-action@6ad8027...bdca6f1) Updates `actions/upload-artifact` from 7.0.0 to 7.0.1 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@v7...043fb46) Updates `actions/download-artifact` from 7.0.0 to 8.0.1 - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](actions/download-artifact@v7...3e5f45b) Updates `pypa/gh-action-pypi-publish` from 1.13.0 to 1.14.0 - [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases) - [Commits](pypa/gh-action-pypi-publish@v1.13.0...cef2210) Updates `zizmorcore/zizmor-action` from 0.5.3 to 0.5.6 - [Release notes](https://github.com/zizmorcore/zizmor-action/releases) - [Commits](zizmorcore/zizmor-action@b1d7e1f...5f14fd0) --- updated-dependencies: - dependency-name: prefix-dev/setup-pixi dependency-version: 0.9.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: codecov/codecov-action dependency-version: 6.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: github/issue-metrics dependency-version: 4.2.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: j178/prek-action dependency-version: 2.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: actions/upload-artifact dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: actions/download-artifact dependency-version: 8.0.1 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: pypa/gh-action-pypi-publish dependency-version: 1.14.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions - dependency-name: zizmorcore/zizmor-action dependency-version: 0.5.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * test: bind moto server to an ephemeral port to fix xdist deadlock The session-scoped moto_server fixture bound a fixed port (5555). Under pytest-xdist, session-scoped fixtures run once per worker, so concurrent workers raced to bind the same port. The losers blocked forever inside ThreadedMotoServer.start(): its werkzeug thread dies on "Address already in use" before setting the ready event that start() waits on, and the wait has no timeout. Any multi-worker run whose s3 tests landed on 2+ workers deadlocked near the end of the suite at 0% CPU. CI never saw this because it runs the suite single-process. Bind port 0 instead and yield the actual endpoint from the fixture. Since the endpoint is now only known at runtime, test_fsspec.py's module-level endpoint_url constant becomes an endpoint_url fixture (replacing the s3_base alias), and its consumers take it as a parameter. With this fix the full suite completes in ~1 minute under -n auto on a 10-core machine, where it previously hung indefinitely. Assisted-by: ClaudeCode:claude-fable-5 * doc: add changelog fragment for moto ephemeral-port fix Assisted-by: ClaudeCode:claude-fable-5 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 AI text below 🤖
Stacked on #214 — review only the top commit; the base commits are the moto ephemeral-port fix.
What
Adopt pytest 9's
strict = trueconfig option (announced in 9.0), which turns onstrict_config,strict_markers,strict_xfail,strict_parametrization_ids, and any strictness options future pytest releases add. It replaces three existing settings:--strict-config/--strict-markersinaddopts— which pytest silently ignored when passed via addopts until 9.1 (pytest#14442), so these were never actually enforced;xfail_strict = true.minversionis bumped to 9 to match. Verified enforcement works: an intentionally duplicated parametrization now fails collection.Duplicate-id fixes surfaced by
strict_parametrization_idspytest previously deduplicated colliding test ids silently (
foo0,foo1). Strict mode makes them collection errors, which surfaced seven parametrizations — including one real coverage bug:test_dtype/test_npy/test_common.py— the float JSON roundtrip cases pairedfloat("inf")withnp.inf(and-inf/nan), butnp.infis a Python float, so three cases per test ran twice and the intended numpy-scalar coverage never existed. Now usesnp.float64scalars with explicit ids, restoring the intended coverage across 5 test functions.test_dtype/conftest.py—TestInt32/TestUInt32deliberately includenp.dtype("i")/C-uintspellings that compare equal to (and stringify identically to) one of the explicit-endian dtypes on any given platform, but differ on Windows. Rather than dropping that coverage, the class-fixture parametrization hook now suffixes colliding ids with their index (int32-0,int32-2).test_group.py::test_consistent_signatures— bothcreate_hierarchypairs got the idcreate_hierarchy-create_hierarchy; ids now include module + qualname (group.AsyncGroup.create_hierarchy-group.Group.create_hierarchy).test_array.py::test_scalar_array—"a"vsb"a"; explicit id for the bytes case.test_codecs/test_vlen.py—strbuiltin vs"str"literal; explicit id for the literal.test_metadata/test_v2.py::test_parse_zarr_format_invalid—3vs"3"; explicit id for the string case.Verification
Duplicate parametrization IDs detected.-n auto, on top of the test: bind moto server to an ephemeral port to fix xdist deadlock #214 fix): 6196 passed, 277 skipped, 4 xfailed in 65s.🤖 Generated with Claude Code