Skip to content

build(deps): Bump the python group across 1 directory with 16 updates - #296

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/uv/python-51b861e7a7
Closed

build(deps): Bump the python group across 1 directory with 16 updates#296
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/uv/python-51b861e7a7

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 5, 2026

Copy link
Copy Markdown
Contributor

Bumps the python group with 16 updates in the / directory:

Package From To
numpy 2.4.2 2.4.6
pandas 3.0.1 3.0.5
pydantic 2.12.5 2.13.4
xarray 2026.2.0 2026.7.0
scipy 1.17.0 1.17.1
pytest 9.0.2 9.1.1
prek 0.3.4 0.4.12
ty 0.0.18 0.0.66
pytest-cov 7.0.0 7.1.0
ruff 0.15.2 0.16.1
typing-extensions 4.15.0 4.16.0
ipython 9.10.0 9.16.1
shibuya 2026.7.11 2026.7.12
ipykernel 7.2.0 7.3.0
jupytext 1.19.4 1.19.5
sphinx-codeautolink 0.18.1 0.19.0

Updates numpy from 2.4.2 to 2.4.6

Release notes

Sourced from numpy's releases.

v2.4.6 (May 18, 2026)

NumPy 2.4.6 Release Notes

NumPy 2.4.6 is a quick release that fixes a regression discovered in the 2.4.5 release.

This release supports Python versions 3.11-3.14

Contributors

A total of 4 people contributed to this release. People with a "+" by their names contributed a patch for the first time.

  • !EarlMilktea
  • Charles Harris
  • Sebastian Berg
  • Warren Weckesser

Pull requests merged

A total of 4 pull requests were merged for this release.

  • #31444: MAINT: Prepare 2.4.x for further development
  • #31453: BUG: Fix regression in arr.conj()
  • #31459: BUG: np.linalg.svd(..., hermitian=True) returns non-unitary...
  • #31460: BUG: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator...

v2.4.5 (May 15, 2026)

NumPy 2.4.5 Release Notes

NumPy 2.4.5 is a patch release that fixes bugs discovered after the 2.4.4 release, has some typing improvements, and maintains infrastructure.

This release supports Python versions 3.11-3.14

Contributors

A total of 17 people contributed to this release. People with a "+" by their names contributed a patch for the first time.

  • Aleksei Nikiforov
  • Anarion Zuo +
  • Ankit Ahlawat
  • Breno Favaretto +
  • Charles Harris
  • Igor Krivenko +
  • Ijtihed Kilani +
  • Joren Hammudoglu
  • Maarten Baert +

... (truncated)

Commits
  • b832a09 Merge pull request #31462 from charris/prepare-2.4.6
  • 57cc147 REL: Prepare for the NumPy 2.4.6 release
  • 0c72b0b Merge pull request #31459 from charris/backport-31347
  • 9778d26 BUG: core: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator. (#...
  • e0e3876 BUG: core: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator. (#...
  • d1bffeb BUG: np.linalg.svd(..., hermitian=True) returns non-unitary vh (#31347)
  • 8d8d7e5 Merge pull request #31453 from seberg/issue-31452
  • bddaab7 BUG: Fix regression in arr.conj()
  • 37a1ecc Merge pull request #31444 from charris/begin-2.4.6
  • 3c0e043 MAINT: Prepare 2.4.x for further development
  • Additional commits viewable in compare view

Updates pandas from 3.0.1 to 3.0.5

Release notes

Sourced from pandas's releases.

pandas 3.0.5

We are pleased to announce the release of pandas 3.0.5. This is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.

See the full whatsnew for a list of all the changes.

Pandas 3.0 supports Python 3.11 and higher. The release can be installed from PyPI:

python -m pip install --upgrade pandas==3.0.*

Or from conda-forge

conda install -c conda-forge pandas=3.0

Please report any issues with the release on the pandas issue tracker.

Thanks to all the contributors who made this release possible.

pandas 3.0.4

We are pleased to announce the release of pandas 3.0.4. This is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.

See the full whatsnew for a list of all the changes.

Pandas 3.0 supports Python 3.11 and higher. The release can be installed from PyPI:

python -m pip install --upgrade pandas==3.0.*

Or from conda-forge

conda install -c conda-forge pandas=3.0

Please report any issues with the release on the pandas issue tracker.

Thanks to all the contributors who made this release possible.

pandas 3.0.3

We are pleased to announce the release of pandas 3.0.3. This is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.

See the full whatsnew for a list of all the changes.

Pandas 3.0 supports Python 3.11 and higher. The release can be installed from PyPI:

python -m pip install --upgrade pandas==3.0.*

Or from conda-forge

... (truncated)

Commits
  • e68db09 RLS: 3.0.5
  • 0697623 Backport PR #66428: DOC: update whatsnew for 3.0.5 (#66430)
  • 5d846d0 Backport PR #66090 on branch 3.0.x (BLD: exclude numpy 2.5.0 when building wh...
  • bef7a2b Backport PR #66169 on branch 3.0.x (CI: Fix pyarrow-nightly job (stale nightl...
  • 8188eb1 RLS: 3.0.4 (#66079)
  • bd35f15 [3.0.x] BUG: fix CoW issue in eval() (#66072)
  • 6195872 [backport 3.0.x] BUG: anchor whole alternation in Series.str.match for PyArro...
  • 70313be Backport PR #66051 on branch 3.0.x (BUG: fix regression in DataFrame setitem ...
  • 57ed3e2 [backport 3.0.x] Bump pypa/cibuildwheel from 3.4.1 to 4.1.0 (#65934) (#66026)
  • f9693fc [backport 3.0.x] BUG(pandas 3.0 regression): drop(index=...) doesn't accept N...
  • Additional commits viewable in compare view

Updates pydantic from 2.12.5 to 2.13.4

Release notes

Sourced from pydantic's releases.

v2.13.4 2026-05-06

v2.13.4 (2026-05-06)

What's Changed

Packaging

Fixes

Full Changelog: pydantic/pydantic@v2.13.3...v2.13.4

v2.13.3 2026-04-20

v2.13.3 (2026-04-20)

What's Changed

Fixes

Full Changelog: pydantic/pydantic@v2.13.2...v2.13.3

v2.13.2 2026-04-17

v2.13.2 (2026-04-17)

What's Changed

Fixes

  • Fix ValidationInfo.field_name missing with model_validate_json() by @​Viicos in #13084

Full Changelog: pydantic/pydantic@v2.13.1...v2.13.2

v2.13.1 2026-04-15

v2.13.1 (2026-04-15)

What's Changed

Fixes

Full Changelog: pydantic/pydantic@v2.13.0...v2.13.1

v2.13.0 2026-04-13

... (truncated)

Changelog

Sourced from pydantic's changelog.

v2.13.4 (2026-05-06)

GitHub release

What's Changed

Packaging

Fixes

v2.13.3 (2026-04-20)

GitHub release

What's Changed

Fixes

v2.13.2 (2026-04-17)

GitHub release

What's Changed

Fixes

  • Fix ValidationInfo.field_name missing with model_validate_json() by @​Viicos in #13084

v2.13.1 (2026-04-15)

GitHub release

What's Changed

Fixes

v2.13.0 (2026-04-13)

GitHub release

The highlights of the v2.13 release are available in the blog post.

... (truncated)

Commits
  • cf67d4b Fix linting
  • f0d8a21 Prepare release v2.13.4
  • 5e3fe1d Check for pydantic tag pattern in CI
  • 7f9edcc Document tagging conventions
  • b46a0c9 Adapt pydantic-core linker flags on macOS
  • 50629c8 Update to PyPy 7.3.22
  • 8522ebb Preserve RootModel core metadata
  • a37f3af Adapt MISSING sentinel test to work with unreleased typing_extensions ver...
  • 909259a Remove Logfire example in documentation
  • 2c4174c Bump libc from 0.2.155 to 0.2.185
  • Additional commits viewable in compare view

Updates xarray from 2026.2.0 to 2026.7.0

Release notes

Sourced from xarray's releases.

v2026.07.0

This release adds support for Dask's query-optimizing expression arrays, along with new day_of_week and day_of_year datetime accessor attributes. It also includes a number of bug fixes, notably for a performance regression in :py:meth:Coordinates.to_index, Zarr fill_value round-tripping, and excessive memory use in drop_encoding.

Thanks to the 25 contributors to this release: Davis Bennett, Deepak Cherian, Ian Hunt-Isaak, Illviljan, Jonathan Dung, Julia Signell, Justus Magin, Kai Mühlbauer, MJSHANG, Mark Harfouche, Mathias Hauser, Matt Van Horn, Matthew Rocklin, Max Jones, Maximilian Roos, Nick Hodgskin, S Anand, Spencer Clark, Sreekant Baheti, Timothy Hodson, Tom Nicholas, Vincent Gao, Wali Reheman, Wei Ji and eeshsaxena

What's Changed

... (truncated)

Commits

Updates scipy from 1.17.0 to 1.17.1

Release notes

Sourced from scipy's releases.

SciPy 1.17.1 Release Notes

SciPy 1.17.1 is a bug-fix release with no new features compared to 1.17.0.

Authors

  • Name (commits)
  • Evgeni Burovski (5)
  • Lucas Colley (1)
  • Christoph Gohlke (1)
  • Ralf Gommers (6)
  • Matt Haberland (5)
  • Matthias Koeppe (1)
  • Nick ODell (1)
  • Ilhan Polat (10)
  • Tyler Reddy (44)
  • Martin Schuck (3)
  • Dan Schult (3)
  • stratakis (1) +
  • ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (1)

A total of 13 people contributed to this release. People with a "+" by their names contributed a patch for the first time. This list of names is automatically generated, and may not be fully complete.

Complete issue list, PR list, and release asset hashes are available in the associated README.txt.

Commits
  • 527eb7f REL: 1.17.1 release commit [wheel build]
  • f11663b Merge pull request #24584 from tylerjereddy/treddy_prep_1.17.1
  • 2c49e68 DOC: PR 24584 revisions
  • 400fa15 safely convert index dtypes to intc for csgraph and superLU
  • 8c70404 MAINT: PR 24584 revisions [wheel build]
  • 6dda8c1 BUG: PR 24584 revisions
  • 4a187e5 DOC: PR 24584 revisions
  • 463ee9f ENH: linalg/inv: re-enable overwrite_a for 2D inputs (#24442)
  • df746ee BUG: linalg: restore dtypes in inv, solve, det
  • 246bfee MAINT:optimize: Enable multi-phase init to DIRECT
  • Additional commits viewable in compare view

Updates pytest from 9.0.2 to 9.1.1

Release notes

Sourced from pytest's releases.

9.1.1

pytest 9.1.1 (2026-06-19)

Bug fixes

  • #14220: Fixed a logic bug in pytest.RaisesGroup which would might cause it to display incorrect "It matches FooError() which was paired with BarError" messages.
  • #14591: Fixed a regression in pytest 9.1.0 which caused overriding a parametrized fixture with an indirect @​pytest.mark.parametrize to fail with "duplicate parametrization of '<fixture name>'".
  • #14606: Fixed list-item typing errors from mypy in @pytest.mark.parametrize <pytest.mark.parametrize ref> argvalues parameter.
  • #14608: Fixed a regression in pytest 9.1.0 where conftest.py files located in <invocation dir>/test* were no longer loaded as initial conftests when invoked without arguments. This could cause certain hooks (like pytest_addoption) in these files to not fire.

9.1.0

pytest 9.1.0 (2026-06-13)

Removals and backward incompatible breaking changes

  • #14533: When using --doctest-modules, autouse fixtures with module, package or session scope that are defined inline in Python test modules (not plugins or conftests) will now possibly execute twice.

    If this is undesirable, move the fixture definition to a conftest.py file if possible.

    Technical explanation for those interested: When using --doctest-modules, pytest possibly collects Python modules twice, once as pytest.Module and once as a DoctestModule (depending on the configuration). Due to improvements in pytest's fixture implementation, if e.g. the DoctestModule collects a fixture, it is now visible to it only, and not to the Module. This means that both need to register the fixtures independently.

Deprecations (removal in next major release)

  • #10819: Added a deprecation warning for class-scoped fixtures defined as instance methods (without @classmethod). Such fixtures set attributes on a different instance than the test methods use, leading to unexpected behavior. Use @classmethod decorator instead -- by yastcher.

    See 10819 and 14011.

  • #12882: Calling request.getfixturevalue() <pytest.FixtureRequest.getfixturevalue> during teardown to request a fixture that was not already requested is now deprecated and will become an error in pytest 10.

    See dynamic-fixture-request-during-teardown for details.

  • #13409: Using non-~collections.abc.Collection iterables (such as generators, iterators, or custom iterable objects) for the argvalues parameter in @pytest.mark.parametrize <pytest.mark.parametrize ref> and metafunc.parametrize <pytest.Metafunc.parametrize> is now deprecated.

    These iterables get exhausted after the first iteration, leading to tests getting unexpectedly skipped in cases such as running pytest.main() multiple times, using class-level parametrize decorators, or collecting tests multiple times.

    See parametrize-iterators for details and suggestions.

  • #13946: The private config.inicfg attribute is now deprecated. Use config.getini() <pytest.Config.getini> to access configuration values instead.

    See config-inicfg for more details.

  • #14004: Passing baseid to ~pytest.FixtureDef or nodeid strings to fixture registration APIs is now deprecated. These are internal pytest APIs that are used by some plugins.

... (truncated)

Commits
  • cf470ec Prepare release version 9.1.1
  • e0c8ce6 Merge pull request #14625 from pytest-dev/patchback/backports/9.1.x/a07c31a97...
  • 1b82d16 Merge pull request #14624 from pytest-dev/patchback/backports/9.1.x/b375b79ec...
  • 501c4bc Merge pull request #14596 from bluetech/doc-classmethod
  • b61f588 Merge pull request #14622 from chrisburr/fix-14608-initial-conftest-test-subdir
  • 9a567e0 [automated] Update plugin list (#14617) (#14618)
  • ef8b299 Merge pull request #14620 from pytest-dev/patchback/backports/9.1.x/680f9f3ed...
  • 66abd07 Merge pull request #14220 from bysiber/fix-stale-iexp-raisesgroup
  • 79fbf93 Merge pull request #14612 from pytest-dev/patchback/backports/9.1.x/974ed48b6...
  • 0d312eb Merge pull request #14611 from bluetech/parametrize-argvalues-typing
  • Additional commits viewable in compare view

Updates prek from 0.3.4 to 0.4.12

Release notes

Sourced from prek's releases.

0.4.12

Release Notes

Released on 2026-08-03.

Enhancements

  • Add --require-group for hook group intersections (#2472)
  • Align fast-path and builtin pre-commit hooks (#2433)
  • Do not shuffle file list for verbose output (#2431)
  • Improve top-level command descriptions (#2429)
  • Install uv from Astral CDN and drop source racing (#2455)
  • Make prek install --force bypass external hooks paths (#2437)
  • Show builtin hook flags in verbose list output (#2427)
  • Verify uv release archive checksums (#2456)

Performance

  • Precompute file tags in parallel (#2440)
  • Skip diffs after known hook modifications (#2447)
  • Skip worktree diffs for read-only languages (#2432)
  • Track builtin hook file changes directly (#2404)

Bug fixes

  • Use full object IDs in diff snapshots (#2448)

Documentation

  • Add a multi-repository configuration example (#2434)
  • Rewrite benchmark documentation (#2469)

Contributors

Install prek 0.4.12

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.12/prek-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.12/prek-installer.ps1 | iex"
</tr></table> 

... (truncated)

Changelog

Sourced from prek's changelog.

0.4.12

Released on 2026-08-03.

Enhancements

  • Add --require-group for hook group intersections (#2472)
  • Align fast-path and builtin pre-commit hooks (#2433)
  • Do not shuffle file list for verbose output (#2431)
  • Improve top-level command descriptions (#2429)
  • Install uv from Astral CDN and drop source racing (#2455)
  • Make prek install --force bypass external hooks paths (#2437)
  • Show builtin hook flags in verbose list output (#2427)
  • Verify uv release archive checksums (#2456)

Performance

  • Precompute file tags in parallel (#2440)
  • Skip diffs after known hook modifications (#2447)
  • Skip worktree diffs for read-only languages (#2432)
  • Track builtin hook file changes directly (#2404)

Bug fixes

  • Use full object IDs in diff snapshots (#2448)

Documentation

  • Add a multi-repository configuration example (#2434)
  • Rewrite benchmark documentation (#2469)

Contributors

0.4.11

Released on 2026-07-25.

Highlights

  • This release adds two new builtin hooks, deny-pattern and require-pattern, as native alternatives for pygrep use cases. deny-pattern fails when a configured pattern is found, while require-pattern ensures every selected file contains a match. By matching natively without spawning a Python subprocess, they run over 4x faster than pygrep in benchmarks. Note that they use Rust regex syntax, which does

... (truncated)

Commits

Updates ty from 0.0.18 to 0.0.66

Release notes

Sourced from ty's releases.

0.0.66

Release Notes

Released on 2026-08-03.

LSP server

  • Index with-statement targets as symbols (#27256)
  • Trigger signature help after completing callable with parentheses (#27084)

Library support

  • Pydantic: Recognize models installed on extra search paths (#27429)

Diagnostics

  • Detect __aenter__ and __aexit__ that do not return awaitables (#27414)
  • Diagnose dataclass fields after inherited defaults (#27327)
  • Emit diagnostic when specializing a non-generic class (#26883)
  • Improve error context for incompatible callable signatures (#27422)
  • Preserve forwarded expanded-variadic diagnostic sources (#27266)

Core type checking

  • Avoid over-materializing user-defined TypeIs return types (#26864)
  • Fix enum class container assignability (#27318)
  • Hide stub-only helpers from implicit builtin lookup (#27423)
  • Move Unknown out of the experimental ty_extensions API (#27430)
  • Preserve TypeVarTuple context during Generic recovery (#27381)
  • Preserve exact numeric types in covariant collections (#27311)
  • Reject ClassVar and Final qualifiers in NamedTuple fields (#27380)
  • Reject out-of-scope ParamSpec components (#27378)
  • Reject specializing non-generic subclasses (#27377)
  • Respect bounds and constraints in generic materializations (#27228)
  • Sync vendored typeshed stubs (#27401). Typeshed diff

Contributors

Install ty 0.0.66

... (truncated)

Changelog

Sourced from ty's changelog.

0.0.66

Released on 2026-08-03.

LSP server

  • Index with-statement targets as symbols (#27256)
  • Trigger signature help after completing callable with parentheses (#27084)

Library support

  • Pydantic: Recognize models installed on extra search paths (#27429)

Diagnostics

  • Detect __aenter__ and __aexit__ that do not return awaitables (#27414)
  • Diagnose dataclass fields after inherited defaults (#27327)
  • Emit diagnostic when specializing a non-generic class (#26883)
  • Improve error context for incompatible callable signatures (#27422)
  • Preserve forwarded expanded-variadic diagnostic sources (#27266)

Core type checking

  • Avoid over-materializing user-defined TypeIs return types (#26864)
  • Fix enum class container assignability (#27318)
  • Hide stub-only helpers from implicit builtin lookup (#27423)
  • Move Unknown out of the experimental ty_extensions API (#27430)
  • Preserve TypeVarTuple context during Generic recovery (#27381)
  • Preserve exact numeric types in covariant collections (#27311)
  • Reject ClassVar and Final qualifiers in NamedTuple fields (#27380)
  • Reject out-of-scope ParamSpec components (#27378)
  • Reject specializing non-generic subclasses (#27377)
  • Respect bounds and constraints in generic materializations (#27228)
  • Sync vendored typeshed stubs (#27401). Typeshed diff

Contributors

0.0.65

Released on 2026-07-29.

... (truncated)

Commits

Updates pytest-cov from 7.0.0 to 7.1.0

Changelog

Sourced from pytest-cov's changelog.

7.1.0 (2026-03-21)

  • Fixed total coverage computation to always be consistent, regardless of reporting settings. Previously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on reporting options. See [#641](https://github.com/pytest-dev/pytest-cov/issues/641) <https://github.com/pytest-dev/pytest-cov/issues/641>_.

  • Improve handling of ResourceWarning from sqlite3.

    The plugin adds warning filter for sqlite3 ResourceWarning unclosed database (since 6.2.0). It checks if there is already existing plugin for this message by comparing filter regular expression. When filter is specified on command line the message is escaped and does not match an expected message. A check for an escaped regular expression is added to handle this case.

    With this fix one can suppress ResourceWarning from sqlite3 from command line::

    pytest -W "ignore:unclosed database in <sqlite3.Connection object at:ResourceWarning" ...

  • Various improvements to documentation. Contributed by Art Pelling in [#718](https://github.com/pytest-dev/pytest-cov/issues/718) <https://github.com/pytest-dev/pytest-cov/pull/718>_ and "vivodi" in [#738](https://github.com/pytest-dev/pytest-cov/issues/738) <https://github.com/pytest-dev/pytest-cov/pull/738>. Also closed [#736](https://github.com/pytest-dev/pytest-cov/issues/736) <https://github.com/pytest-dev/pytest-cov/issues/736>.

  • Fixed some assertions in tests. Contributed by in Markéta Machová in [#722](https://github.com/pytest-dev/pytest-cov/issues/722) <https://github.com/pytest-dev/pytest-cov/pull/722>_.

  • Removed unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).

Commits
  • 66c8a52 Bump version: 7.0.0 → 7.1.0
  • f707662 Make the examples use pypy 3.11.
  • 6049a78 Make context test use the old ctracer (seems the new sysmon tracer behaves di...
  • 8ebf20b Update changelog.
  • 861d30e Remove the backup context manager - shouldn't be needed since coverage 5.0, ...
  • fd4c956 Pass the precision on the nulled total (seems that there's some caching goion...
  • 78c9c4e Only run the 3.9 on older deps.
  • 4849a92 Punctuation.
  • 197c35e Update changelog and hopefully I don't forget to publish release again :))
  • 14dc1c9 Update examples to use 3.11 and make the adhoc layout example look a bit more...
  • Additional commits viewable in compare view

Updates ruff from 0.15.2 to 0.16.1

Release notes

Sourced from ruff's releases.

0.16.1

Release Notes

Released on 2026-07-30.

Preview features

  • Add an option to opt out of human-readable names (#27160)
  • [flake8-pytest-style] Make fixes safe by default and unsafe only when comments are present (PT018) (#27201)
  • [pyupgrade] Skip fix when a defaulted TypeVar precedes a non-defaulted one (UP040, UP046, UP047) (#27133)
  • [ruff...

    Description has been truncated

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Aug 5, 2026
@dependabot
dependabot Bot force-pushed the dependabot/uv/python-51b861e7a7 branch from bb536d8 to b504849 Compare August 5, 2026 23:10
thomaspinder added a commit that referenced this pull request Aug 7, 2026
#296 (dependabot, 16 packages) fails `quality` and all four
`tests-and-type-check` legs. The runtime stack is fine — every leg reports
1111 passed before dying on `uv run ty check`. One package is responsible:
ty 0.0.18 -> 0.0.65, which emits 16 diagnostics. Reproduced by running
`uvx --from ty==0.0.65 ty check` against main.

Fifteen were tooling artifacts. One was a real bug.

`SVDynamics` declared `name: str` and `has_explicit_level: bool` as mutable
protocol members. Mutable members are invariant, so `RandomWalk.name:
Literal["random_walk"]` never actually satisfied the protocol, and
`SV_DYNAMICS_REGISTRY: dict[str, type[SVDynamics]]` was unassignable.
Declaring them read-only properties makes the members covariant and the
narrowing legal. `@runtime_checkable` is unaffected: `isinstance` checks
attribute presence, which pydantic fields still provide.

Note `Mapping[str, type[SVDynamics]]` does *not* fix this — measured, still
16 diagnostics. Container covariance does not change the element check.

The remaining 14 were `invalid-assignment` on lines like

    with pytest.raises(ValidationError):
        data.endog = np.zeros((100, 3))

where the assignment *is* the assertion. ty >= 0.0.65 models pydantic
frozen semantics and rejects them statically. The rule is now ignored for
`tests/**` only; `src/` keeps it, which is what surfaced the protocol bug.
Four inline `# ty: ignore[invalid-assignment]` comments in test_sv_spec.py
and test_volatility.py are now redundant and removed — they were earlier
patches for this same pattern.

`_check_finite` used `zip(frame.columns, finite, strict=True)`, which ty
could not unpack. Rewritten as a boolean mask over the index: shorter, no
suppression needed.

Dependabot now groups ty/ruff/prek separately from runtime dependencies.
Bundled together, one new lint rule blocks everything else in the PR — #296
stalled numpy 2.4.6's fix for `np.linalg.svd(hermitian=True)` returning
non-unitary `vh`, which matters for a library factorising covariances.

Verified on both halves of the pinned matrix — ty 0.0.18, 0.0.65 and 0.0.67
all clean, `make check` passes, and the suite passes on py3.11/PyMC 5/ArviZ
0 (1111 passed) and py3.12/PyMC 6/ArviZ 1 (1112 passed).
@thomaspinder

Copy link
Copy Markdown
Owner

Diagnosed: 15 of the 16 ty diagnostics blocking this PR are tooling artifacts, one is a real protocol-variance bug in SVDynamics. Fixed in #299.

Only ty 0.0.18 → 0.0.65 is responsible here — the runtime stack in this bump is fine. Every failing leg prints 1111 passed, 1 skipped and then dies on uv run ty check, and lowest-direct-deps/arviz-1-2-compat/wheel-install all pass.

I verified the fix directly against this branch's uv.lock: overlaid it onto #299 and re-ran everything — ty 0.0.65 clean, prek run --all-files all hooks pass, 1111 tests pass. So once #299 lands, this needs only a rebase.

@dependabot rebase

@dependabot
dependabot Bot force-pushed the dependabot/uv/python-51b861e7a7 branch from b504849 to eb233de Compare August 7, 2026 07:54
@thomaspinder

Copy link
Copy Markdown
Owner

Correction on my own @dependabot rebase above — I triggered it too early. It rebased onto main before #299 merged, so this PR is expected to keep failing quality and tests-and-type-check until #299 lands. That failing run is not evidence against the fix.

Sequence is: merge #299 → rebase this again → green. Verified in advance by overlaying this branch's uv.lock onto #299.

thomaspinder added a commit that referenced this pull request Aug 7, 2026
…299)

#296 (dependabot, 16 packages) fails `quality` and all four
`tests-and-type-check` legs. The runtime stack is fine — every leg reports
1111 passed before dying on `uv run ty check`. One package is responsible:
ty 0.0.18 -> 0.0.65, which emits 16 diagnostics. Reproduced by running
`uvx --from ty==0.0.65 ty check` against main.

Fifteen were tooling artifacts. One was a real bug.

`SVDynamics` declared `name: str` and `has_explicit_level: bool` as mutable
protocol members. Mutable members are invariant, so `RandomWalk.name:
Literal["random_walk"]` never actually satisfied the protocol, and
`SV_DYNAMICS_REGISTRY: dict[str, type[SVDynamics]]` was unassignable.
Declaring them read-only properties makes the members covariant and the
narrowing legal. `@runtime_checkable` is unaffected: `isinstance` checks
attribute presence, which pydantic fields still provide.

Note `Mapping[str, type[SVDynamics]]` does *not* fix this — measured, still
16 diagnostics. Container covariance does not change the element check.

The remaining 14 were `invalid-assignment` on lines like

    with pytest.raises(ValidationError):
        data.endog = np.zeros((100, 3))

where the assignment *is* the assertion. ty >= 0.0.65 models pydantic
frozen semantics and rejects them statically. The rule is now ignored for
`tests/**` only; `src/` keeps it, which is what surfaced the protocol bug.
Four inline `# ty: ignore[invalid-assignment]` comments in test_sv_spec.py
and test_volatility.py are now redundant and removed — they were earlier
patches for this same pattern.

`_check_finite` used `zip(frame.columns, finite, strict=True)`, which ty
could not unpack. Rewritten as a boolean mask over the index: shorter, no
suppression needed.

Dependabot now groups ty/ruff/prek separately from runtime dependencies.
Bundled together, one new lint rule blocks everything else in the PR — #296
stalled numpy 2.4.6's fix for `np.linalg.svd(hermitian=True)` returning
non-unitary `vh`, which matters for a library factorising covariances.

Verified on both halves of the pinned matrix — ty 0.0.18, 0.0.65 and 0.0.67
all clean, `make check` passes, and the suite passes on py3.11/PyMC 5/ArviZ
0 (1111 passed) and py3.12/PyMC 6/ArviZ 1 (1112 passed).
@thomaspinder

Copy link
Copy Markdown
Owner

@dependabot rebase

Bumps the python group with 16 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [numpy](https://github.com/numpy/numpy) | `2.4.2` | `2.4.6` |
| [pandas](https://github.com/pandas-dev/pandas) | `3.0.1` | `3.0.5` |
| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.4` |
| [xarray](https://github.com/pydata/xarray) | `2026.2.0` | `2026.7.0` |
| [scipy](https://github.com/scipy/scipy) | `1.17.0` | `1.17.1` |
| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.1.1` |
| [prek](https://github.com/j178/prek) | `0.3.4` | `0.4.12` |
| [ty](https://github.com/astral-sh/ty) | `0.0.18` | `0.0.66` |
| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |
| [ruff](https://github.com/astral-sh/ruff) | `0.15.2` | `0.16.1` |
| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |
| [ipython](https://github.com/ipython/ipython) | `9.10.0` | `9.16.1` |
| [shibuya](https://github.com/lepture/shibuya) | `2026.7.11` | `2026.7.12` |
| [ipykernel](https://github.com/ipython/ipykernel) | `7.2.0` | `7.3.0` |
| [jupytext](https://github.com/jupytext/jupytext) | `1.19.4` | `1.19.5` |
| [sphinx-codeautolink](https://github.com/felix-hilden/sphinx-codeautolink) | `0.18.1` | `0.19.0` |



Updates `numpy` from 2.4.2 to 2.4.6
- [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.2...v2.4.6)

Updates `pandas` from 3.0.1 to 3.0.5
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Commits](pandas-dev/pandas@v3.0.1...v3.0.5)

Updates `pydantic` from 2.12.5 to 2.13.4
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](pydantic/pydantic@v2.12.5...v2.13.4)

Updates `xarray` from 2026.2.0 to 2026.7.0
- [Release notes](https://github.com/pydata/xarray/releases)
- [Commits](pydata/xarray@v2026.02.0...v2026.07.0)

Updates `scipy` from 1.17.0 to 1.17.1
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](scipy/scipy@v1.17.0...v1.17.1)

Updates `pytest` from 9.0.2 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.2...9.1.1)

Updates `prek` from 0.3.4 to 0.4.12
- [Release notes](https://github.com/j178/prek/releases)
- [Changelog](https://github.com/j178/prek/blob/master/CHANGELOG.md)
- [Commits](j178/prek@v0.3.4...v0.4.12)

Updates `ty` from 0.0.18 to 0.0.66
- [Release notes](https://github.com/astral-sh/ty/releases)
- [Changelog](https://github.com/astral-sh/ty/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ty@0.0.18...0.0.66)

Updates `pytest-cov` from 7.0.0 to 7.1.0
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](pytest-dev/pytest-cov@v7.0.0...v7.1.0)

Updates `ruff` from 0.15.2 to 0.16.1
- [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.2...0.16.1)

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 `ipython` from 9.10.0 to 9.16.1
- [Release notes](https://github.com/ipython/ipython/releases)
- [Commits](ipython/ipython@9.10.0...9.16.1)

Updates `shibuya` from 2026.7.11 to 2026.7.12
- [Release notes](https://github.com/lepture/shibuya/releases)
- [Changelog](https://github.com/lepture/shibuya/blob/main/docs/changelog.rst)
- [Commits](lepture/shibuya@2026.7.11...2026.7.12)

Updates `ipykernel` from 7.2.0 to 7.3.0
- [Release notes](https://github.com/ipython/ipykernel/releases)
- [Changelog](https://github.com/ipython/ipykernel/blob/main/CHANGELOG.md)
- [Commits](ipython/ipykernel@v7.2.0...v7.3.0)

Updates `jupytext` from 1.19.4 to 1.19.5
- [Release notes](https://github.com/jupytext/jupytext/releases)
- [Changelog](https://github.com/jupytext/jupytext/blob/main/CHANGELOG.md)
- [Commits](jupytext/jupytext@v1.19.4...v1.19.5)

Updates `sphinx-codeautolink` from 0.18.1 to 0.19.0
- [Release notes](https://github.com/felix-hilden/sphinx-codeautolink/releases)
- [Commits](felix-hilden/sphinx-codeautolink@v0.18.1...v0.19.0)

---
updated-dependencies:
- dependency-name: ipykernel
  dependency-version: 7.3.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python
- dependency-name: ipython
  dependency-version: 9.16.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python
- dependency-name: jupytext
  dependency-version: 1.19.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: python
- dependency-name: numpy
  dependency-version: 2.4.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python
- dependency-name: pandas
  dependency-version: 3.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python
- dependency-name: prek
  dependency-version: 0.4.11
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python
- dependency-name: pydantic
  dependency-version: 2.13.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python
- dependency-name: pytest
  dependency-version: 9.1.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python
- dependency-name: pytest-cov
  dependency-version: 7.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python
- dependency-name: scipy
  dependency-version: 1.17.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python
- dependency-name: shibuya
  dependency-version: 2026.7.12
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: python
- dependency-name: sphinx-codeautolink
  dependency-version: 0.19.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python
- dependency-name: ty
  dependency-version: 0.0.65
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: python
- dependency-name: typing-extensions
  dependency-version: 4.16.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python
- dependency-name: xarray
  dependency-version: 2026.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python
...

Signed-off-by: dependabot[bot] <support@github.com>
@thomaspinder
thomaspinder force-pushed the dependabot/uv/python-51b861e7a7 branch from eb233de to 9b47fd8 Compare August 7, 2026 08:33
@thomaspinder
thomaspinder enabled auto-merge (squash) August 7, 2026 08:33
@dependabot @github

dependabot Bot commented on behalf of github Aug 7, 2026

Copy link
Copy Markdown
Contributor Author

Looks like these dependencies are updatable in another way, so this is no longer needed.

@dependabot dependabot Bot closed this Aug 7, 2026
auto-merge was automatically disabled August 7, 2026 08:35

Pull request was closed

@dependabot
dependabot Bot deleted the dependabot/uv/python-51b861e7a7 branch August 7, 2026 08:36
@codecov-commenter

codecov-commenter commented Aug 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.1%. Comparing base (83095a8) to head (9b47fd8).

Additional details and impacted files
@@          Coverage Diff          @@
##            main    #296   +/-   ##
=====================================
  Coverage   96.1%   96.1%           
=====================================
  Files         55      55           
  Lines       3548    3548           
  Branches     441     441           
=====================================
  Hits        3410    3410           
  Misses       102     102           
  Partials      36      36           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants