chore(deps): update dependency pluggy to v1.7.0 #55

Open
renovate-bot wants to merge 1 commit from renovate/pluggy-1.x into master
Member

This PR contains the following updates:

Package Change Age Confidence
pluggy (changelog) ==1.6.0 -> ==1.7.0 age confidence

Release Notes

pytest-dev/pluggy (pluggy)

v1.7.0

Compare Source

=========================

Deprecations and Removals

  • #&#8203;632 <https://github.com/pytest-dev/pluggy/issues/632>_: Hookspec methods defined without self as the first parameter now emit a :class:DeprecationWarning. Add self as the first parameter or use @staticmethod.

Features

  • #&#8203;170 <https://github.com/pytest-dev/pluggy/issues/170>_: Hookspecs can now declare default values for arguments, using the usual def myhook(myarg="default") syntax.
    This is mainly a backward compatibility feature, to allow a hookspec to add new parameters to an existing hook without breaking existing callers.
    See :ref:hookspec_arg_default for details.

  • #&#8203;729 <https://github.com/pytest-dev/pluggy/issues/729>_: Tracing now adds detail where str() is ambiguous: empty strings and strings containing
    whitespace are quoted, and enums and paths show their repr().

    A value spanning several lines is now displayed as a block instead of running into the
    surrounding trace.

Bug Fixes

  • #&#8203;629 <https://github.com/pytest-dev/pluggy/issues/629>_: Fix hooks failing to register on Python 3.14+ when type annotations use forward references.

  • #&#8203;315 <https://github.com/pytest-dev/pluggy/issues/315>_: Source archives created by git archive (including GitHub's "Source code" downloads) now carry version information, so building pluggy from them no longer fails with a missing version.

  • #&#8203;442 <https://github.com/pytest-dev/pluggy/issues/442>_: With the addition of default values for hookspec arguments, we also changed the precedence of default values for hookimpl arguments.
    Previously, if a hookimpl function declared a default for an argument, it was always used, even if the hook call passed an explicit value.
    Now the precedence is changed to: hook call passed value > hookspec default value > hookimpl default value.
    See :ref:hookimpl_arg_defaults.

  • #&#8203;701 <https://github.com/pytest-dev/pluggy/issues/701>_: Hookimpls and hookspecs are now discovered via :func:inspect.getattr_static, so
    properties, cached_property and other descriptors are no longer executed while
    scanning a plugin. Hooks declared through such a descriptor are not supported.

    As a side effect, @hookimpl/@hookspec applied above @classmethod or
    @staticmethod is now picked up; previously the marker sat on the wrapper where
    getattr() never saw it. Callables stored directly on a plugin instance -- in its
    __dict__ or in a __slots__ slot -- keep being called exactly as getattr()
    returned them, i.e. without an implicit self.

  • #&#8203;431 <https://github.com/pytest-dev/pluggy/issues/431>_: Fix HookCaller._remove_plugin() to remove all hook implementations for a plugin in a single call, instead of only the first one. Also fix PluginManager.get_hookcallers() to not return duplicate HookCaller entries when a plugin has multiple implementations on the same hook (e.g. via specname).

  • #&#8203;695 <https://github.com/pytest-dev/pluggy/issues/695>_: Fixed :func:~pluggy.PluginManager.subset_hook_caller() not excluding removed plugins which use :func:@hookiml(specname="...") <pluggy.HookimplMarker>.

  • #&#8203;424 <https://github.com/pytest-dev/pluggy/issues/424>_: Tracing no longer breaks hook execution when a traced object has a broken __repr__
    or __str__. Such a value is now rendered as
    <[RuntimeError(...) raised in str()] Broken object at 0x...>, in the same style
    pytest uses for unpresentable objects, instead of propagating the exception out of the
    hook call.

  • #&#8203;681 <https://github.com/pytest-dev/pluggy/issues/681>_: Tracing no longer crashes with UnicodeEncodeError when a hook argument or return
    value contains lone surrogates; they are escaped with backslashreplace before the
    message reaches the writer. Trace output is otherwise unchanged.

  • #&#8203;727 <https://github.com/pytest-dev/pluggy/issues/727>_: Fix the warning for hookspec arguments missing from a hook call being attributed to pluggy's own frame instead of to the code making the call. This affected HookCaller.__call__, call_historic and call_extra.

  • #&#8203;731 <https://github.com/pytest-dev/pluggy/issues/731>_: :func:PluginManager.register(None) <pluggy.PluginManager.register> is now ignored instead of having some weird behaviors.

  • #&#8203;733 <https://github.com/pytest-dev/pluggy/issues/733>_: :meth:PluginManager.register() <pluggy.PluginManager.register> now validates all hook implementations of a plugin before registering any of them, so a plugin that fails validation no longer stays partially registered.

  • #&#8203;755 <https://github.com/pytest-dev/pluggy/issues/755>_: Skip already registered entry-point plugins without evaluating the plugin object's truthiness.

  • #&#8203;757 <https://github.com/pytest-dev/pluggy/issues/757>_: Restore the project URLs in the package metadata, which were lost in pluggy 1.6.0 when the packaging configuration moved to pyproject.toml.
    Links to the documentation, changelog, issue tracker and funding page were added as well.

  • #&#8203;759 <https://github.com/pytest-dev/pluggy/issues/759>_: :meth:PluginManager.unregister() <pluggy.PluginManager.unregister> now raises :exc:ValueError when both plugin and name are given but refer to different plugins, instead of removing one plugin's hook implementations and another plugin's registry entry.
    It also fully unregisters plugin objects that are falsy (e.g. define __len__ returning 0); previously their name stayed in the registry.

  • #&#8203;186 <https://github.com/pytest-dev/pluggy/issues/186>_: Fixed broken external documentation references in the list of projects using pluggy.

Trivial/Internal Changes

  • #&#8203;417 <https://github.com/pytest-dev/pluggy/issues/417>_: Fix the tox -e docs build, which failed under sphinx-build -W because nitpicky mode reported unresolved references to the private names.

  • #&#8203;590 <https://github.com/pytest-dev/pluggy/issues/590>_: The pluggy.__version__ variable is now dynamically provided via a module-level __getattr__ implementation, using importlib to obtain the installed version.

  • #&#8203;691 <https://github.com/pytest-dev/pluggy/issues/691>_: Fix outdated links in README.rst.

  • #&#8203;703 <https://github.com/pytest-dev/pluggy/issues/703>_: The internal pluggy._hooks module was split into role-specific modules
    (_caller, _config, _decorators, _execution and _impl).
    pluggy._hooks remains as a re-export shim, and the public API is
    unchanged.

  • #&#8203;776 <https://github.com/pytest-dev/pluggy/issues/776>_: Building pluggy without git metadata now yields the placeholder version 1.6.0+fallback instead of failing, so Dependabot relocks no longer resolve pluggy as 0.0.0 and silently downgrade pytest and tox in uv.lock. tox was dropped from the dev dependency group; run it as a tool with uvx tox.


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [pluggy](https://github.com/pytest-dev/pluggy) ([changelog](https://pluggy.readthedocs.io/en/latest/changelog.html)) | `==1.6.0` -> `==1.7.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/pluggy/1.7.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pluggy/1.6.0/1.7.0?slim=true) | --- ### Release Notes <details> <summary>pytest-dev/pluggy (pluggy)</summary> ### [`v1.7.0`](https://github.com/pytest-dev/pluggy/blob/HEAD/CHANGELOG.rst#pluggy-170-2026-10-14) [Compare Source](https://github.com/pytest-dev/pluggy/compare/1.6.0...1.7.0) \========================= ## Deprecations and Removals - `#&#8203;632 <https://github.com/pytest-dev/pluggy/issues/632>`\_: Hookspec methods defined without `self` as the first parameter now emit a :class:`DeprecationWarning`. Add `self` as the first parameter or use `@staticmethod`. ## Features - `#&#8203;170 <https://github.com/pytest-dev/pluggy/issues/170>`\_: Hookspecs can now declare default values for arguments, using the usual `def myhook(myarg="default")` syntax. This is mainly a backward compatibility feature, to allow a hookspec to add new parameters to an existing hook without breaking existing *callers*. See :ref:`hookspec_arg_default` for details. - `#&#8203;729 <https://github.com/pytest-dev/pluggy/issues/729>`\_: Tracing now adds detail where `str()` is ambiguous: empty strings and strings containing whitespace are quoted, and enums and paths show their `repr()`. A value spanning several lines is now displayed as a block instead of running into the surrounding trace. ## Bug Fixes - `#&#8203;629 <https://github.com/pytest-dev/pluggy/issues/629>`\_: Fix hooks failing to register on Python 3.14+ when type annotations use forward references. - `#&#8203;315 <https://github.com/pytest-dev/pluggy/issues/315>`\_: Source archives created by `git archive` (including GitHub's "Source code" downloads) now carry version information, so building pluggy from them no longer fails with a missing version. - `#&#8203;442 <https://github.com/pytest-dev/pluggy/issues/442>`\_: With the addition of default values for hookspec arguments, we also changed the precedence of default values for *hookimpl* arguments. Previously, if a hookimpl function declared a default for an argument, it was always used, even if the *hook call* passed an explicit value. Now the precedence is changed to: hook call passed value > hookspec default value > hookimpl default value. See :ref:`hookimpl_arg_defaults`. - `#&#8203;701 <https://github.com/pytest-dev/pluggy/issues/701>`\_: Hookimpls and hookspecs are now discovered via :func:`inspect.getattr_static`, so properties, `cached_property` and other descriptors are no longer executed while scanning a plugin. Hooks declared through such a descriptor are not supported. As a side effect, `@hookimpl`/`@hookspec` applied *above* `@classmethod` or `@staticmethod` is now picked up; previously the marker sat on the wrapper where `getattr()` never saw it. Callables stored directly on a plugin instance -- in its `__dict__` or in a `__slots__` slot -- keep being called exactly as `getattr()` returned them, i.e. without an implicit `self`. - `#&#8203;431 <https://github.com/pytest-dev/pluggy/issues/431>`\_: Fix `HookCaller._remove_plugin()` to remove all hook implementations for a plugin in a single call, instead of only the first one. Also fix `PluginManager.get_hookcallers()` to not return duplicate `HookCaller` entries when a plugin has multiple implementations on the same hook (e.g. via `specname`). - `#&#8203;695 <https://github.com/pytest-dev/pluggy/issues/695>`\_: Fixed :func:`~pluggy.PluginManager.subset_hook_caller()` not excluding removed plugins which use :func:`@hookiml(specname="...") <pluggy.HookimplMarker>`. - `#&#8203;424 <https://github.com/pytest-dev/pluggy/issues/424>`\_: Tracing no longer breaks hook execution when a traced object has a broken `__repr__` or `__str__`. Such a value is now rendered as `<[RuntimeError(...) raised in str()] Broken object at 0x...>`, in the same style pytest uses for unpresentable objects, instead of propagating the exception out of the hook call. - `#&#8203;681 <https://github.com/pytest-dev/pluggy/issues/681>`\_: Tracing no longer crashes with `UnicodeEncodeError` when a hook argument or return value contains lone surrogates; they are escaped with `backslashreplace` before the message reaches the writer. Trace output is otherwise unchanged. - `#&#8203;727 <https://github.com/pytest-dev/pluggy/issues/727>`\_: Fix the warning for hookspec arguments missing from a hook call being attributed to pluggy's own frame instead of to the code making the call. This affected `HookCaller.__call__`, `call_historic` and `call_extra`. - `#&#8203;731 <https://github.com/pytest-dev/pluggy/issues/731>`\_: :func:`PluginManager.register(None) <pluggy.PluginManager.register>` is now ignored instead of having some weird behaviors. - `#&#8203;733 <https://github.com/pytest-dev/pluggy/issues/733>`\_: :meth:`PluginManager.register() <pluggy.PluginManager.register>` now validates all hook implementations of a plugin before registering any of them, so a plugin that fails validation no longer stays partially registered. - `#&#8203;755 <https://github.com/pytest-dev/pluggy/issues/755>`\_: Skip already registered entry-point plugins without evaluating the plugin object's truthiness. - `#&#8203;757 <https://github.com/pytest-dev/pluggy/issues/757>`\_: Restore the project URLs in the package metadata, which were lost in pluggy 1.6.0 when the packaging configuration moved to `pyproject.toml`. Links to the documentation, changelog, issue tracker and funding page were added as well. - `#&#8203;759 <https://github.com/pytest-dev/pluggy/issues/759>`\_: :meth:`PluginManager.unregister() <pluggy.PluginManager.unregister>` now raises :exc:`ValueError` when both `plugin` and `name` are given but refer to different plugins, instead of removing one plugin's hook implementations and another plugin's registry entry. It also fully unregisters plugin objects that are falsy (e.g. define `__len__` returning `0`); previously their name stayed in the registry. - `#&#8203;186 <https://github.com/pytest-dev/pluggy/issues/186>`\_: Fixed broken external documentation references in the list of projects using pluggy. ## Trivial/Internal Changes - `#&#8203;417 <https://github.com/pytest-dev/pluggy/issues/417>`\_: Fix the `tox -e docs` build, which failed under `sphinx-build -W` because nitpicky mode reported unresolved references to the private names. - `#&#8203;590 <https://github.com/pytest-dev/pluggy/issues/590>`\_: The `pluggy.__version__` variable is now dynamically provided via a module-level `__getattr__` implementation, using `importlib` to obtain the installed version. - `#&#8203;691 <https://github.com/pytest-dev/pluggy/issues/691>`\_: Fix outdated links in `README.rst`. - `#&#8203;703 <https://github.com/pytest-dev/pluggy/issues/703>`\_: The internal `pluggy._hooks` module was split into role-specific modules (`_caller`, `_config`, `_decorators`, `_execution` and `_impl`). `pluggy._hooks` remains as a re-export shim, and the public API is unchanged. - `#&#8203;776 <https://github.com/pytest-dev/pluggy/issues/776>`\_: Building `pluggy` without git metadata now yields the placeholder version `1.6.0+fallback` instead of failing, so Dependabot relocks no longer resolve `pluggy` as `0.0.0` and silently downgrade pytest and tox in `uv.lock`. `tox` was dropped from the `dev` dependency group; run it as a tool with `uvx tox`. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41Mi44IiwidXBkYXRlZEluVmVyIjoiNDIuNTIuOCIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJyZW5vdmF0ZS1ib3QiXX0=-->
chore(deps): update dependency pluggy to v1.7.0
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/pull_request_metadata/woodpecker Pipeline was successful
ci/woodpecker/pr/woodpecker Pipeline was successful
fcf61d0d24
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/pull_request_metadata/woodpecker Pipeline was successful
ci/woodpecker/pr/woodpecker Pipeline was successful
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/pluggy-1.x:renovate/pluggy-1.x
git switch renovate/pluggy-1.x

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch master
git merge --no-ff renovate/pluggy-1.x
git switch renovate/pluggy-1.x
git rebase master
git switch master
git merge --ff-only renovate/pluggy-1.x
git switch renovate/pluggy-1.x
git rebase master
git switch master
git merge --no-ff renovate/pluggy-1.x
git switch master
git merge --squash renovate/pluggy-1.x
git switch master
git merge --ff-only renovate/pluggy-1.x
git switch master
git merge renovate/pluggy-1.x
git push origin master
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
mCaptcha/mcaptcha-api-js!55
No description provided.