Skip to content

Bump the python-dependencies group across 1 directory with 15 updates - #1003

Merged
puddly merged 1 commit into
devfrom
dependabot/uv/python-dependencies-62e91b16af
Nov 5, 2026
Merged

puddly merged 1 commit into
devfrom
dependabot/uv/python-dependencies-62e91b16af

Conversation

@dependabot

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

Copy link
Copy Markdown
Contributor

Bumps the python-dependencies group with 15 updates in the / directory:

Package From To
frozendict 2.4.7 2.5.1
pytest 9.1.1 9.2.0
mypy 2.4.0 2.4.1
pytest-asyncio 1.4.0 1.4.1.post1
ruff 0.17.1 0.17.3
uv 0.13.5 0.13.6
aiospinel 1.2.0 1.3.0
filelock 4.2.4 4.2.6
multidict 7.1.0 7.2.1
nodeenv 1.11.0 1.12.0
platformdirs 4.13.5 4.14.3
python-dateutil 3.0.0 4.0.0
python-discovery 1.6.4 1.9.0
tzdata 2026.5 2026.6
virtualenv 21.14.12 21.15.2

Updates frozendict from 2.4.7 to 2.5.1

Release notes

Sourced from frozendict's releases.

frozendict 2.5.1

What's Changed

Fixes

2 regressions on C Extension since 2.2.0:

  • string lookups could match a non-string key with the same hash, so a frozendict could also lose keys while being built. For example, "" in frozendict([(0, 1)]) was True, and frozendict([(0, 1), ("", 2)]) was frozendict({0: 2}).
  • the garbage collector did not always free reference cycles passing through a key.

by @​Marco-Sulla in Marco-Sulla/python-frozendict#122

Full Changelog: Marco-Sulla/python-frozendict@v2.5.0...v2.5.1

frozendict v2.5.0

What's Changed

Breaking changes

  • Removed frozendict.__deepcopy__. deepcopy() now always returns a copy, even if the frozendict is hashable.
  • Pure py: | accepts only dict and frozendict, like the C Extension and dict.

Speed

  • C Extension: freelists for frozendicts and keys make creating small frozendicts faster: the constructor, set() and delete().
  • C Extension: frozendicts take less memory in some cases.
  • Pure py: faster set, setdefault, delete and |.
  • fd | {} and frozendict() | fd now return fd immediately.

Fixes

  • set, setdefault, delete and | could return a frozendict not tracked by the GC, so its reference cycles were never collected.
  • Pure py: deepcopy() of a recursive frozendict no longer raises RecursionError.
  • Pure py: dict | frozendict now also works on Python 3.8 and earlier.
  • fromkeys() with an empty iterable now returns the empty singleton.
  • Fixed crashes, reference leaks and missing error checks in the C Extension. Also fixed from frozendict import *, the signature of set in the stub, and the silent fallback to pure py when the C Extension fails to load, which now emits a warning. Thanks to @​devdanzin for the audit.
  • Typing: fixed items, keys, values, __ror__ and setdefault(key).

by @​Marco-Sulla in Marco-Sulla/python-frozendict#120

Other Fixes

New Contributors

Full Changelog: Marco-Sulla/python-frozendict@v2.4.7...v2.5.0

Commits
  • cab441e Merge pull request #122 from Marco-Sulla/hotfix
  • 0c07146 bump version
  • 92772ca regression: dict_traverse now visit keys unless they are all str.
  • 9ab7fae Regression: dk_lookup not always switched to the generic lookdict
  • c0d5ffb chore: .gitignore
  • 5833e18 fixed README.md
  • e2de4ef added the other python versions to metadata
  • 6c80d7d fixed license metadata
  • d846835 pure py pipeline now produces two files
  • 9119905 install pure py from wheel and not sdist
  • Additional commits viewable in compare view

Updates pytest from 9.1.1 to 9.2.0

Release notes

Sourced from pytest's releases.

9.2.0

pytest 9.2.0 (2026-10-27)

Removals and backward incompatible breaking changes

  • #14716: -c now raises a usage error for a path that does not exist, is a directory, or is in a format pytest has no loader for. Such paths were previously either ignored or reported as an unhandled FileNotFoundError.

  • #8593: The indirect, ids and scope arguments of Metafunc.parametrize() <pytest.Metafunc.parametrize> -- and therefore of @pytest.mark.parametrize <pytest.mark.parametrize ref> -- are now keyword-only.

    Passing them positionally was a common source of confusing errors, e.g. parametrize("arg1", "arg2", [(1, 2)]) made the argvalues land in indirect and failed with indirect fixture '(1, 2)' doesn't exist; such mistakes now fail with an understandable TypeError. The type annotations have always declared these arguments as keyword-only.

  • #993: Plugin import failures at startup are now reported and classified instead of escaping as a raw traceback with the accidental exit code 1:

    • a plugin that cannot be found -- via -p, pytest_plugins or PYTEST_PLUGINS -- exits with pytest.ExitCode USAGE_ERROR (4), like a conftest.py that fails to import;
    • a plugin that is found but raises while importing -- including a broken pytest11 entry point or a missing plugin dependency -- exits with pytest.ExitCode INTERNAL_ERROR (3), with the traceback preserved.

    pytest.main now returns these codes instead of raising ImportError. Also fixed an IndexError from pytest's own internals when the plugin raised an exception with no arguments.

Deprecations (removal in next major release)

  • #14742: The private _pytest.python.CallSpec2 name has been renamed to CallSpec. The old CallSpec2 alias remains available for now and will be removed in pytest 10 or 11.

  • #14755: Schedule yield_fixture decorator for removal in pytest 10 or 11.

  • #14774: Similarly to the deprecation of class-scoped fixtures defined as instance methods in pytest 9.1, all higher-scoped fixtures (module, package, and session) defined as instance methods are now deprecated.

    They suffer from the same issue the original deprecation only fixed for class-scoped fixtures, see 10819 and 14011.

  • #14808: Passing a non-string value to a string-typed ini option now emits a pytest.PytestRemovedIn10Warning. This affects [tool.pytest.ini_options] in pyproject.toml. In pytest 10 this will raise a TypeError, matching the behavior of the corresponding TOML config path.

  • #7323: Passing bytes to TerminalReporter.write_line() is now deprecated, pass a str instead.

New features

  • #14743: Full diff: now contains a legend explaining the + & - symbols in diff output.
  • #2781: When strict_markers is enabled, marker names used in -m expressions are now validated against registered markers.
  • #6881: Added the parametrize_long_str_id_strategy configuration option to control how long str/bytes parameter values are handled in auto-generated test IDs. Explicit IDs set via ids=[...] or pytest.param(..., id=...) are not affected. Available strategies: short (default, values over 100 chars fall back to argname+index), sha256 (SHA-256 hex digest), legacy (keep full value), and disallow (error requesting explicit IDs).

Improvements in existing functionality

  • #10745: A RecursionError whose recursion origin cannot be located now shows only the first and last 10 stack frames, matching what pytest already did when locating the origin failed outright. Previously the full traceback -- often around a thousand near-identical frames -- was rendered, which was both slow and unreadable. Pass --full-trace to see every frame.

... (truncated)

Commits
  • ae1d0ff Prepare release version 9.2.0
  • 143ce31 pre-commit: exclude codespell on generated release announcements
  • 532dc5f tox: add attrs dependency to regen, needed in reportingdemo.rst
  • a7b2446 Merge pull request #15245 from pytest-dev/claude/project-thread-9jcf91
  • 679d09c [pre-commit.ci] pre-commit autoupdate (#15266)
  • 41d12cd docs: clarify typing for yield fixtures
  • b9022ba Merge pull request #15182 from 1871698/docs/improve-getting-started-description
  • 16f87a7 docs: improve getting-started.rst test execution description
  • 082ed70 Merge pull request #15255 from pytest-dev/claude/project-thread-eoi3d6
  • ae37a01 Merge pull request #15227 from pytest-dev/claude/project-thread-4etye4
  • Additional commits viewable in compare view

Updates mypy from 2.4.0 to 2.4.1

Changelog

Sourced from mypy's changelog.

Mypy 2.4.1

  • Process overloads as a whole in two-phase type checking (Ivan Levkivskyi, PR 22231)
  • Skip recursive setup for frame-private nested functions in mypyc (Piotr Sawicki, PR 22187)

Acknowledgements

Thanks to all mypy contributors who contributed to this release:

  • A5rocks
  • Adam Dangoor
  • Alex Waygood
  • Ali Hamdan
  • Brian Helba
  • Chad Dombrova
  • David Foster
  • dnwpark
  • Edgar Ramírez Mondragón
  • Giorgos Michas
  • Ivan Levkivskyi
  • Jelle Zijlstra
  • Jukka Lehtosalo
  • Marc Mueller
  • Michael R. Crusoe
  • NIYONSHUTI Emmanuel
  • Piotr Sawicki
  • Shantanu
  • themylogin
  • Vaggelis Danias
  • Willy Bruns

I'd also like to thank my employer, Dropbox, for supporting mypy development.

Mypy 2.3

We've just uploaded mypy 2.3.0 to the Python Package Index (PyPI). Mypy is a static type checker for Python. This release includes new features, performance improvements and bug fixes. You can install it as follows:

python3 -m pip install -U mypy

You can read the full documentation for this release on Read the Docs.

The Upcoming Switch to the New Native Parser

We are planning to enable the new native parser (--native-parser) by default soon. We recommend that you test the native parser in your projects and report any issues in the mypy issue tracker.

Mypyc Free-threading Memory Safety

... (truncated)

Commits

Updates pytest-asyncio from 1.4.0 to 1.4.1.post1

Release notes

Sourced from pytest-asyncio's releases.

pytest-asyncio v1.4.1.post1

1.4.1.post1 - 2026-11-01

Changed

  • Removed the upper version bound on the pytest dependency. (#1605)

pytest-asyncio v1.4.1

1.4.1 - 2026-10-25

Added

  • Declared support for Python 3.15 (#1588)

Fixed

  • Allow AsyncIterable as a return type for asynchronous generator fixtures decorated with pytest_asyncio.fixture (#1090)

Notes for Downstream Packagers

  • Source-tree development dependencies now use PEP 735 dependency groups and uv.lock. (#1518)
Commits
  • e420349 Bump mypy pre-commit hook to v2.4.0 (#1601)
  • 16a1ba4 chore: Prepare release of v1.4.1.post1.
  • 7087e7f build: drop pytest upper bound (#1605) (#1606)
  • 6af7f5c chore: Prepare release of v1.4.1.
  • 32ccf64 Support 3.15 (#1588)
  • 9830071 Build(deps): Bump certifi from 2026.6.17 to 2026.10.19 (#1590)
  • 0238023 Build(deps): Bump virtualenv from 21.7.13 to 21.14.13 (#1589)
  • 93893ec Build(deps): Bump astral-sh/setup-uv from 10.2.0 to 10.3.0 (#1583)
  • f287e5e Build(deps): Bump actions/download-artifact from 8.0.1 to 8.0.2 (#1581)
  • b71da4f Build(deps-dev): Bump hypothesis from 6.168.3 to 6.168.5 (#1582)
  • Additional commits viewable in compare view

Updates ruff from 0.17.1 to 0.17.3

Release notes

Sourced from ruff's releases.

0.17.3

Release Notes

Released on 2026-10-26.

Preview features

  • [suspicious] Add shared-clock-mock (#29074)

Bug fixes

  • [pyupgrade] Avoid incorrect conversions to f-strings (UP032) (#25485)

Performance

  • Buffer stdout in ruff format (#29631)
  • Specialize ASCII identifier lexing (#29503)
  • Speed up identifier and keyword lexing (#29463)

Documentation

  • [flake8-bandit] Describe what the rule actually checks for httpx (S113) (#27936)

Contributors

Install ruff 0.17.3

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.17.3/ruff-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ruff/releases/download/0.17.3/ruff-installer.ps1 | iex"

Download ruff 0.17.3

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum

... (truncated)

Changelog

Sourced from ruff's changelog.

0.17.3

Released on 2026-10-26.

Preview features

  • [suspicious] Add shared-clock-mock (#29074)

Bug fixes

  • [pyupgrade] Avoid incorrect conversions to f-strings (UP032) (#25485)

Performance

  • Buffer stdout in ruff format (#29631)
  • Specialize ASCII identifier lexing (#29503)
  • Speed up identifier and keyword lexing (#29463)

Documentation

  • [flake8-bandit] Describe what the rule actually checks for httpx (S113) (#27936)

Contributors

0.17.2

Released on 2026-10-22.

Preview features

  • [complexity] Add unnecessary-regular-expression-compile (#25533)

Bug fixes

  • Avoid syntax errors for type variables with starred constraints (UP040, UP046, UP047, RUF053) (#28362)
  • [pydocstyle] Treat backslash-escaped *args and **kwargs as documented (D417) (#29536)
  • [pylint] Avoid false positive on starred elements (PLE0643) (#29483)
  • [pylint] Mark fixes unsafe when deleting comments (PLR5501, PLW0120) (#29414)
  • [pyupgrade] Mark fix unsafe when deleting comments (UP035) (#29413)

Performance

  • Avoid intermediate names in lint name resolution (#29506)
  • Prefilter bidirectional Unicode checks by UTF-8 leading bytes (#29561)
  • Share postfix parsing and reduce expression copies (#29480)

... (truncated)

Commits

Updates uv from 0.13.5 to 0.13.6

Release notes

Sourced from uv's releases.

0.13.6

Release Notes

Released on 2026-10-26.

Enhancements

  • Accept an empty UV_RUN_RECURSION_DEPTH as zero and report invalid values consistently (#22814)
  • Explain how to add project metadata when uv init finds a pyproject.toml without a [project] table (#22916)

Python

  • Add CPython 3.11.18, 3.12.16, 3.13.18, 3.14.10, and 3.15.2 (#22938)

Preview features

  • Detect NVIDIA GPU capabilities when selecting compatible wheel variants with wheel-variants (#22690)
  • Nest each module's owners in an object in uv workspace metadata output (#22638)
  • Report the unsupported properties required by an incompatible wheel variant (#22719)

Performance

  • Reduce peak memory use when resolving large workspaces (#22860, #22863, #22864, #22866, #22870)
  • Reduce peak memory use when locking or upgrading large projects (#22833, #22834)
  • Speed up redirected output from uv export and uv pip compile (#22840)
  • Reuse cached or active environments when running PEP 723 scripts without dependencies (#21458)
  • Reduce parsing overhead for build dependency and build backend settings (#22848, #22871, #22879, #22884)
  • Reduce parsing overhead for project sources and workspace references (#22880, #22883)
  • Reduce parsing overhead for cache, exclusion, cutoff, and preview settings (#22876, #22877, #22878, #22887)
  • Reduce PyPI metadata parsing overhead (#22874, #22875)
  • Speed up parsing tool receipt requirements (#22885)

Bug fixes

  • Prevent uv run --active --script and uv sync --active --script from deleting non-virtual-environment directories (#21464)
  • Use AMD64 for platform_machine when resolving for x86-64 Windows (#22935)
  • Preserve free-threaded and other non-default variants in uv python upgrade (#22836)
  • Allow uv init --no-package and uv init --script when UV_INIT_BUILD_BACKEND is set (#22907)
  • Prevent panics when rendering containment markers with local versions (#22815)

Documentation

  • Update the Docker guide and reproduction examples to use uv 0.13.5 (#22867)

Install uv 0.13.6

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.13.6/uv-installer.sh | sh
</tr></table> 

... (truncated)

Changelog

Sourced from uv's changelog.

0.13.6

Released on 2026-10-26.

Enhancements

  • Accept an empty UV_RUN_RECURSION_DEPTH as zero and report invalid values consistently (#22814)
  • Explain how to add project metadata when uv init finds a pyproject.toml without a [project] table (#22916)

Python

  • Add CPython 3.11.18, 3.12.16, 3.13.18, 3.14.10, and 3.15.2 (#22938)

Preview features

  • Detect NVIDIA GPU capabilities when selecting compatible wheel variants with wheel-variants (#22690)
  • Nest each module's owners in an object in uv workspace metadata output (#22638)
  • Report the unsupported properties required by an incompatible wheel variant (#22719)

Performance

  • Reduce peak memory use when resolving large workspaces (#22860, #22863, #22864, #22866, #22870)
  • Reduce peak memory use when locking or upgrading large projects (#22833, #22834)
  • Speed up redirected output from uv export and uv pip compile (#22840)
  • Reuse cached or active environments when running PEP 723 scripts without dependencies (#21458)
  • Reduce parsing overhead for build dependency and build backend settings (#22848, #22871, #22879, #22884)
  • Reduce parsing overhead for project sources and workspace references (#22880, #22883)
  • Reduce parsing overhead for cache, exclusion, cutoff, and preview settings (#22876, #22877, #22878, #22887)
  • Reduce PyPI metadata parsing overhead (#22874, #22875)
  • Speed up parsing tool receipt requirements (#22885)

Bug fixes

  • Prevent uv run --active --script and uv sync --active --script from deleting non-virtual-environment directories (#21464)
  • Use AMD64 for platform_machine when resolving for x86-64 Windows (#22935)
  • Preserve free-threaded and other non-default variants in uv python upgrade (#22836)
  • Allow uv init --no-package and uv init --script when UV_INIT_BUILD_BACKEND is set (#22907)
  • Prevent panics when rendering containment markers with local versions (#22815)

Documentation

  • Update the Docker guide and reproduction examples to use uv 0.13.5 (#22867)
Commits
  • 329bf94 Bump version to 0.13.6 (#22947)
  • 5b5a53e Use checked-in Python download metadata for release preparation (#22945)
  • b8b339f Update Rust crate h2 to v0.4.19 (#21873)
  • 1eb5989 Update Rust crate hyper to v1.11.1 (#20903)
  • 68677f5 Update Rust crate reqwest to v0.13.5 (#22475)
  • 69e574e Cargo vet integration (#21610)
  • acee8d9 Sync latest Python releases, Python 3.11.18, 3.12.16, 3.13.18, 3.14.10, 3.15....
  • 4b46af0 Fix io-bound Windows CI nextest grouping (#22939)
  • d397ecb Add hints when uv init finds pyproject.toml without a project table (#22916)
  • 7b5d227 Let --no-package and --script take precedence over `UV_INIT_BUILD_BACKEND...
  • Additional commits viewable in compare view

Updates aiospinel from 1.2.0 to 1.3.0

Release notes

Sourced from aiospinel's releases.

v1.3.0

What's Changed

New Contributors

Full Changelog: home-assistant-libs/aiospinel@v1.2.0...v1.3.0

Commits

Updates filelock from 4.2.4 to 4.2.6

Release notes

Sourced from filelock's releases.

4.2.6

Bug fixes

  • Fix a race in SoftFileLock, MarkerSoftFileLock and SoftFileLease when three or more contenders reclaim a dead marker. The race could strand a live holder's marker under a break name, leaving the lock unusable or admitting a second holder. Contenders now recheck the marker before exchanging names and unwind nested exchanges in order. If the filesystem refuses a return exchange, the contender leaves its marker at the lock path for later recovery (#899) by @​dxbjavid and @​gaborbernat.

PyPI release

Full Changelog

4.2.5

Bug fixes

  • acquire and acquire raise TypeError for a blocking that is not a bool, as the constructor and the blocking setter already do. A truthy value such as the string "false" used to count as True, so a call meant as a single attempt waited for the instance's timeout, and without a limit at the default -1 (#870) by @​simpleqt and @​gaborbernat.
  • A SoftFileLock acquisition whose first read of its new marker's identity failed reads it again before rolling back. On Windows the rollback could otherwise not recognize the marker it had created, and the empty marker it left blocked the path for every later acquisition, since no contender breaks an empty marker (#869) by @​simpleqt and @​gaborbernat.
  • A fork() child of a process holding a SoftFileLease starts from an unheld claim. It used to inherit the parent's token, last compromise and heartbeat, so token and compromise reported a claim the child never held while is_locked reported it unheld (#868) by @​dxbjavid and @​gaborbernat.
  • A nested acquire of a held FileLock or SoftFileLock no longer creates the lock file's parent directory. After a rename of that directory during the hold, the nested acquire recreated the old name, and when a file had taken the name it raised FileExistsError and left the hold's recursion count incremented (#878) by @​0x5t4l1n and @​gaborbernat.
  • Fix ReadWriteLock failing every acquire with "link directory ... was replaced while opening" in a group-writable directory whose inherited ACL, such as an NFSv4 one on ZFS, opens the link directory to the group. The lock now closes the empty link directory to its owner, and where the filesystem refuses that, such as ZFS with aclmode=restricted, it names the directory to make writable by its owner only (#898) by @​gaborbernat.
  • Fix SoftFileLock, MarkerSoftFileLock and SoftFileLease raising OverflowError out of acquire(), or never reclaiming a dead holder's lock, when a stranded restore claim beside the lock names a process number outside 1..2**31-1 or spells it in non-ASCII digits. Such a claim is now ignored, as no filelock writes one (#871) by @​dxbjavid and @​gaborbernat.
  • Fix soft locks on Windows keeping the marker of a holder that has exited while another process still holds a handle to it, such as a parent's subprocess.Popen after wait() or multiprocessing.Process after join(). Acquiring such a lock with the default timeout=-1 waited forever (#874) by @​nk-batman21.
  • Fix the read-only reopen of a lock file this account cannot write resolving a relative path against the working directory of the moment. A chdir between the refused O_RDWR open and the reopen made the acquisition wait on a file that is not there, or probe one in another directory. The reopen now uses the path the acquisition pinned (#889) by @​dxbjavid and @​gaborbernat.
  • Handle EMLINK, the error FreeBSD reports when a no-follow open refuses a symlink, in a soft reader/writer lock's protocol tree, so heartbeat reports lost ownership there rather than a transient refresh error (#866) by @​pacocartones and @​gaborbernat.
  • Resolving ReadWriteLock or AsyncReadWriteLock raises the ImportError when a module other than Python's sqlite3 is missing, as in a frozen application that left out a filelock submodule. The names are None only without SQLite (#880) by @​pintu544 and @​gaborbernat.

Documentation

Packaging

  • Releases now run on the shared tox-dev/github-workflows pipeline, with a locked release toolchain and generated GitHub Release notes (#885) by @​gaborbernat.

New Contributors

... (truncated)

Changelog

Sourced from filelock's changelog.

########### Changelog ###########

.. towncrier-draft-entries:: Unreleased

.. towncrier release notes start

.. _release-4-2-9:


4.2.9 (2026-11-04)


.. _release-4-2-9-fixed:

Fixed

  • :class:~filelock.ReadWriteLock, :class:~filelock.SoftReadWriteLock and their async wrappers now raise :class:TypeError for a blocking that is not a :class:bool, in the constructor and on acquire, as :class:~filelock.FileLock already does. Before, blocking=0 waited out the full timeout on a contended :class:~filelock.ReadWriteLock while blocking=False failed at once, and a truthy value such as "false" turned a single attempt into a blocking wait (:pr:908) by :user:abhishekcpp007 and :user:gaborbernat.

.. _release-4-2-8:


4.2.8 (2026-11-04)


.. _release-4-2-8-documentation:

Documentation

  • Clarify the platform-specific locking primitive and range used by descriptor locks, and correct the guidance on interoperating with byte-range lock protocols such as conda's repodata lock (:pr:905) by :user:boyfeiyu.

.. _release-4-2-7:


4.2.7 (2026-11-02)


.. _release-4-2-7-fixed:

Fixed

... (truncated)

Commits
  • f71acb1 release 4.2.6
  • 77eb01a 🐛 fix(soft): restore raced stale markers (#899)
  • b0cc007 release 4.2.5
  • 21bc250 🐛 fix(rw): close a link directory an ACL opened (#898)
  • 715a8de 📝 docs(security): add a threat model and align the policy (#896)
  • b0f1b73 🧪 test: tolerate a preloaded sqlite3 (#894)
  • a2e26ac 🧪 test: count descriptors behind an incomplete /dev/fd (#877)
  • 160141c 🐛 fix(import): raise for a missing read-write module (#880)
  • cb18d9e 🐛 fix(win32): reclaim a soft lock from an exited holder (#874)
  • adbcde9 🐛 fix(lease): reset the claim in a fork child (#868)
  • Additional commits viewable in compare view

Updates multidict from 7.1.0 to 7.2.1

Release notes

Sourced from multidict's releases.

7.2.1

Bug fixes

  • Fixed a regression in 7.2.0 where a subclass of MultiDictProxy or CIMultiDictProxy that converted its argument in its own __init__() raised TypeError before that __init__() ran; such a subclass got an empty multidict until its __init__() set the proxied one -- by @​asvetlov.

    Related issues and pull requests on GitHub: #1824, #1825.


7.2.0 drops Python 3.10, fixes a crash in a proxy built without __init__() and a MemoryError from a huge __length_hint__(), and is otherwise a performance release for the C extension: lookups, adds, updates and deletes each needed a few percent fewer instructions.

Bug fixes

  • Stopped a huge __length_hint__() from raising MemoryError in extend(), update() and merge(); the C extension capped the room it reserved for the hint at the largest table the constructor allocates up front -- by @​asvetlov.

    Related issues and pull requests on GitHub: #1767.

  • Fixed a segmentation fault when using a MultiDictProxy or CIMultiDictProxy built by __new__() without __init__(); __new__() started requiring the proxied multidict, the same argument as the constructor -- by @​asvetlov.

    Related issues and pull requests on GitHub: #1782.

Features

  • Sped up reading a multidict in the C extension. md[key], get() and getone() became up to 7% faster by returning the lookup's result by value instead

... (truncated)

Changelog

Sourced from multidict's changelog.

7.2.1

(2026-10-24)

Bug fixes

  • Fixed a regression in 7.2.0 where a subclass of :class:~multidict.MultiDictProxy or :class:~multidict.CIMultiDictProxy that converted its argument in its own __in...

    Description has been truncated

Bumps the python-dependencies group with 15 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [frozendict](https://github.com/Marco-Sulla/python-frozendict) | `2.4.7` | `2.5.1` |
| [pytest](https://github.com/pytest-dev/pytest) | `9.1.1` | `9.2.0` |
| [mypy](https://github.com/python/mypy) | `2.4.0` | `2.4.1` |
| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.4.0` | `1.4.1.post1` |
| [ruff](https://github.com/astral-sh/ruff) | `0.17.1` | `0.17.3` |
| [uv](https://github.com/astral-sh/uv) | `0.13.5` | `0.13.6` |
| [aiospinel](https://github.com/home-assistant-libs/aiospinel) | `1.2.0` | `1.3.0` |
| [filelock](https://github.com/tox-dev/filelock) | `4.2.4` | `4.2.6` |
| [multidict](https://github.com/aio-libs/multidict) | `7.1.0` | `7.2.1` |
| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.11.0` | `1.12.0` |
| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.13.5` | `4.14.3` |
| [python-dateutil](https://github.com/dateutil/dateutil) | `3.0.0` | `4.0.0` |
| [python-discovery](https://github.com/tox-dev/python-discovery) | `1.6.4` | `1.9.0` |
| [tzdata](https://github.com/python/tzdata) | `2026.5` | `2026.6` |
| [virtualenv](https://github.com/pypa/virtualenv) | `21.14.12` | `21.15.2` |



Updates `frozendict` from 2.4.7 to 2.5.1
- [Release notes](https://github.com/Marco-Sulla/python-frozendict/releases)
- [Commits](Marco-Sulla/python-frozendict@v2.4.7...v2.5.1)

Updates `pytest` from 9.1.1 to 9.2.0
- [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.1.1...9.2.0)

Updates `mypy` from 2.4.0 to 2.4.1
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](python/mypy@v2.4.0...v2.4.1)

Updates `pytest-asyncio` from 1.4.0 to 1.4.1.post1
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](pytest-dev/pytest-asyncio@v1.4.0...v1.4.1.post1)

Updates `ruff` from 0.17.1 to 0.17.3
- [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.17.1...0.17.3)

Updates `uv` from 0.13.5 to 0.13.6
- [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.13.5...0.13.6)

Updates `aiospinel` from 1.2.0 to 1.3.0
- [Release notes](https://github.com/home-assistant-libs/aiospinel/releases)
- [Commits](home-assistant-libs/aiospinel@v1.2.0...v1.3.0)

Updates `filelock` from 4.2.4 to 4.2.6
- [Release notes](https://github.com/tox-dev/filelock/releases)
- [Changelog](https://github.com/tox-dev/filelock/blob/main/docs/changelog.rst)
- [Commits](tox-dev/filelock@4.2.4...4.2.6)

Updates `multidict` from 7.1.0 to 7.2.1
- [Release notes](https://github.com/aio-libs/multidict/releases)
- [Changelog](https://github.com/aio-libs/multidict/blob/master/CHANGES.rst)
- [Commits](aio-libs/multidict@v7.1.0...v7.2.1)

Updates `nodeenv` from 1.11.0 to 1.12.0
- [Release notes](https://github.com/ekalinin/nodeenv/releases)
- [Changelog](https://github.com/ekalinin/nodeenv/blob/master/CHANGES)
- [Commits](ekalinin/nodeenv@1.11.0...1.12.0)

Updates `platformdirs` from 4.13.5 to 4.14.3
- [Release notes](https://github.com/tox-dev/platformdirs/releases)
- [Changelog](https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst)
- [Commits](tox-dev/platformdirs@4.13.5...4.14.3)

Updates `python-dateutil` from 3.0.0 to 4.0.0
- [Release notes](https://github.com/dateutil/dateutil/releases)
- [Changelog](https://github.com/dateutil/dateutil/blob/master/NEWS)
- [Commits](dateutil/dateutil@3.0.0...4.0.0)

Updates `python-discovery` from 1.6.4 to 1.9.0
- [Release notes](https://github.com/tox-dev/python-discovery/releases)
- [Changelog](https://github.com/tox-dev/python-discovery/blob/main/docs/changelog.rst)
- [Commits](tox-dev/python-discovery@1.6.4...1.9.0)

Updates `tzdata` from 2026.5 to 2026.6
- [Release notes](https://github.com/python/tzdata/releases)
- [Changelog](https://github.com/python/tzdata/blob/master/NEWS.md)
- [Commits](python/tzdata@2026.5...2026.6)

Updates `virtualenv` from 21.14.12 to 21.15.2
- [Release notes](https://github.com/pypa/virtualenv/releases)
- [Changelog](https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst)
- [Commits](pypa/virtualenv@21.14.12...21.15.2)

---
updated-dependencies:
- dependency-name: frozendict
  dependency-version: 2.5.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-dependencies
- dependency-name: pytest
  dependency-version: 9.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-dependencies
- dependency-name: mypy
  dependency-version: 2.4.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: python-dependencies
- dependency-name: pytest-asyncio
  dependency-version: 1.4.1.post1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: python-dependencies
- dependency-name: ruff
  dependency-version: 0.17.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: python-dependencies
- dependency-name: uv
  dependency-version: 0.13.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: python-dependencies
- dependency-name: aiospinel
  dependency-version: 1.3.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: python-dependencies
- dependency-name: filelock
  dependency-version: 4.2.6
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: python-dependencies
- dependency-name: multidict
  dependency-version: 7.2.1
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: python-dependencies
- dependency-name: nodeenv
  dependency-version: 1.12.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: python-dependencies
- dependency-name: platformdirs
  dependency-version: 4.14.3
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: python-dependencies
- dependency-name: python-dateutil
  dependency-version: 4.0.0
  dependency-type: indirect
  update-type: version-update:semver-major
  dependency-group: python-dependencies
- dependency-name: python-discovery
  dependency-version: 1.9.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: python-dependencies
- dependency-name: tzdata
  dependency-version: '2026.6'
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: python-dependencies
- dependency-name: virtualenv
  dependency-version: 21.15.2
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: python-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Nov 5, 2026
@puddly
puddly enabled auto-merge (squash) November 5, 2026 14:49
@puddly
puddly merged commit cf3129e into dev Nov 5, 2026
8 checks passed
@codecov

codecov Bot commented Nov 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.48%. Comparing base (49e407e) to head (e9ed460).
⚠️ Report is 2 commits behind head on dev.

Additional details and impacted files
@@           Coverage Diff           @@
##              dev    #1003   +/-   ##
=======================================
  Coverage   97.48%   97.48%           
=======================================
  Files          61       61           
  Lines       10870    10870           
=======================================
  Hits        10597    10597           
  Misses        273      273           

☔ 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.

@dependabot
dependabot Bot deleted the dependabot/uv/python-dependencies-62e91b16af branch November 5, 2026 14:50
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.

1 participant