build(deps): bump pluggy from 1.6.0 to 1.7.0 in /dev (#4327)

Bumps [pluggy](https://github.com/pytest-dev/pluggy) from 1.6.0 to
1.7.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pluggy/blob/main/CHANGELOG.rst">pluggy's
changelog</a>.</em></p>
<blockquote>
<h1>pluggy 1.7.0 (2026-10-14)</h1>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>[#632](https://github.com/pytest-dev/pluggy/issues/632)
&lt;https://github.com/pytest-dev/pluggy/issues/632&gt;</code>_:
Hookspec methods defined without <code>self</code> as the first
parameter now emit a :class:<code>DeprecationWarning</code>. Add
<code>self</code> as the first parameter or use
<code>@staticmethod</code>.</li>
</ul>
<h2>Features</h2>
<ul>
<li>
<p><code>[#170](https://github.com/pytest-dev/pluggy/issues/170)
&lt;https://github.com/pytest-dev/pluggy/issues/170&gt;</code>_:
Hookspecs can now declare default values for arguments, using the usual
<code>def myhook(myarg=&quot;default&quot;)</code> syntax.
This is mainly a backward compatibility feature, to allow a hookspec to
add new parameters to an existing hook without breaking existing
<em>callers</em>.
See :ref:<code>hookspec_arg_default</code> for details.</p>
</li>
<li>
<p><code>[#729](https://github.com/pytest-dev/pluggy/issues/729)
&lt;https://github.com/pytest-dev/pluggy/issues/729&gt;</code>_: Tracing
now adds detail where <code>str()</code> is ambiguous: empty strings and
strings containing
whitespace are quoted, and enums and paths show their
<code>repr()</code>.</p>
<p>A value spanning several lines is now displayed as a block instead of
running into the
surrounding trace.</p>
</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li>
<p><code>[#629](https://github.com/pytest-dev/pluggy/issues/629)
&lt;https://github.com/pytest-dev/pluggy/issues/629&gt;</code>_: Fix
hooks failing to register on Python 3.14+ when type annotations use
forward references.</p>
</li>
<li>
<p><code>[#315](https://github.com/pytest-dev/pluggy/issues/315)
&lt;https://github.com/pytest-dev/pluggy/issues/315&gt;</code>_: Source
archives created by <code>git archive</code> (including GitHub's
&quot;Source code&quot; downloads) now carry version information, so
building pluggy from them no longer fails with a missing version.</p>
</li>
<li>
<p><code>[#442](https://github.com/pytest-dev/pluggy/issues/442)
&lt;https://github.com/pytest-dev/pluggy/issues/442&gt;</code>_: With
the addition of default values for hookspec arguments, we also changed
the precedence of default values for <em>hookimpl</em> arguments.
Previously, if a hookimpl function declared a default for an argument,
it was always used, even if the <em>hook call</em> passed an explicit
value.
Now the precedence is changed to: hook call passed value &gt; hookspec
default value &gt; hookimpl default value.
See :ref:<code>hookimpl_arg_defaults</code>.</p>
</li>
<li>
<p><code>[#701](https://github.com/pytest-dev/pluggy/issues/701)
&lt;https://github.com/pytest-dev/pluggy/issues/701&gt;</code>_:
Hookimpls and hookspecs are now discovered via
:func:<code>inspect.getattr_static</code>, so
properties, <code>cached_property</code> and other descriptors are no
longer executed while
scanning a plugin. Hooks declared through such a descriptor are not
supported.</p>
<p>As a side effect, <code>@hookimpl</code>/<code>@hookspec</code>
applied <em>above</em> <code>@classmethod</code> or
<code>@staticmethod</code> is now picked up; previously the marker sat
on the wrapper where
<code>getattr()</code> never saw it. Callables stored directly on a
plugin instance -- in its
<code>__dict__</code> or in a <code>__slots__</code> slot -- keep being
called exactly as <code>getattr()</code>
returned them, i.e. without an implicit <code>self</code>.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pluggy/commit/4c7f6365f2dde09c11e72db67d0f615231d64c19"><code>4c7f636</code></a>
Preparing release 1.7.0</li>
<li><a
href="https://github.com/pytest-dev/pluggy/commit/21c7e1672941a0cd9e3c555bf5e5007f1fbe3dc5"><code>21c7e16</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pluggy/issues/787">#787</a>
from pytest-dev/rm-outdated-doc</li>
<li><a
href="https://github.com/pytest-dev/pluggy/commit/628959b178ab075c0b9af833511e53b4f5640fcb"><code>628959b</code></a>
docs: remove outdated hookimpl default args paragraph</li>
<li><a
href="https://github.com/pytest-dev/pluggy/commit/2edab5eb6d1d68d628e68b1aa0796d2388733446"><code>2edab5e</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pluggy/issues/752">#752</a>
from bluetech/register-none-allow</li>
<li><a
href="https://github.com/pytest-dev/pluggy/commit/6995073de5ebc58d97dc017a7c2b7c5904f4c485"><code>6995073</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pluggy/issues/776">#776</a>
from RonnyPfannschmidt/fix/uv-lock-pytest-downgrade</li>
<li><a
href="https://github.com/pytest-dev/pluggy/commit/50c1ac94b4a3e64d2b8e1a1868d3c580c95c7164"><code>50c1ac9</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/pytest-dev/pluggy/issues/781">#781</a>)</li>
<li><a
href="https://github.com/pytest-dev/pluggy/commit/6a7e84e48cbeacdcb231a1e6dffc0bd6b6bd085e"><code>6a7e84e</code></a>
Add changelog fragment for <a
href="https://redirect.github.com/pytest-dev/pluggy/issues/776">#776</a></li>
<li><a
href="https://github.com/pytest-dev/pluggy/commit/d22cfb59c2a4c35af1335af338587d11a9a624ce"><code>d22cfb5</code></a>
Drop tox from the dev dependency group</li>
<li><a
href="https://github.com/pytest-dev/pluggy/commit/74cbfa2b9a9ebf6098beb493ad1113efeb0e45e9"><code>74cbfa2</code></a>
Relock pytest and tox that dependabot downgraded</li>
<li><a
href="https://github.com/pytest-dev/pluggy/commit/87f130aa18d8fdf9c92585e72423eca7f3de727d"><code>87f130a</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pluggy/issues/755">#755</a>
from harbinresearcher/codex/entrypoint-plugin-presence</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pluggy/compare/1.6.0...1.7.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pluggy&package-manager=uv&previous-version=1.6.0&new-version=1.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
diff --git a/dev/requirements.txt b/dev/requirements.txt
index 79eb91a..6c3353b 100644
--- a/dev/requirements.txt
+++ b/dev/requirements.txt
@@ -441,9 +441,9 @@
     --hash=sha256:3ff6c5d8b43e8c37bb6e6dd5085658d658a7a0bdcd20b6a07b1fcfc1c4e9d632 \
     --hash=sha256:76f8b485dcd3b1bb8166f1128d395fa3d87af26360c2358fb75b80019b957c6f
     # via rules-python-dev (pyproject.toml)
-pluggy==1.6.0 \
-    --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \
-    --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746
+pluggy==1.7.0 \
+    --hash=sha256:7dd7b0d8832ba3cb632c306926ded123429211b83641b35dc5c41ad2d34f9bec \
+    --hash=sha256:d1eaa46ebb595891b860ab086b4d09c8588af65ebd4361b8e8f4bb8920b90ba8
     # via pytest
 pyelftools==0.33 \
     --hash=sha256:660d82dcbeb8e83d1702bd97f223f761625da06111c0cc988eac6b8ab0c1b61f \