Skip to content

chore(deps): bump the pip-deps group across 1 directory with 10 updates - #103

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/docs/source-materials/theory/pip-deps-52b00d758a
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/docs/source-materials/theory/pip-deps-52b00d758a

Conversation

@dependabot

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

Copy link
Copy Markdown
Contributor

Updates the requirements on sqlalchemy, watchdog, sentence-transformers, python-dateutil, pytest, pytest-mock, pytest-benchmark, faker, coverage and pytest-randomly to permit the latest version.
Updates sqlalchemy to 2.1.8

Release notes

Sourced from sqlalchemy's releases.

2.1.8

Released: November 3, 2026

general

  • [general] [change] All files published to PyPI for a release, including the source distribution as well as all wheels, are now uploaded using PyPI's trusted publishing mechanism from SQLAlchemy's GitHub Actions workflow, and include a PEP 740 attestation, so that every file in a release carries provenance information. Previously, the source distribution and some wheels were uploaded without an attestation, which caused PyPI to display provenance warnings for recent releases.

    This change is also backported to: 2.0.57

    References: #13759

Commits

Updates watchdog to 7.1.0

Release notes

Sourced from watchdog's releases.

7.1.0

  • [fsevents] Fix building the extension on PyPy 3.12 by updating the bundled pythoncapi_compat.h. (#1397)
  • [inotify] Create the inotify instance lazily so observer and polling imports succeed when the inotify instance limit is reached. (#1389)
  • [inotify] Reconcile recursively watched directories renamed before their source watch was registered, and simulate existing descendants so their initial changes are reported. (#1383)
  • [inotify] Reconcile recursive watches after the kernel reports an inotify queue overflow so subsequent filesystem changes are observed. (#654)
  • [inotify] Watch directories moved into a recursively watched directory from outside of it, so that changes inside them are reported. (#1094)
  • [inotify] Fix the inotify thread dying with a KeyError when a directory tree is copied or extracted into a recursively watched directory, which stopped all inotify observers in the process. (#1388)
  • [observers] Align BaseObserver with BaseThread by using on_thread_start() instead of overriding start(). (#286)
  • [watchmedo] Fix watchmedo generate-tricks-yaml output so that watchmedo tricks can load it: trick options are now nested under the trick name instead of under unsupported args/kwargs keys. (#1403)

💟 Thanks to our beloved contributors: @​BoboTiG, @​prateek-dagar, @​monosans, @​taltal-beep, @​Aschenbath, @​yangfan-yf-yf, @​alexruperez, @​PDGGK, @​Skeletor-Pirate

Changelog

Sourced from watchdog's changelog.

7.1.0


2026-11-04 • `full history <https://github.com/gorakhargosh/watchdog/compare/v7.0.0...v7.1.0>`__

Other Changes

  • [fsevents] Fix building the extension on PyPy 3.12 by updating the bundled pythoncapi_compat.h. ([#1397](https://github.com/gorakhargosh/watchdog/issues/1397) &lt;https://github.com/gorakhargosh/watchdog/issues/1397&gt;__)

  • [inotify] Create the inotify instance lazily so observer and polling imports succeed when the inotify instance limit is reached. ([#1389](https://github.com/gorakhargosh/watchdog/issues/1389) &lt;https://github.com/gorakhargosh/watchdog/issues/1389&gt;__)

  • [inotify] Reconcile recursively watched directories renamed before their source watch was registered, and simulate existing descendants so their initial changes are reported. ([#1383](https://github.com/gorakhargosh/watchdog/issues/1383) &lt;https://github.com/gorakhargosh/watchdog/pull/1383&gt;__)

  • [inotify] Reconcile recursive watches after the kernel reports an inotify queue overflow so subsequent filesystem changes are observed. ([#654](https://github.com/gorakhargosh/watchdog/issues/654) &lt;https://github.com/gorakhargosh/watchdog/pull/654&gt;__)

  • [inotify] Watch directories moved into a recursively watched directory from outside of it, so that changes inside them are reported. ([#1094](https://github.com/gorakhargosh/watchdog/issues/1094) &lt;https://github.com/gorakhargosh/watchdog/issues/1094&gt;__)

  • [inotify] Fix the inotify thread dying with a KeyError when a directory tree is copied or extracted into a recursively watched directory, which stopped all inotify observers in the process. ([#1388](https://github.com/gorakhargosh/watchdog/issues/1388) &lt;https://github.com/gorakhargosh/watchdog/pull/1388&gt;__)

  • [observers] Align BaseObserver with BaseThread by using on_thread_start() instead of overriding start(). ([#286](https://github.com/gorakhargosh/watchdog/issues/286) &lt;https://github.com/gorakhargosh/watchdog/issues/286&gt;__)

  • [watchmedo] Fix watchmedo generate-tricks-yaml output so that watchmedo tricks can load it: trick options are now nested under the trick name instead of under unsupported args/kwargs keys. ([#1403](https://github.com/gorakhargosh/watchdog/issues/1403) &lt;https://github.com/gorakhargosh/watchdog/pull/1403&gt;__)

  • Thanks to our beloved contributors: @​BoboTiG, @​prateek-dagar, @​monosans, @​taltal-beep, @​Aschenbath, @​yangfan-yf-yf, @​alexruperez, @​PDGGK, @​Skeletor-Pirate

7.0.0

2026-10-31 • full history <https://github.com/gorakhargosh/watchdog/compare/v6.0.0...v7.0.0>__

Breaking Changes

  • Drop support for Python 3.9 and 3.10.
  • [core] Changed pattern matching mechanism from using path.match() to path.full_match(). Users must update patterns to glob-like syntax: e.g., *.py to **/*.py. ([#1101](https://github.com/gorakhargosh/watchdog/issues/1101) <https://github.com/gorakhargosh/watchdog/pull/1101>__)
  • [core] Added FileAttribEvent and DirAttribEvent for file and directory metadata modifications (such as permissions or timestamps), separate from content modifications. These events no longer trigger on_modified(); implement on_attrib() to handle them. On Windows 10 (1709+) and Windows Server 2016+, ReadDirectoryChangesExW is used to differentiate attribute modifications, with fallback to ReadDirectoryChangesW on older versions or unsupported file shares. ([#260](https://github.com/gorakhargosh/watchdog/issues/260) <https://github.com/gorakhargosh/watchdog/issues/260>__)
  • [watchmedo] Changed the default --patterns value from "*" to "**", so the default matches absolute paths at any depth under the full_match() semantics introduced by #1101, and updated the CLI help text and docs to the **/ glob syntax. ([#1212](https://github.com/gorakhargosh/watchdog/issues/1212) <https://github.com/gorakhargosh/watchdog/issues/1212>__)

Other Changes

  • Add support for Python 3.15 ([#1226](https://github.com/gorakhargosh/watchdog/issues/1226) <https://github.com/gorakhargosh/watchdog/issues/1226>__)
  • [core] Add context manager support to Observer class. The observer can now be used with a with statement for automatic start/stop management. ([#1090](https://github.com/gorakhargosh/watchdog/issues/1090) <https://github.com/gorakhargosh/watchdog/pull/1149>__)
  • [core] Add support for the follow_symlink keyword argument to ObservedWatch. ([#1086](https://github.com/gorakhargosh/watchdog/issues/1086) <https://github.com/gorakhargosh/watchdog/pull/1086>__)
  • [core] Added the ignore_policy argument to PatternMatchingEventHandler and RegexMatchingEventHandler to configure multi-path event filtering (moves/renames). PatternMatchingEventHandler is now strict by default, aligning with RegexMatchingEventHandler. ([#412](https://github.com/gorakhargosh/watchdog/issues/412) <https://github.com/gorakhargosh/watchdog/issues/412>, [#423](https://github.com/gorakhargosh/watchdog/issues/423) <https://github.com/gorakhargosh/watchdog/issues/423>)
  • [core] Added the watchdog.utils.Seconds type alias and used it for the time-duration parameters (timeout, polling_interval, kill_after, ...) instead of documenting the unit in each docstring. Duration parameters previously hinted as int now accept float.
  • [core] Adjust Observer.schedule() path type annotation to reflect the pathlib.Path support. ([#1096](https://github.com/gorakhargosh/watchdog/issues/1096) <https://github.com/gorakhargosh/watchdog/pull/1096>__)
  • [core] Allow scheduling watches on individual files in Observer.schedule(). ([#1034](https://github.com/gorakhargosh/watchdog/issues/1034) <https://github.com/gorakhargosh/watchdog/issues/1034>__)
  • [core] Call task_done() for the stop sentinel in dispatch_events() to prevent join() from hanging. ([#1159](https://github.com/gorakhargosh/watchdog/issues/1159) <https://github.com/gorakhargosh/watchdog/pull/1159>__)
  • [core] case_sensitive=False matching now really ignores case on Python < 3.13. The PurePath.full_match() fallback compiled its regex without re.IGNORECASE, so only the patterns were lower-cased and a path such as FOO.PY never matched **/*.py. ([#1263](https://github.com/gorakhargosh/watchdog/issues/1263) <https://github.com/gorakhargosh/watchdog/pull/1263>__)
  • [core] dispatch_events() no longer re-adds a watch that unschedule() removed, which leaked one _handlers entry per watch that had an event in flight. ([#1261](https://github.com/gorakhargosh/watchdog/issues/1261) <https://github.com/gorakhargosh/watchdog/pull/1261>__)
  • [core] Do not retain an event handler when Observer.schedule() fails to create or start its emitter.
  • [core] EventEmitter and EventDispatcher reject a bool timeout. bool subclasses int, so timeout=True was stored and treated as 1.0 seconds. ([#1287](https://github.com/gorakhargosh/watchdog/issues/1287) <https://github.com/gorakhargosh/watchdog/pull/1287>__)
  • [core] Fixed generate_sub_moved_events() corrupting paths when the directory name appears multiple times in the path. ([#1158](https://github.com/gorakhargosh/watchdog/issues/1158) <https://github.com/gorakhargosh/watchdog/pull/1158>__)
  • [core] ObservedWatch equality now includes follow_symlink, so scheduling a path a second time with a different follow_symlink value no longer collapses onto the first watch and silently drops the request. ([#1262](https://github.com/gorakhargosh/watchdog/issues/1262) <https://github.com/gorakhargosh/watchdog/pull/1262>__)
  • [core] RegexMatchingEventHandler no longer matches its regexes against an empty destination path for events that are not moves. Since events became dataclasses, hasattr(event, "dest_path") is always true, so a regex matching the empty string (e.g. ^(?!.*\.pyc$).*$) let every event through, and such an ignore regex dropped every event. PatternMatchingEventHandler had the same check.
  • [core] remove_handler_for_watch() no longer re-adds a watch that unschedule() removed, which leaked one empty _handlers entry per call. ([#1285](https://github.com/gorakhargosh/watchdog/issues/1285) <https://github.com/gorakhargosh/watchdog/pull/1285>__)
  • [core] Add win_arm64 to the list of platform-specific wheels published to PyPI. ([#1137](https://github.com/gorakhargosh/watchdog/issues/1137) <https://github.com/gorakhargosh/watchdog/issues/1137>__)
  • [core] Add manylinux_2_17 to the list of platform-specific wheels published to PyPI. ([#1125](https://github.com/gorakhargosh/watchdog/issues/1125) <https://github.com/gorakhargosh/watchdog/issues/1125>__)

... (truncated)

Commits
  • b5274bf feat: version v7.1.0 [skip ci] (#1404)
  • e0994bd docs: add @​taltal-beep to contributors [skip ci] (#1405)
  • d481d1c fix(watchmedo): make generate-tricks-yaml output loadable by watchmedo tricks...
  • 5236a9a fix(inotify): create the inotify instance lazily (#1390)
  • 3d8a07a ci: enable PyPy 3.11 testing and PyPy 3.11/3.12 wheel builds on macOS (#1400)
  • 103ca34 docs: add @​monosans to contributors [skip ci] (#1401)
  • c7c09c6 fix(fsevents): update pythoncapi_compat.h to fix the PyPy 3.12 build (#1398)
  • 68f8321 chore(deps): bump mypy from 2.4.0 to 2.4.1 (#19)
  • 235c832 chore(deps): bump types-pyyaml from 6.0.12.20260906 to 6.0.12.20261030 (#18)
  • dbb57f6 chore(deps): bump pytest from 9.1.1 to 9.2.0 (#17)
  • Additional commits viewable in compare view

Updates sentence-transformers to 6.2.0

Release notes

Sourced from sentence-transformers's releases.

v6.2.0 - Model merging, faster loading, and distributed evaluation

This release adds model merging for all four model types, reduces redundant Hub requests when loading models, and distributes evaluator inference across DDP ranks. It also includes lower-memory training losses, more flexible multi-vector compression, and fixes throughout inference, training, and evaluation.

Install this version with

# Inference only, use one of:
pip install sentence-transformers==6.2.0
pip install sentence-transformers[openvino]==6.2.0
Multimodal dependencies (optional):
pip install sentence-transformers[image]==6.2.0
pip install sentence-transformers[audio]==6.2.0
pip install sentence-transformers[video]==6.2.0
Training + Inference
pip install sentence-transformers[train]==6.2.0
pip install sentence-transformers[merge]==6.2.0
Or combine as needed:
pip install sentence-transformers[train,image]==6.2.0

Model merging for all four model types (#3776)

Combine compatible fine-tuned checkpoints without another training run using SentenceTransformer.merge, SparseEncoder.merge, CrossEncoder.merge, or MultiVectorEncoder.merge. The integration uses Arcee AI's mergekit and supports well over a dozen methods such as Linear, SLERP, TIES, and DARE.

Install the merge extra with pip install "sentence-transformers[merge]". For example, take a weighted average of two compatible MiniLM models:

from sentence_transformers import SentenceTransformer
models = [
"sentence-transformers/all-MiniLM-L6-v2",
"sentence-transformers/multi-qa-MiniLM-L6-cos-v1",
]
merged = SentenceTransformer.merge(
models,
method="linear",
parameters={"weight": [0.6, 0.4]},
)
merged.save_pretrained("merged-MiniLM-L6")
embeddings = merged.encode(["Combining compatible model weights."])

Or interpolate between the same inputs with SLERP:

</tr></table> 

... (truncated)

Commits
  • 0b6937d Release v6.2.0
  • 45682ed Update documentation announcement for v6.2 (#4243)
  • aed573b Forward gradient checkpointing options to Transformers (#4241)
  • c7adf47 Skip bfloat16 transformer head tests on affected Windows runners (#4242)
  • 1b4b624 Fix blank rows in CrossEncoder and RRF evaluator CSVs on Windows (#4077)
  • ea5435c Treat a string positive or negative as one document in RerankingEvaluator (#4...
  • 3a5232b Follow only duplicate pairs in the paraphrase mining transitive closure (#4120)
  • 7d64d3b Keep the RRF fusion order the same from run to run (#4067)
  • 67f11a3 Evaluate the main similarity function in TripletEvaluator (#4088)
  • fd6b188 Accept a string main_score_function in NanoBEIREvaluator (#4034)
  • Additional commits viewable in compare view

Updates python-dateutil to 4.0.0

Release notes

Sourced from python-dateutil's releases.

4.0.0

dateutil 4.0 requires Python 3.11 or later and no longer depends on six. Apart from that, the changes in this release are bug fixes, but note that isoparse is now stricter about the numeric fields it accepts (see below).

Deprecations

  • Dropped support for Python versions older than 3.11 and removed the dependency on six, along with Python 2 compatibility helpers that were never part of the public API, such as dateutil.tz.tzname_in_python2. (gh pr #1625)

Bugfixes

  • parser.isoparse, and the isoparser methods parse_isodate, parse_isotime and parse_tzstr, now require each numeric field to be exactly the expected number of ASCII digits. Strings that were previously accepted, such as 20200728121240 (read as 21:24), 2014- 4-21 and 2_14-04-21, and offsets such as +-1:00, now raise ValueError. tzical applies the same check to TZOFFSETFROM and TZOFFSETTO. Reported by @​janos-gonye (gh issue #1074). Fixed by @​varun3257 (gh pr #1617).
  • Fixed an issue where iterating over a cached rrule or rruleset could hang forever if another iterator over the same rule had already completed the cache, for example when a cached rrule was included twice in an rruleset. Reported by @​bysiber (gh pr #1455). Fixed by @​pganssle (gh pr #1655).
  • Unpickling a tzutc now gives the dateutil.tz.UTC singleton, and unpickling a tzoffset gives the same object as calling tzoffset(name, offset). Previously unpickling bypassed the singleton-generation logic. Reported and fixed by @​masipcat (gh issue #1051, gh pr #1053).
  • relativedelta(yearday=366) now resolves to December 31 in leap years. Previously it gave December 30, the same date as yearday=365. Reported and fixed by @​Master-Norna (gh pr #1583).

Misc

  • The build backend is now Hatchling, and the package metadata is in pyproject.toml. Versions are still derived from Git tags and exposed as dateutil.__version__. This mainly affects people building dateutil from source. (gh pr #1637, #1638)
  • Changes to CI, tests and release tooling that do not affect users of the package: gh pr #1636, #1644, #1645, #1646, #1648, #1649, #1650.
Changelog

Sourced from python-dateutil's changelog.

Version 4.0.0 (2026-11-01)

dateutil 4.0 requires Python 3.11 or later and no longer depends on six. Apart from that, the changes in this release are bug fixes, but note that isoparse is now stricter about the numeric fields it accepts (see below).

Deprecations

  • Dropped support for Python versions older than 3.11 and removed the dependency on six, along with Python 2 compatibility helpers that were never part of the public API, such as dateutil.tz.tzname_in_python2. (gh pr #1625)

Bugfixes

  • parser.isoparse, and the isoparser methods parse_isodate, parse_isotime and parse_tzstr, now require each numeric field to be exactly the expected number of ASCII digits. Strings that were previously accepted, such as 20200728121240 (read as 21:24), 2014- 4-21 and 2_14-04-21, and offsets such as +-1:00, now raise ValueError. tzical applies the same check to TZOFFSETFROM and TZOFFSETTO. Reported by @​janos-gonye (gh issue #1074). Fixed by @​varun3257 (gh pr #1617).
  • Fixed an issue where iterating over a cached rrule or rruleset could hang forever if another iterator over the same rule had already completed the cache, for example when a cached rrule was included twice in an rruleset. Reported by @​bysiber (gh pr #1455). Fixed by @​pganssle (gh pr #1655).
  • Unpickling a tzutc now gives the dateutil.tz.UTC singleton, and unpickling a tzoffset gives the same object as calling tzoffset(name, offset). Previously unpickling bypassed the singleton-generation logic. Reported and fixed by @​masipcat (gh issue #1051, gh pr #1053).
  • relativedelta(yearday=366) now resolves to December 31 in leap years. Previously it gave December 30, the same date as yearday=365. Reported and fixed by @​Master-Norna (gh pr #1583).

Misc

  • The build backend is now Hatchling, and the package metadata is in pyproject.toml. Versions are still derived from Git tags and exposed as dateutil.__version__. This mainly affects people building dateutil from source. (gh pr #1637, #1638)
  • Changes to CI, tests and release tooling that do not affect users of the

... (truncated)

Commits
  • a78cbd8 Prepare release 4.0.0
  • d23ff76 Fix yearday=366 resolving to Dec 30 in leap years
  • 5391455 Return the cached instances when unpickling tzutc and tzoffset
  • 6f13622 Reject non-digit characters in isoparse and tzical numeric fields
  • 6e1864c Release the rrule cache lock on every exit from a refill (#1655)
  • 71d92da Skip coverage collection on PyPy in CI
  • d9cad2f Run the tests in parallel with pytest-xdist (#1649)
  • 433c98b Add news fragment for #1650
  • ea6bc3f Remove stale warning from the tz tox environments
  • 27ecba2 Keep GitHub Actions pins updated with Dependabot
  • Additional commits viewable in compare view

Updates pytest 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 pytest-mock to 3.17.0

Release notes

Sourced from pytest-mock's releases.

v3.17.0

2026-10-17

  • #641: Failures of mock assertions such as assert_called_with are again reported only once, instead of two or three times with the original error from the mock module chained before them.
  • #642: Mock assertion failures no longer show misleading introspection when they are not about the arguments of the last call: assert_called, assert_called_once, assert_not_called, assert_any_call, their await counterparts, and assert_called_once_with/assert_awaited_once_with when the mock was not called (awaited) exactly once. The introspection also no longer reports arguments passed by position versus by keyword as different for autospecced mocks, and no longer shows empty Args:/Kwargs: sections when assertion rewriting is not available.
  • #643: assert_has_calls and assert_has_awaits failures no longer show pytest introspection, which compared the expected and actual calls position by position and so reported differences between unrelated calls. The mock's own message, listing the expected and actual calls, is still shown.
Changelog

Sourced from pytest-mock's changelog.

3.17.0

2026-10-17

  • [#641](https://github.com/pytest-dev/pytest-mock/issues/641) <https://github.com/pytest-dev/pytest-mock/pull/641>_: Failures of mock assertions such as assert_called_with are again reported only once, instead of two or three times with the original error from the mock module chained before them.
  • [#642](https://github.com/pytest-dev/pytest-mock/issues/642) <https://github.com/pytest-dev/pytest-mock/pull/642>_: Mock assertion failures no longer show misleading introspection when they are not about the arguments of the last call: assert_called, assert_called_once, assert_not_called, assert_any_call, their await counterparts, and assert_called_once_with/assert_awaited_once_with when the mock was not called (awaited) exactly once. The introspection also no longer reports arguments passed by position versus by keyword as different for autospecced mocks, and no longer shows empty Args:/Kwargs: sections when assertion rewriting is not available.
  • [#643](https://github.com/pytest-dev/pytest-mock/issues/643) <https://github.com/pytest-dev/pytest-mock/pull/643>_: assert_has_calls and assert_has_awaits failures no longer show pytest introspection, which compared the expected and actual calls position by position and so reported differences between unrelated calls. The mock's own message, listing the expected and actual calls, is still shown.

3.16.1

2026-10-17

  • [#617](https://github.com/pytest-dev/pytest-mock/issues/617) <https://github.com/pytest-dev/pytest-mock/pull/617>_: Fixed assert_has_calls raising ValueError instead of AssertionError (or showing misleading introspection) when the expected calls are plain tuples rather than call(...) objects, such as (args, kwargs) entries of another mock's call_args_list, (args,), (kwargs,), (name, args) or (name, kwargs).
  • [#621](https://github.com/pytest-dev/pytest-mock/issues/621) <https://github.com/pytest-dev/pytest-mock/pull/621>_: Fixed mocker.stop() sometimes stopping the wrong mock, for example with mocks from mocker.create_autospec.
  • [#621](https://github.com/pytest-dev/pytest-mock/issues/621) <https://github.com/pytest-dev/pytest-mock/pull/621>_: mocker.stop() now undoes the most recent patch first when the same object is used in several patches.
  • [#623](https://github.com/pytest-dev/pytest-mock/issues/623) <https://github.com/pytest-dev/pytest-mock/pull/623>_: Fixed misleading introspection in assert_has_awaits failures, and assert_has_calls/assert_has_awaits raising IndexError instead of AssertionError when calls is passed by keyword.
  • [#624](https://github.com/pytest-dev/pytest-mock/issues/624) <https://github.com/pytest-dev/pytest-mock/pull/624>_: Clear spy_return_iter after a spied synchronous or asynchronous function raises, matching spy_return.
  • [#627](https://github.com/pytest-dev/pytest-mock/issues/627) <https://github.com/pytest-dev/pytest-mock/pull/627>_: Document async_stub await assertions and the distinction between call and await tracking.
  • [#629](https://github.com/pytest-dev/pytest-mock/issues/629) <https://github.com/pytest-dev/pytest-mock/pull/629>_: Fixed mocker.resetall() skipping the mocks patched with mocker.patch.multiple(), both the ones it creates and the ones passed explicitly.
  • [#630](https://github.com/pytest-dev/pytest-mock/issues/630) <https://github.com/pytest-dev/pytest-mock/pull/630>_: mocker.resetall() now also resets spy_return and spy_exception of spies, like it already did for spy_return_list and spy_return_iter, and no longer overwrites attributes with these names on mocks that are not spies.
  • [#633](https://github.com/pytest-dev/pytest-mock/issues/633) <https://github.com/pytest-dev/pytest-mock/pull/633>_: Fixed spies on classmethod, staticmethod, builtins and classes returning a MagicMock instead of calling the spied code after mocker.resetall(side_effect=True). Resetting a spy's side_effect now goes back to calling the spied code, also clearing any side_effect set on the spy.

3.16.0

2026-09-27

  • [#604](https://github.com/pytest-dev/pytest-mock/issues/604) <https://github.com/pytest-dev/pytest-mock/pull/604>_: Fixed duplicate_iterators=True for async functions spied with mocker.spy.
  • [#611](https://github.com/pytest-dev/pytest-mock/issues/611) <https://github.com/pytest-dev/pytest-mock/pull/611>_: Fixed async mock assertion introspection to use awaited arguments instead of the latest call's arguments.
  • [#606](https://github.com/pytest-dev/pytest-mock/issues/606) <https://github.com/pytest-dev/pytest-mock/pull/606>_: mocker.resetall(return_value=True, side_effect=True) now also applies to non-callable mocks, such as those returned by mocker.create_autospec(SomeClass, instance=True). Previously both arguments were silently ignored for them.
  • [#547](https://github.com/pytest-dev/pytest-mock/issues/547) <https://github.com/pytest-dev/pytest-mock/issues/547>_: Added SpyType for annotating mocker.spy results.
  • Dropped support for EOL Python 3.9.
  • [#147](https://github.com/pytest-dev/pytest-mock/issues/147) <https://github.com/pytest-dev/pytest-mock/issues/147>_: Removed handling of RuntimeError: stop called on unstarted patcher, which can no longer occur in the supported Python versions.
  • Added support for Python 3.15.

3.15.1

2025-09-16

  • [#529](https://github.com/pytest-dev/pytest-mock/issues/529) <https://github.com/pytest-dev/pytest-mock/issues/529>_: Fixed itertools._tee object has no attribute error -- now duplicate_iterators=True must be passed to mocker.spy to duplicate iterators.

3.15.0

2025-09-04

  • Python 3.8 (EOL) is no longer supported.

... (truncated)

Commits
  • 5c2f207 Release 3.17.0
  • 9625271 Bump the minor version for releases that change existing behavior
  • 34b87ae Drop introspection from assert_has_calls and assert_has_awaits (#643)
  • 866520f Only show introspection for failures about the call arguments (#642)
  • 5ab41c1 Do not chain the original mock error to wrapped assertion failures (#641)
  • 1916b14 Merge pull request #635 from nicoddemus/docs-contributing-resetall
  • 212fcd9 Document resetall, the changelog format and running tests with tox
  • 9374b2c Merge pull request #634 from pytest-dev/release-3.16.1
  • fab730d Release 3.16.1
  • d26d41b Merge pull request #627 from xiehuanyi/docs/async-stub-awaits-20261012-r2
  • Additional commits viewable in compare view

Updates pytest-benchmark to 5.3.1

Changelog

Sourced from pytest-benchmark's changelog.

v5.3.1 (2026-11-01)

  • Fixed an AttributeError with pytest's public nodeid attribute by avoiding the removed private node._nodeid attribute (fixes [#321](https://github.com/ionelmc/pytest-benchmark/issues/321) <https://github.com/ionelmc/pytest-benchmark/issues/321>). This adds support for Pytest 9.2. Contributed by Hfycium in [#323](https://github.com/ionelmc/pytest-benchmark/issues/323) <https://github.com/ionelmc/pytest-benchmark/pull/323>.
  • Fixed Stats.hd15iqr returning the first datum above the Tukey upper fence instead of the highest datum within it, so the statistic reported the outlier it exists to exclude. ld15iqr was already correct. Contributed by WatchTree-19 in [#320](https://github.com/ionelmc/pytest-benchmark/issues/320) <https://github.com/ionelmc/pytest-benchmark/pull/320>_.
  • Added workaround for pygal's broken PluginImportFixer (it's removed from sys.meta_path).

v5.3.0 (2026-08-23)

  • Added --benchmark-precision and --benchmark-confidence: instead of a fixed number of rounds, stop once the mean's relative margin of error falls below the given fraction. Contributed by Aarni Koskela in [#318](https://github.com/ionelmc/pytest-benchmark/issues/318) <https://github.com/ionelmc/pytest-benchmark/pull/318>_.
  • Added compare --between mode. Example: pytest-benchmark compare --between=min 0001 0002. Contributed by Aarni Koskela in [#302](https://github.com/ionelmc/pytest-benchmark/issues/302) <https://github.com/ionelmc/pytest-benchmark/pull/302>_.
  • Modernized the CI/linting and added spellchecking. Contributed by Aarni Koskela in [#304](https://github.com/ionelmc/pytest-benchmark/issues/304) <https://github.com/ionelmc/pytest-benchmark/pull/304>, [#306](https://github.com/ionelmc/pytest-benchmark/issues/306) <https://github.com/ionelmc/pytest-benchmark/pull/306> and [#319](https://github.com/ionelmc/pytest-benchmark/issues/319) <https://github.com/ionelmc/pytest-benchmark/pull/319>_.
  • Defer the xdist auto-disable warning until a benchmark fixture is collected. Contributed by xlyyddy in [#317](https://github.com/ionelmc/pytest-benchmark/issues/317) <https://github.com/ionelmc/pytest-benchmark/pull/317>_ (fixes [#65](https://github.com/ionelmc/pytest-benchmark/issues/65) <https://github.com/ionelmc/pytest-benchmark/issues/65>_).
  • Replaced deprecated argparse.FileType. Contributed by Sophia Castellarin in [#310](https://github.com/ionelmc/pytest-benchmark/issues/310) <https://github.com/ionelmc/pytest-benchmark/pull/310>_.
  • Fixed various spelling/typos. Contributed by Daniel Holth and Hugo van Kemenade in [#297](https://github.com/ionelmc/pytest-benchmark/issues/297) <https://github.com/ionelmc/pytest-benchmark/pull/297>_ and [#299](https://github.com/ionelmc/pytest-benchmark/issues/299) <https://github.com/ionelmc/pytest-benchmark/pull/299>_.
  • Cleaned up various dead code. Contributed by Hugo van Kemenade in [#300](https://github.com/ionelmc/pytest-benchmark/issues/300) <https://github.com/ionelmc/pytest-benchmark/pull/300>_ and [#301](https://github.com/ionelmc/pytest-benchmark/issues/301) <https://github.com/ionelmc/pytest-benchmark/pull/301>_.
  • CI now tests only with latest Pytest (now 9.1.1), Python 3.10-3.14 and PyPy 3.11.

v5.2.3 (2025-11-09)

  • Add support for pytest 9.0.
  • Moved the README.rst/CHANGELOG.rst concatenation from setup.py to pyproject.toml.

v5.2.2 (2025-11-07)

... (truncated)

Commits
  • 97c52d8 Bump version: 5.3.0 → 5.3.1
  • 1031904 Ignore this too.
  • b9d2222 Add workaround till Kozea/pygal#532 is released.
  • defaee2 Ignore windows deprecation warning (from some notebook thing) and bump pygal ...
  • 90204d9 Dump histogram for test_hd15iqr_excludes_high_outliers to a file. Also fix so...
  • 154cc0c Update changelog.
  • 5b535e1 Fix hd15iqr returning the outlier it is meant to exclude
  • f9b57d1 Add python 3.15 and pytest 9.2 in test suite.
  • 9f669a3 Fix benchmark fixture for pytest nodeid changes
  • 07d5196 Bump version: 5.2.3 → 5.3.0
  • Additional commits viewable in compare view

Updates faker to 40.44.0

Release notes

Sourced from faker's releases.

Release v40.44.0

See CHANGELOG.md.

Changelog

Sourced from faker's changelog.

v40.44.0 - 2026-10-28

v40.43.0 - 2026-10-09

v40.42.0 - 2026-10-09

  • Fix: generate fa_IR and mk_MK IBANs with the correct BBAN length (#2451). Thanks @​anandghegde.
  • Catch NotImplementedError when documenting unimplemented formatters (#2461). Thanks @​ekanshul.
  • Catch NotImplementedError in Documentor.get_provider_formatters (#2462). Thanks @​kdmadeit.

v40.41.0 - 2026-10-05

  • Fix: update vi_VN address formats, administrative units, and postcodes (#2433). Thanks @​hmtrii.

v40.40.0 - 2026-09-28

  • Fix: generate valid CNP birth dates in ro_RO ssn() (#2431). Thanks @​chuenchen309.
  • Add boundary tests for text(max_nb_chars) (#2439). Thanks @​saimoon504.
  • Clarify in the docs that text() max_nb_chars is an upper bound (

@dependabot
dependabot Bot requested a review from 4444J99 as a code owner November 5, 2026 08:35
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Nov 5, 2026
@coderabbitai

coderabbitai Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 07185792-868c-44a0-a234-fef10e968bda

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

Updates the requirements on [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy), [watchdog](https://github.com/gorakhargosh/watchdog), [sentence-transformers](https://github.com/huggingface/sentence-transformers), [python-dateutil](https://github.com/dateutil/dateutil), [pytest](https://github.com/pytest-dev/pytest), [pytest-mock](https://github.com/pytest-dev/pytest-mock), [pytest-benchmark](https://github.com/ionelmc/pytest-benchmark), [faker](https://github.com/joke2k/faker), [coverage](https://github.com/coveragepy/coveragepy) and [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) to permit the latest version.

Updates `sqlalchemy` to 2.1.8
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

Updates `watchdog` to 7.1.0
- [Release notes](https://github.com/gorakhargosh/watchdog/releases)
- [Changelog](https://github.com/gorakhargosh/watchdog/blob/master/changelog.rst)
- [Commits](gorakhargosh/watchdog@v6.0.0...v7.1.0)

Updates `sentence-transformers` to 6.2.0
- [Release notes](https://github.com/huggingface/sentence-transformers/releases)
- [Commits](huggingface/sentence-transformers@v5.6.0...v6.2.0)

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

Updates `pytest` 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 `pytest-mock` to 3.17.0
- [Release notes](https://github.com/pytest-dev/pytest-mock/releases)
- [Changelog](https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest-mock@v3.15.1...v3.17.0)

Updates `pytest-benchmark` to 5.3.1
- [Release notes](https://github.com/ionelmc/pytest-benchmark/releases)
- [Changelog](https://github.com/ionelmc/pytest-benchmark/blob/master/CHANGELOG.rst)
- [Commits](ionelmc/pytest-benchmark@v5.2.3...v5.3.1)

Updates `faker` to 40.44.0
- [Release notes](https://github.com/joke2k/faker/releases)
- [Changelog](https://github.com/joke2k/faker/blob/master/CHANGELOG.md)
- [Commits](joke2k/faker@v40.28.1...v40.44.0)

Updates `coverage` to 7.17.2
- [Release notes](https://github.com/coveragepy/coveragepy/releases)
- [Changelog](https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst)
- [Commits](coveragepy/coveragepy@7.15.0...7.17.2)

Updates `pytest-randomly` to 5.1.0
- [Changelog](https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest-randomly@4.1.0...5.1.0)

---
updated-dependencies:
- dependency-name: coverage
  dependency-version: 7.17.0
  dependency-type: direct:production
  dependency-group: pip-deps
- dependency-name: faker
  dependency-version: 40.44.0
  dependency-type: direct:production
  dependency-group: pip-deps
- dependency-name: pytest
  dependency-version: 9.2.0
  dependency-type: direct:production
  dependency-group: pip-deps
- dependency-name: pytest-benchmark
  dependency-version: 5.3.1
  dependency-type: direct:production
  dependency-group: pip-deps
- dependency-name: pytest-mock
  dependency-version: 3.17.0
  dependency-type: direct:production
  dependency-group: pip-deps
- dependency-name: pytest-randomly
  dependency-version: 5.0.0
  dependency-type: direct:production
  dependency-group: pip-deps
- dependency-name: python-dateutil
  dependency-version: 4.0.0
  dependency-type: direct:production
  dependency-group: pip-deps
- dependency-name: sentence-transformers
  dependency-version: 6.2.0
  dependency-type: direct:production
  dependency-group: pip-deps
- dependency-name: sqlalchemy
  dependency-version: 2.1.6
  dependency-type: direct:production
  dependency-group: pip-deps
- dependency-name: watchdog
  dependency-version: 7.0.0
  dependency-type: direct:production
  dependency-group: pip-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/pip/docs/source-materials/theory/pip-deps-52b00d758a branch from c8830fc to 5c4ecbb Compare November 12, 2026 08:35

This branch has not been deployed

No deployments
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 Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants