Skip to content

Conversation

Vizonex
Copy link
Contributor

@Vizonex Vizonex commented May 27, 2025

What do these changes do?

I'm going to start moving some of my code over from aiocallback over to this branch which I think would be acceptable given the circumstances of this proposal it was concluded that moving my things over here would allow this library to hopefully achieve a better user development experience.

Eventually I will give this library special member descriptors so that much of the works done with TraceConfig can be less bulky overall but this is the start to doing so.

Are there changes in behavior for the user?

Related issue number

Checklist

  • I think the code is well written
  • Unit tests for the changes exist
  • Documentation reflects the changes
  • If you provide code modification, please add yourself to CONTRIBUTORS.txt
    • The format is <Name> <Surname>.
    • Please keep alphabetical order, the file is sorted by names.
  • Add a new news fragment into the CHANGES folder
    • name it <issue_id>.<type> for example (588.bugfix)
    • if you don't have an issue_id change it to the pr id after creating the pr
    • ensure type is one of the following:
      • .feature: Signifying a new feature.
      • .bugfix: Signifying a bug fix.
      • .doc: Signifying a documentation improvement.
      • .removal: Signifying a deprecation or removal of public API.
      • .misc: A ticket has been closed, but it is not of interest to users.
    • Make sure to use full sentences with correct case and punctuation, for example: "Fix issue with non-ascii contents in doctest text files."

@Vizonex
Copy link
Contributor Author

Vizonex commented May 27, 2025

Not sure how to add typing-extension as a requirement if users are working with 3.9. Getting help with that would be appreciated.

@Vizonex
Copy link
Contributor Author

Vizonex commented May 27, 2025

Note: This pull request was my backup plan if things went extremely poorly. I don't expect it to happen at all.

@Vizonex Vizonex marked this pull request as draft May 27, 2025 14:10
@Dreamsorcerer
Copy link
Member

Not sure how to add typing-extension as a requirement if users are working with 3.9. Getting help with that would be appreciated.

https://github.com/aio-libs/multidict/blob/874fc89640cc3e33ad9f5d25820d2786bb8b97a9/setup.cfg#L45-L46

Copy link

codecov bot commented May 27, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 99.29%. Comparing base (d7a593c) to head (261d1c1).
Report is 2 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #699      +/-   ##
==========================================
+ Coverage   97.61%   99.29%   +1.67%     
==========================================
  Files           3        2       -1     
  Lines         126      142      +16     
  Branches        3       11       +8     
==========================================
+ Hits          123      141      +18     
+ Misses          2        0       -2     
  Partials        1        1              
Flag Coverage Δ
CI-GHA 99.29% <100.00%> (+1.67%) ⬆️
MyPy 61.53% <60.00%> (+4.39%) ⬆️
OS-Linux 99.29% <100.00%> (+1.67%) ⬆️
Py-3.10.17 98.58% <92.59%> (-1.42%) ⬇️
Py-3.11.12 98.58% <92.59%> (-1.42%) ⬇️
Py-3.12.10 98.58% <92.59%> (-1.42%) ⬇️
Py-3.13.3 99.29% <100.00%> (+1.67%) ⬆️
Py-3.9.22 98.58% <92.59%> (-1.42%) ⬇️
VM-ubuntu-24.04 99.29% <96.29%> (-0.71%) ⬇️
VM-ubuntu-latest 61.53% <60.00%> (+4.39%) ⬆️
pytest 99.29% <96.29%> (-0.71%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

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

@Vizonex
Copy link
Contributor Author

Vizonex commented May 27, 2025

@Dreamsorcerer I removed the stub file as well and made a few suggested changes that you wanted. I think I will transform aiocallback into a member descriptor library instead so that I don't have to deprecate my end but I think once these features are added in again I can re-add aiosignal back to my library, originally I dropped usage of this library when I saw an issue that this library would be deprecated.

@Vizonex Vizonex requested a review from Dreamsorcerer May 27, 2025 18:08
@Vizonex Vizonex marked this pull request as ready for review May 27, 2025 18:28
@Vizonex
Copy link
Contributor Author

Vizonex commented May 27, 2025

Does anybody know how to transform a draft back into a pull request?

@Vizonex Vizonex requested a review from webknjaz May 29, 2025 16:27
@webknjaz
Copy link
Member

I triggered the CI to see if it passes. However, I'd like those .rst extensions once the config's been updated per above.

Copy link
Member

@webknjaz webknjaz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Putting reordering components in fragment names causes makes them invalid.

@webknjaz webknjaz added the enhancement New feature or request label May 29, 2025
@Vizonex
Copy link
Contributor Author

Vizonex commented May 29, 2025

I remerged both Feature commits because I don't like that this workflow will not pass we might be able to fix this afterwards but for right now. This got beyond annoying.

@Dreamsorcerer Dreamsorcerer merged commit 6e43539 into aio-libs:master Jun 1, 2025
19 of 20 checks passed
@Dreamsorcerer
Copy link
Member

@Vizonex So, I'm playing with this now and trying to sort out the strict typing.

The problem is that there isn't an obvious way to actually declare the type.

e.g. This says it needs a type annotation:

signal = Signal(owner)

But, there isn't even an obvious way to declare an annotation, for even this simple case.

@Dreamsorcerer
Copy link
Member

I think an alternative approach would be to use something like:

class _AsyncFunc(Protocol):
    def __call__(self, *args: Any, **kwargs: Any) -> Awaitable[_T]:
        ...

_AsyncFuncT = TypeVar("_AsyncFuncT", bound=_AsyncFunc)

Then hopefully we'd be able to use both Protocol and Callable as annotations:

class MyCallback(Protocol):
    def __call__(self, foo: int, *, bar: str) -> Awaitable[str]:
        ...

Signal[MyCallback]
Signal[Callable[[int], Awaitable[str]]

I've not tried it out yet.

@Vizonex
Copy link
Contributor Author

Vizonex commented Jun 2, 2025

@Dreamsorcerer Thanks for getting this pull request passed I appreciate it. Let me know when the update comes out so I can re-add this library back to my member descriptor library.

@Dreamsorcerer
Copy link
Member

Let me know when the update comes out

We won't release it without addressing my previous comment first, and getting the strict typing working.

@Dreamsorcerer
Copy link
Member

I think we do need 2 implementations or something here.

One with TypeVarTuple for Callable support, and another for ParamSpec.

def send(self, *args: *Ts) -> T:
def send(self, *args: P.args, **kwargs: P.kwargs) -> T:

Or, given that this is mostly going to be handling callbacks, maybe we could just do the first one and not support kwargs...

arcan1s added a commit to arcan1s/ahriman that referenced this pull request Jul 4, 2025
aiosignal 1.4.0 has been released including feature aio-libs/aiosignal#699
However, aiohttp still uses old types which were not merged as well as
were not even implemented (the closest is
aio-libs/aiohttp#11160 and related issue
aio-libs/aiohttp#11036, whoever it still
doesn't change signatures for _AppSignal)

Let's just mark those calls as ignore
github-actions bot pushed a commit to aio-libs/aiohttp that referenced this pull request Jul 4, 2025
Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.2 to
1.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/aio-libs/aiosignal/releases">aiosignal's
releases</a>.</em></p>
<blockquote>
<h2>1.4.0</h2>
<h2>Features</h2>
<ul>
<li>
<p>Added decorator functionality to <code>Signal</code> as a convenient
way to add a callback -- by <code>@Vizonex</code>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code>_</p>
</li>
<li>
<p>Improved type safety by allowing callback parameters to be type
checked (typing-extensions is now required for Python &lt;3.13).
Parameters for a <code>Signal</code> callback should now be defined like
<code>Signal[int, str]</code> -- by <a
href="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/Vizonex"><code>@​Vizonex</code></a> and <a
href="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/Dreamsorcerer"><code>@​Dreamsorcerer</code></a>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code><em>,
<code>[#710](aio-libs/aiosignal#710)
&lt;https://github.com/aio-libs/aiosignal/pulls/710&gt;</code></em></p>
</li>
</ul>
<h2>Misc</h2>
<ul>
<li>Removed the sphinxcontrib-asyncio documentation dependency.
<code>[#528](aio-libs/aiosignal#528)
&lt;https://github.com/aio-libs/aiosignal/pull/528&gt;</code>_</li>
</ul>
<hr />
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst">aiosignal's
changelog</a>.</em></p>
<blockquote>
<h1>1.4.0 (2025-07-03)</h1>
<h2>Features</h2>
<ul>
<li>
<p>Added decorator functionality to <code>Signal</code> as a convenient
way to add a callback -- by <code>@Vizonex</code>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code>_</p>
</li>
<li>
<p>Improved type safety by allowing callback parameters to be type
checked (typing-extensions is now required for Python &lt;3.13).
Parameters for a <code>Signal</code> callback should now be defined like
<code>Signal[int, str]</code> -- by <a
href="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/Vizonex"><code>@​Vizonex</code></a> and <a
href="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/Dreamsorcerer"><code>@​Dreamsorcerer</code></a>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code><em>,
<code>[#710](aio-libs/aiosignal#710)
&lt;https://github.com/aio-libs/aiosignal/pulls/710&gt;</code></em></p>
</li>
</ul>
<h2>Misc</h2>
<ul>
<li>Removed the sphinxcontrib-asyncio documentation dependency.
<code>[#528](aio-libs/aiosignal#528)
&lt;https://github.com/aio-libs/aiosignal/pull/528&gt;</code>_</li>
</ul>
<hr />
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692"><code>1cf8014</code></a>
Fix deploy</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc"><code>892494c</code></a>
Release v1.4 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/718">#718</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7"><code>fa36082</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/719">#719</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265"><code>b7f68f1</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/717">#717</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45"><code>2b1acac</code></a>
Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1
(<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/716">#716</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157"><code>17456ed</code></a>
Build(deps): Bump tox from 4.26.0 to 4.27.0 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/715">#715</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406"><code>4c23690</code></a>
Build(deps): Bump pytest from 8.4.0 to 8.4.1 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/714">#714</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce"><code>7be2f68</code></a>
Build(deps): Bump mypy from 1.16.0 to 1.16.1 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/713">#713</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337"><code>5d62945</code></a>
Build(deps): Bump coverage from 7.9.0 to 7.9.1 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/712">#712</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b"><code>a6d85c1</code></a>
Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/694">#694</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/aio-libs/aiosignal/compare/v1.3.2...v1.4.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal&package-manager=pip&previous-version=1.3.2&new-version=1.4.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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sam Bull <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
github-actions bot pushed a commit to aio-libs/aiohttp that referenced this pull request Jul 4, 2025
Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.2 to
1.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/aio-libs/aiosignal/releases">aiosignal's
releases</a>.</em></p>
<blockquote>
<h2>1.4.0</h2>
<h2>Features</h2>
<ul>
<li>
<p>Added decorator functionality to <code>Signal</code> as a convenient
way to add a callback -- by <code>@Vizonex</code>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code>_</p>
</li>
<li>
<p>Improved type safety by allowing callback parameters to be type
checked (typing-extensions is now required for Python &lt;3.13).
Parameters for a <code>Signal</code> callback should now be defined like
<code>Signal[int, str]</code> -- by <a
href="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/Vizonex"><code>@​Vizonex</code></a> and <a
href="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/Dreamsorcerer"><code>@​Dreamsorcerer</code></a>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code><em>,
<code>[#710](aio-libs/aiosignal#710)
&lt;https://github.com/aio-libs/aiosignal/pulls/710&gt;</code></em></p>
</li>
</ul>
<h2>Misc</h2>
<ul>
<li>Removed the sphinxcontrib-asyncio documentation dependency.
<code>[#528](aio-libs/aiosignal#528)
&lt;https://github.com/aio-libs/aiosignal/pull/528&gt;</code>_</li>
</ul>
<hr />
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst">aiosignal's
changelog</a>.</em></p>
<blockquote>
<h1>1.4.0 (2025-07-03)</h1>
<h2>Features</h2>
<ul>
<li>
<p>Added decorator functionality to <code>Signal</code> as a convenient
way to add a callback -- by <code>@Vizonex</code>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code>_</p>
</li>
<li>
<p>Improved type safety by allowing callback parameters to be type
checked (typing-extensions is now required for Python &lt;3.13).
Parameters for a <code>Signal</code> callback should now be defined like
<code>Signal[int, str]</code> -- by <a
href="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/Vizonex"><code>@​Vizonex</code></a> and <a
href="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/Dreamsorcerer"><code>@​Dreamsorcerer</code></a>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code><em>,
<code>[#710](aio-libs/aiosignal#710)
&lt;https://github.com/aio-libs/aiosignal/pulls/710&gt;</code></em></p>
</li>
</ul>
<h2>Misc</h2>
<ul>
<li>Removed the sphinxcontrib-asyncio documentation dependency.
<code>[#528](aio-libs/aiosignal#528)
&lt;https://github.com/aio-libs/aiosignal/pull/528&gt;</code>_</li>
</ul>
<hr />
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692"><code>1cf8014</code></a>
Fix deploy</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc"><code>892494c</code></a>
Release v1.4 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/718">#718</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7"><code>fa36082</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/719">#719</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265"><code>b7f68f1</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/717">#717</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45"><code>2b1acac</code></a>
Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1
(<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/716">#716</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157"><code>17456ed</code></a>
Build(deps): Bump tox from 4.26.0 to 4.27.0 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/715">#715</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406"><code>4c23690</code></a>
Build(deps): Bump pytest from 8.4.0 to 8.4.1 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/714">#714</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce"><code>7be2f68</code></a>
Build(deps): Bump mypy from 1.16.0 to 1.16.1 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/713">#713</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337"><code>5d62945</code></a>
Build(deps): Bump coverage from 7.9.0 to 7.9.1 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/712">#712</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b"><code>a6d85c1</code></a>
Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/694">#694</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/aio-libs/aiosignal/compare/v1.3.2...v1.4.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal&package-manager=pip&previous-version=1.3.2&new-version=1.4.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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sam Bull <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
JohnGarbutt pushed a commit to azimuth-cloud/cluster-api-addon-provider that referenced this pull request Jul 4, 2025
Updates the requirements on
[aiosignal](https://github.com/aio-libs/aiosignal),
[multidict](https://github.com/aio-libs/multidict) and
[ruff](https://github.com/astral-sh/ruff) to permit the latest version.
Updates `aiosignal` from 1.3.2 to 1.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/aio-libs/aiosignal/releases">aiosignal's
releases</a>.</em></p>
<blockquote>
<h2>1.4.0</h2>
<h2>Features</h2>
<ul>
<li>
<p>Added decorator functionality to <code>Signal</code> as a convenient
way to add a callback -- by <code>@Vizonex</code>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code>_</p>
</li>
<li>
<p>Improved type safety by allowing callback parameters to be type
checked (typing-extensions is now required for Python &lt;3.13).
Parameters for a <code>Signal</code> callback should now be defined like
<code>Signal[int, str]</code> -- by <a
href="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/Vizonex"><code>@​Vizonex</code></a> and <a
href="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/Dreamsorcerer"><code>@​Dreamsorcerer</code></a>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code><em>,
<code>[#710](aio-libs/aiosignal#710)
&lt;https://github.com/aio-libs/aiosignal/pulls/710&gt;</code></em></p>
</li>
</ul>
<h2>Misc</h2>
<ul>
<li>Removed the sphinxcontrib-asyncio documentation dependency.
<code>[#528](aio-libs/aiosignal#528)
&lt;https://github.com/aio-libs/aiosignal/pull/528&gt;</code>_</li>
</ul>
<hr />
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst">aiosignal's
changelog</a>.</em></p>
<blockquote>
<h1>1.4.0 (2025-07-03)</h1>
<h2>Features</h2>
<ul>
<li>
<p>Added decorator functionality to <code>Signal</code> as a convenient
way to add a callback -- by <code>@Vizonex</code>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code>_</p>
</li>
<li>
<p>Improved type safety by allowing callback parameters to be type
checked (typing-extensions is now required for Python &lt;3.13).
Parameters for a <code>Signal</code> callback should now be defined like
<code>Signal[int, str]</code> -- by <a
href="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/Vizonex"><code>@​Vizonex</code></a> and <a
href="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/Dreamsorcerer"><code>@​Dreamsorcerer</code></a>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code><em>,
<code>[#710](aio-libs/aiosignal#710)
&lt;https://github.com/aio-libs/aiosignal/pulls/710&gt;</code></em></p>
</li>
</ul>
<h2>Misc</h2>
<ul>
<li>Removed the sphinxcontrib-asyncio documentation dependency.
<code>[#528](aio-libs/aiosignal#528)
&lt;https://github.com/aio-libs/aiosignal/pull/528&gt;</code>_</li>
</ul>
<hr />
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692"><code>1cf8014</code></a>
Fix deploy</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc"><code>892494c</code></a>
Release v1.4 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/718">#718</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7"><code>fa36082</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/719">#719</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265"><code>b7f68f1</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/717">#717</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45"><code>2b1acac</code></a>
Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1
(<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/716">#716</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157"><code>17456ed</code></a>
Build(deps): Bump tox from 4.26.0 to 4.27.0 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/715">#715</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406"><code>4c23690</code></a>
Build(deps): Bump pytest from 8.4.0 to 8.4.1 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/714">#714</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce"><code>7be2f68</code></a>
Build(deps): Bump mypy from 1.16.0 to 1.16.1 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/713">#713</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337"><code>5d62945</code></a>
Build(deps): Bump coverage from 7.9.0 to 7.9.1 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/712">#712</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b"><code>a6d85c1</code></a>
Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/694">#694</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/aio-libs/aiosignal/compare/v1.3.2...v1.4.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `multidict` from 6.6.2 to 6.6.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/aio-libs/multidict/releases">multidict's
releases</a>.</em></p>
<blockquote>
<h2>6.6.3</h2>
<h2>Bug fixes</h2>
<ul>
<li>
<p>Fixed inconsistencies generated by the C implementation of
<code>_md_shrink()</code> which might later lead to assertion failures
and crash -- by :user:<code>Romain-Geissler-1A</code>.</p>
<p><em>Related issues and pull requests on GitHub:</em>
<a
href="https://redirect.github.com/aio-libs/multidict/issues/1229">#1229</a>.</p>
</li>
</ul>
<hr />
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/aio-libs/multidict/blob/master/CHANGES.rst">multidict's
changelog</a>.</em></p>
<blockquote>
<h1>6.6.3</h1>
<p><em>(2025-06-30)</em></p>
<h2>Bug fixes</h2>
<ul>
<li>
<p>Fixed inconsistencies generated by the C implementation of
<code>_md_shrink()</code> which might later lead to assertion failures
and crash -- by :user:<code>Romain-Geissler-1A</code>.</p>
<p><em>Related issues and pull requests on GitHub:</em>
:issue:<code>1229</code>.</p>
</li>
</ul>
<hr />
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/aio-libs/multidict/commit/dbd686f37c1bc14355dce9c16dbbfae82f11dc00"><code>dbd686f</code></a>
Bump to 6.6.3 (<a
href="https://redirect.github.com/aio-libs/multidict/issues/1230">#1230</a>)</li>
<li><a
href="https://github.com/aio-libs/multidict/commit/ac621054343a7deffa429f3dfd3267a2f8b91e10"><code>ac62105</code></a>
Fixed inconsistencies generated by _md_shrink. (<a
href="https://redirect.github.com/aio-libs/multidict/issues/1229">#1229</a>)</li>
<li>See full diff in <a
href="https://github.com/aio-libs/multidict/compare/v6.6.2...v6.6.3">compare
view</a></li>
</ul>
</details>
<br />

Updates `ruff` to 0.12.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/releases">ruff's
releases</a>.</em></p>
<blockquote>
<h2>0.12.2</h2>
<h2>Release Notes</h2>
<h3>Preview features</h3>
<ul>
<li>[<code>flake8-pyi</code>] Expand <code>Optional[A]</code> to <code>A
| None</code> (<code>PYI016</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18572">#18572</a>)</li>
<li>[<code>pyupgrade</code>] Mark <code>UP008</code> fix safe if no
comments are in range (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18683">#18683</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>[<code>flake8-comprehensions</code>] Fix <code>C420</code> to
prepend whitespace when needed (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18616">#18616</a>)</li>
<li>[<code>perflint</code>] Fix <code>PERF403</code> panic on attribute
or subscription loop variable (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19042">#19042</a>)</li>
<li>[<code>pydocstyle</code>] Fix <code>D413</code> infinite loop for
parenthesized docstring (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18930">#18930</a>)</li>
<li>[<code>pylint</code>] Fix <code>PLW0108</code> autofix introducing a
syntax error when the lambda's body contains an assignment expression
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/18678">#18678</a>)</li>
<li>[<code>refurb</code>] Fix false positive on empty tuples
(<code>FURB168</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19058">#19058</a>)</li>
<li>[<code>ruff</code>] Allow more <code>field</code> calls from
<code>attrs</code> (<code>RUF009</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19021">#19021</a>)</li>
<li>[<code>ruff</code>] Fix syntax error introduced for an empty string
followed by a u-prefixed string (<code>UP025</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18899">#18899</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>flake8-executable</code>] Allow <code>uvx</code> in shebang
line (<code>EXE003</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18967">#18967</a>)</li>
<li>[<code>pandas</code>] Avoid flagging <code>PD002</code> if
<code>pandas</code> is not imported (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18963">#18963</a>)</li>
<li>[<code>pyupgrade</code>] Avoid PEP-604 unions with
<code>typing.NamedTuple</code> (<code>UP007</code>, <code>UP045</code>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/18682">#18682</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Document link between <code>import-outside-top-level
(PLC0415)</code> and
<code>lint.flake8-tidy-imports.banned-module-level-imports</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18733">#18733</a>)</li>
<li>Fix description of the <code>format.skip-magic-trailing-comma</code>
example (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19095">#19095</a>)</li>
<li>[<code>airflow</code>] Make <code>AIR302</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18988">#18988</a>)</li>
<li>[<code>airflow</code>] Make <code>AIR312</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18989">#18989</a>)</li>
<li>[<code>flake8-annotations</code>] Make <code>ANN401</code> example
error out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18974">#18974</a>)</li>
<li>[<code>flake8-async</code>] Make <code>ASYNC100</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18993">#18993</a>)</li>
<li>[<code>flake8-async</code>] Make <code>ASYNC105</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19002">#19002</a>)</li>
<li>[<code>flake8-async</code>] Make <code>ASYNC110</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18975">#18975</a>)</li>
<li>[<code>flake8-async</code>] Make <code>ASYNC210</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18977">#18977</a>)</li>
<li>[<code>flake8-async</code>] Make <code>ASYNC220</code>,
<code>ASYNC221</code>, and <code>ASYNC222</code> examples error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18978">#18978</a>)</li>
<li>[<code>flake8-async</code>] Make <code>ASYNC251</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18990">#18990</a>)</li>
<li>[<code>flake8-bandit</code>] Make <code>S201</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19017">#19017</a>)</li>
<li>[<code>flake8-bandit</code>] Make <code>S604</code> and
<code>S609</code> examples error out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19049">#19049</a>)</li>
<li>[<code>flake8-bugbear</code>] Make <code>B028</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19054">#19054</a>)</li>
<li>[<code>flake8-bugbear</code>] Make <code>B911</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19051">#19051</a>)</li>
<li>[<code>flake8-datetimez</code>] Make <code>DTZ011</code> example
error out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19055">#19055</a>)</li>
<li>[<code>flake8-datetimez</code>] Make <code>DTZ901</code> example
error out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19056">#19056</a>)</li>
<li>[<code>flake8-pyi</code>] Make <code>PYI032</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19061">#19061</a>)</li>
<li>[<code>flake8-pyi</code>] Make example error out-of-the-box
(<code>PYI014</code>, <code>PYI015</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19097">#19097</a>)</li>
<li>[<code>flake8-pyi</code>] Make example error out-of-the-box
(<code>PYI042</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19101">#19101</a>)</li>
<li>[<code>flake8-pyi</code>] Make example error out-of-the-box
(<code>PYI059</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19080">#19080</a>)</li>
<li>[<code>flake8-pyi</code>] Make example error out-of-the-box
(<code>PYI062</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19079">#19079</a>)</li>
<li>[<code>flake8-pytest-style</code>] Make example error out-of-the-box
(<code>PT023</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19104">#19104</a>)</li>
<li>[<code>flake8-pytest-style</code>] Make example error out-of-the-box
(<code>PT030</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19105">#19105</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.12.2</h2>
<h3>Preview features</h3>
<ul>
<li>[<code>flake8-pyi</code>] Expand <code>Optional[A]</code> to <code>A
| None</code> (<code>PYI016</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18572">#18572</a>)</li>
<li>[<code>pyupgrade</code>] Mark <code>UP008</code> fix safe if no
comments are in range (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18683">#18683</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>[<code>flake8-comprehensions</code>] Fix <code>C420</code> to
prepend whitespace when needed (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18616">#18616</a>)</li>
<li>[<code>perflint</code>] Fix <code>PERF403</code> panic on attribute
or subscription loop variable (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19042">#19042</a>)</li>
<li>[<code>pydocstyle</code>] Fix <code>D413</code> infinite loop for
parenthesized docstring (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18930">#18930</a>)</li>
<li>[<code>pylint</code>] Fix <code>PLW0108</code> autofix introducing a
syntax error when the lambda's body contains an assignment expression
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/18678">#18678</a>)</li>
<li>[<code>refurb</code>] Fix false positive on empty tuples
(<code>FURB168</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19058">#19058</a>)</li>
<li>[<code>ruff</code>] Allow more <code>field</code> calls from
<code>attrs</code> (<code>RUF009</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19021">#19021</a>)</li>
<li>[<code>ruff</code>] Fix syntax error introduced for an empty string
followed by a u-prefixed string (<code>UP025</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18899">#18899</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>flake8-executable</code>] Allow <code>uvx</code> in shebang
line (<code>EXE003</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18967">#18967</a>)</li>
<li>[<code>pandas</code>] Avoid flagging <code>PD002</code> if
<code>pandas</code> is not imported (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18963">#18963</a>)</li>
<li>[<code>pyupgrade</code>] Avoid PEP-604 unions with
<code>typing.NamedTuple</code> (<code>UP007</code>, <code>UP045</code>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/18682">#18682</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Document link between <code>import-outside-top-level
(PLC0415)</code> and
<code>lint.flake8-tidy-imports.banned-module-level-imports</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18733">#18733</a>)</li>
<li>Fix description of the <code>format.skip-magic-trailing-comma</code>
example (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19095">#19095</a>)</li>
<li>[<code>airflow</code>] Make <code>AIR302</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18988">#18988</a>)</li>
<li>[<code>airflow</code>] Make <code>AIR312</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18989">#18989</a>)</li>
<li>[<code>flake8-annotations</code>] Make <code>ANN401</code> example
error out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18974">#18974</a>)</li>
<li>[<code>flake8-async</code>] Make <code>ASYNC100</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18993">#18993</a>)</li>
<li>[<code>flake8-async</code>] Make <code>ASYNC105</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19002">#19002</a>)</li>
<li>[<code>flake8-async</code>] Make <code>ASYNC110</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18975">#18975</a>)</li>
<li>[<code>flake8-async</code>] Make <code>ASYNC210</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18977">#18977</a>)</li>
<li>[<code>flake8-async</code>] Make <code>ASYNC220</code>,
<code>ASYNC221</code>, and <code>ASYNC222</code> examples error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18978">#18978</a>)</li>
<li>[<code>flake8-async</code>] Make <code>ASYNC251</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/18990">#18990</a>)</li>
<li>[<code>flake8-bandit</code>] Make <code>S201</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19017">#19017</a>)</li>
<li>[<code>flake8-bandit</code>] Make <code>S604</code> and
<code>S609</code> examples error out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19049">#19049</a>)</li>
<li>[<code>flake8-bugbear</code>] Make <code>B028</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19054">#19054</a>)</li>
<li>[<code>flake8-bugbear</code>] Make <code>B911</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19051">#19051</a>)</li>
<li>[<code>flake8-datetimez</code>] Make <code>DTZ011</code> example
error out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19055">#19055</a>)</li>
<li>[<code>flake8-datetimez</code>] Make <code>DTZ901</code> example
error out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19056">#19056</a>)</li>
<li>[<code>flake8-pyi</code>] Make <code>PYI032</code> example error
out-of-the-box (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19061">#19061</a>)</li>
<li>[<code>flake8-pyi</code>] Make example error out-of-the-box
(<code>PYI014</code>, <code>PYI015</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19097">#19097</a>)</li>
<li>[<code>flake8-pyi</code>] Make example error out-of-the-box
(<code>PYI042</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19101">#19101</a>)</li>
<li>[<code>flake8-pyi</code>] Make example error out-of-the-box
(<code>PYI059</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19080">#19080</a>)</li>
<li>[<code>flake8-pyi</code>] Make example error out-of-the-box
(<code>PYI062</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19079">#19079</a>)</li>
<li>[<code>flake8-pytest-style</code>] Make example error out-of-the-box
(<code>PT023</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19104">#19104</a>)</li>
<li>[<code>flake8-pytest-style</code>] Make example error out-of-the-box
(<code>PT030</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19105">#19105</a>)</li>
<li>[<code>flake8-quotes</code>] Make example error out-of-the-box
(<code>Q003</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19106">#19106</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/astral-sh/ruff/commit/9bee8376a17401f9736b45fdefffb62edc2f1668"><code>9bee837</code></a>
Bump 0.12.2 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/19126">#19126</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/1c6717b149ddfbcd4aa0aee2e160320474392da9"><code>1c6717b</code></a>
Filter private symbols from stubs if they are internal types (<a
href="https://redirect.github.com/astral-sh/ruff/issues/19121">#19121</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/1b813cd5f1933ab05ba7b96ace798199429c0bd6"><code>1b813cd</code></a>
Fix description of the <code>format.skip-magic-trailing-comma</code>
example (<a
href="https://redirect.github.com/astral-sh/ruff/issues/19095">#19095</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/b00f68a23cedbd3a38fc25bac63638f0f11fc3f0"><code>b00f68a</code></a>
[<code>ruff</code>] Allow more <code>field</code> calls from
<code>attrs</code> (<code>RUF009</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/issues/19021">#19021</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/710c60f7135879b05f6c05a34085cd7af5c19e7f"><code>710c60f</code></a>
[<code>flake8-pytest-style</code>] Make example error out-of-the-box
(<code>PT023</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/issues/19104">#19104</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/811e25d16e22ca4ce124d9514232211c9a0b27a1"><code>811e25d</code></a>
[<code>flake8-pytest-style</code>] Make example error out-of-the-box
(<code>PT030</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/issues/19105">#19105</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/b78af2db4822dc55acbfb1024b30e69fe0262311"><code>b78af2d</code></a>
[<code>flake8-quotes</code>] Make example error out-of-the-box
(<code>Q003</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/issues/19106">#19106</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/4f36f0677f09b0ed1ba20f583b6f017c4f7d26c8"><code>4f36f06</code></a>
Document link between <code>import-outside-top-level (PLC0415)</code>
and `lint.flake8-t...</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/2589a2938ee58a1ff1b54a9558807ecb000ccca3"><code>2589a29</code></a>
[<code>flake8-simplify</code>] Make example error out-of-the-box
(<code>SIM113</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/issues/19109">#19109</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/26bb8f7b7189558520bb386867579768b5a17347"><code>26bb8f7</code></a>
[<code>flake8-simplify</code>] Make example error out-of-the-box
(<code>SIM401</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/issues/19110">#19110</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/0.12.1...0.12.2">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-actions bot pushed a commit to wxx9248/HTTPFolderFetch.py that referenced this pull request Jul 4, 2025
Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.2 to
1.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/aio-libs/aiosignal/releases">aiosignal's
releases</a>.</em></p>
<blockquote>
<h2>1.4.0</h2>
<h2>Features</h2>
<ul>
<li>
<p>Added decorator functionality to <code>Signal</code> as a convenient
way to add a callback -- by <code>@Vizonex</code>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code>_</p>
</li>
<li>
<p>Improved type safety by allowing callback parameters to be type
checked (typing-extensions is now required for Python &lt;3.13).
Parameters for a <code>Signal</code> callback should now be defined like
<code>Signal[int, str]</code> -- by <a
href="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/Vizonex"><code>@​Vizonex</code></a> and <a
href="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/Dreamsorcerer"><code>@​Dreamsorcerer</code></a>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code><em>,
<code>[#710](aio-libs/aiosignal#710)
&lt;https://github.com/aio-libs/aiosignal/pulls/710&gt;</code></em></p>
</li>
</ul>
<h2>Misc</h2>
<ul>
<li>Removed the sphinxcontrib-asyncio documentation dependency.
<code>[#528](aio-libs/aiosignal#528)
&lt;https://github.com/aio-libs/aiosignal/pull/528&gt;</code>_</li>
</ul>
<hr />
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst">aiosignal's
changelog</a>.</em></p>
<blockquote>
<h1>1.4.0 (2025-07-03)</h1>
<h2>Features</h2>
<ul>
<li>
<p>Added decorator functionality to <code>Signal</code> as a convenient
way to add a callback -- by <code>@Vizonex</code>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code>_</p>
</li>
<li>
<p>Improved type safety by allowing callback parameters to be type
checked (typing-extensions is now required for Python &lt;3.13).
Parameters for a <code>Signal</code> callback should now be defined like
<code>Signal[int, str]</code> -- by <a
href="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/Vizonex"><code>@​Vizonex</code></a> and <a
href="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/Dreamsorcerer"><code>@​Dreamsorcerer</code></a>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code><em>,
<code>[#710](aio-libs/aiosignal#710)
&lt;https://github.com/aio-libs/aiosignal/pulls/710&gt;</code></em></p>
</li>
</ul>
<h2>Misc</h2>
<ul>
<li>Removed the sphinxcontrib-asyncio documentation dependency.
<code>[#528](aio-libs/aiosignal#528)
&lt;https://github.com/aio-libs/aiosignal/pull/528&gt;</code>_</li>
</ul>
<hr />
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692"><code>1cf8014</code></a>
Fix deploy</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc"><code>892494c</code></a>
Release v1.4 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/718">#718</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7"><code>fa36082</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/719">#719</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265"><code>b7f68f1</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/717">#717</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45"><code>2b1acac</code></a>
Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1
(<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/716">#716</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157"><code>17456ed</code></a>
Build(deps): Bump tox from 4.26.0 to 4.27.0 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/715">#715</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406"><code>4c23690</code></a>
Build(deps): Bump pytest from 8.4.0 to 8.4.1 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/714">#714</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce"><code>7be2f68</code></a>
Build(deps): Bump mypy from 1.16.0 to 1.16.1 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/713">#713</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337"><code>5d62945</code></a>
Build(deps): Bump coverage from 7.9.0 to 7.9.1 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/712">#712</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b"><code>a6d85c1</code></a>
Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/694">#694</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/aio-libs/aiosignal/compare/v1.3.2...v1.4.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal&package-manager=uv&previous-version=1.3.2&new-version=1.4.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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Dreamsorcerer added a commit to aio-libs/aiohttp that referenced this pull request Jul 7, 2025
Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.2 to
1.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/aio-libs/aiosignal/releases">aiosignal's
releases</a>.</em></p>
<blockquote>
<h2>1.4.0</h2>
<h2>Features</h2>
<ul>
<li>
<p>Added decorator functionality to <code>Signal</code> as a convenient
way to add a callback -- by <code>@Vizonex</code>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code>_</p>
</li>
<li>
<p>Improved type safety by allowing callback parameters to be type
checked (typing-extensions is now required for Python &lt;3.13).
Parameters for a <code>Signal</code> callback should now be defined like
<code>Signal[int, str]</code> -- by <a
href="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/Vizonex"><code>@​Vizonex</code></a> and <a
href="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/Dreamsorcerer"><code>@​Dreamsorcerer</code></a>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code><em>,
<code>[#710](aio-libs/aiosignal#710)
&lt;https://github.com/aio-libs/aiosignal/pulls/710&gt;</code></em></p>
</li>
</ul>
<h2>Misc</h2>
<ul>
<li>Removed the sphinxcontrib-asyncio documentation dependency.
<code>[#528](aio-libs/aiosignal#528)
&lt;https://github.com/aio-libs/aiosignal/pull/528&gt;</code>_</li>
</ul>
<hr />
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst">aiosignal's
changelog</a>.</em></p>
<blockquote>
<h1>1.4.0 (2025-07-03)</h1>
<h2>Features</h2>
<ul>
<li>
<p>Added decorator functionality to <code>Signal</code> as a convenient
way to add a callback -- by <code>@Vizonex</code>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code>_</p>
</li>
<li>
<p>Improved type safety by allowing callback parameters to be type
checked (typing-extensions is now required for Python &lt;3.13).
Parameters for a <code>Signal</code> callback should now be defined like
<code>Signal[int, str]</code> -- by <a
href="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/Vizonex"><code>@​Vizonex</code></a> and <a
href="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/Dreamsorcerer"><code>@​Dreamsorcerer</code></a>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code><em>,
<code>[#710](aio-libs/aiosignal#710)
&lt;https://github.com/aio-libs/aiosignal/pulls/710&gt;</code></em></p>
</li>
</ul>
<h2>Misc</h2>
<ul>
<li>Removed the sphinxcontrib-asyncio documentation dependency.
<code>[#528](aio-libs/aiosignal#528)
&lt;https://github.com/aio-libs/aiosignal/pull/528&gt;</code>_</li>
</ul>
<hr />
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692"><code>1cf8014</code></a>
Fix deploy</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc"><code>892494c</code></a>
Release v1.4 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/718">#718</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7"><code>fa36082</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/719">#719</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265"><code>b7f68f1</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/717">#717</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45"><code>2b1acac</code></a>
Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1
(<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/716">#716</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157"><code>17456ed</code></a>
Build(deps): Bump tox from 4.26.0 to 4.27.0 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/715">#715</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406"><code>4c23690</code></a>
Build(deps): Bump pytest from 8.4.0 to 8.4.1 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/714">#714</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce"><code>7be2f68</code></a>
Build(deps): Bump mypy from 1.16.0 to 1.16.1 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/713">#713</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337"><code>5d62945</code></a>
Build(deps): Bump coverage from 7.9.0 to 7.9.1 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/712">#712</a>)</li>
<li><a
href="https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b"><code>a6d85c1</code></a>
Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/694">#694</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/aio-libs/aiosignal/compare/v1.3.2...v1.4.0">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal&package-manager=pip&previous-version=1.3.2&new-version=1.4.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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sam Bull <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
(cherry picked from commit 9571860)
Dreamsorcerer added a commit to aio-libs/aiohttp that referenced this pull request Jul 7, 2025
Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.2 to
1.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/aio-libs/aiosignal/releases">aiosignal's
releases</a>.</em></p>
<blockquote>
<h2>1.4.0</h2>
<h2>Features</h2>
<ul>
<li>
<p>Added decorator functionality to <code>Signal</code> as a convenient
way to add a callback -- by <code>@Vizonex</code>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code>_</p>
</li>
<li>
<p>Improved type safety by allowing callback parameters to be type
checked (typing-extensions is now required for Python &lt;3.13).
Parameters for a <code>Signal</code> callback should now be defined like
<code>Signal[int, str]</code> -- by <a
href="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/Vizonex"><code>@​Vizonex</code></a> and <a
href="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/Dreamsorcerer"><code>@​Dreamsorcerer</code></a>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code><em>,
<code>[#710](aio-libs/aiosignal#710)
&lt;https://github.com/aio-libs/aiosignal/pulls/710&gt;</code></em></p>
</li>
</ul>
<h2>Misc</h2>
<ul>
<li>Removed the sphinxcontrib-asyncio documentation dependency.
<code>[#528](aio-libs/aiosignal#528)
&lt;https://github.com/aio-libs/aiosignal/pull/528&gt;</code>_</li>
</ul>
<hr />
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a

href="https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst">aiosignal's
changelog</a>.</em></p>
<blockquote>
<h1>1.4.0 (2025-07-03)</h1>
<h2>Features</h2>
<ul>
<li>
<p>Added decorator functionality to <code>Signal</code> as a convenient
way to add a callback -- by <code>@Vizonex</code>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code>_</p>
</li>
<li>
<p>Improved type safety by allowing callback parameters to be type
checked (typing-extensions is now required for Python &lt;3.13).
Parameters for a <code>Signal</code> callback should now be defined like
<code>Signal[int, str]</code> -- by <a
href="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/Vizonex"><code>@​Vizonex</code></a> and <a
href="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/Dreamsorcerer"><code>@​Dreamsorcerer</code></a>.
<code>[#699](aio-libs/aiosignal#699)
&lt;https://github.com/aio-libs/aiosignal/pulls/699&gt;</code><em>,
<code>[#710](aio-libs/aiosignal#710)
&lt;https://github.com/aio-libs/aiosignal/pulls/710&gt;</code></em></p>
</li>
</ul>
<h2>Misc</h2>
<ul>
<li>Removed the sphinxcontrib-asyncio documentation dependency.
<code>[#528](aio-libs/aiosignal#528)
&lt;https://github.com/aio-libs/aiosignal/pull/528&gt;</code>_</li>
</ul>
<hr />
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a

href="https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692"><code>1cf8014</code></a>
Fix deploy</li>
<li><a

href="https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc"><code>892494c</code></a>
Release v1.4 (<a

href="https://redirect.github.com/aio-libs/aiosignal/issues/718">#718</a>)</li>
<li><a

href="https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7"><code>fa36082</code></a>
[pre-commit.ci] pre-commit autoupdate (<a

href="https://redirect.github.com/aio-libs/aiosignal/issues/719">#719</a>)</li>
<li><a

href="https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265"><code>b7f68f1</code></a>
[pre-commit.ci] pre-commit autoupdate (<a

href="https://redirect.github.com/aio-libs/aiosignal/issues/717">#717</a>)</li>
<li><a

href="https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45"><code>2b1acac</code></a>
Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1
(<a

href="https://redirect.github.com/aio-libs/aiosignal/issues/716">#716</a>)</li>
<li><a

href="https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157"><code>17456ed</code></a>
Build(deps): Bump tox from 4.26.0 to 4.27.0 (<a

href="https://redirect.github.com/aio-libs/aiosignal/issues/715">#715</a>)</li>
<li><a

href="https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406"><code>4c23690</code></a>
Build(deps): Bump pytest from 8.4.0 to 8.4.1 (<a

href="https://redirect.github.com/aio-libs/aiosignal/issues/714">#714</a>)</li>
<li><a

href="https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce"><code>7be2f68</code></a>
Build(deps): Bump mypy from 1.16.0 to 1.16.1 (<a

href="https://redirect.github.com/aio-libs/aiosignal/issues/713">#713</a>)</li>
<li><a

href="https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337"><code>5d62945</code></a>
Build(deps): Bump coverage from 7.9.0 to 7.9.1 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/712">#712</a>)</li>
<li><a

href="https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b"><code>a6d85c1</code></a>
Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (<a
href="https://redirect.github.com/aio-libs/aiosignal/issues/694">#694</a>)</li>
<li>Additional commits viewable in <a

href="https://github.com/aio-libs/aiosignal/compare/v1.3.2...v1.4.0">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility

score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal&package-manager=pip&previous-version=1.3.2&new-version=1.4.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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>

---------





(cherry picked from commit 9571860)

<!-- Thank you for your contribution! -->

## What do these changes do?

<!-- Please give a short brief about these changes. -->

## Are there changes in behavior for the user?

<!-- Outline any notable behaviour for the end users. -->

## Is it a substantial burden for the maintainers to support this?

<!--
Stop right there! Pause. Just for a minute... Can you think of anything
obvious that would complicate the ongoing development of this project?

Try to consider if you'd be able to maintain it throughout the next
5 years. Does it seem viable? Tell us your thoughts! We'd very much
love to hear what the consequences of merging this patch might be...

This will help us assess if your change is something we'd want to
entertain early in the review process. Thank you in advance!
-->

## Related issue number

<!-- Will this resolve any open issues? -->
<!-- Remember to prefix with 'Fixes' if it closes an issue (e.g. 'Fixes
#123'). -->

## Checklist

- [ ] I think the code is well written
- [ ] Unit tests for the changes exist
- [ ] Documentation reflects the changes
- [ ] If you provide code modification, please add yourself to
`CONTRIBUTORS.txt`
  * The format is &lt;Name&gt; &lt;Surname&gt;.
  * Please keep alphabetical order, the file is sorted by names.
- [ ] Add a new news fragment into the `CHANGES/` folder
  * name it `<issue_or_pr_num>.<type>.rst` (e.g. `588.bugfix.rst`)
  * if you don't have an issue number, change it to the pull request
    number after creating the PR
    * `.bugfix`: A bug fix for something the maintainers deemed an
      improper undesired behavior that got corrected to match
      pre-agreed expectations.
    * `.feature`: A new behavior, public APIs. That sort of stuff.
    * `.deprecation`: A declaration of future API removals and breaking
      changes in behavior.
    * `.breaking`: When something public is removed in a breaking way.
      Could be deprecated in an earlier release.
    * `.doc`: Notable updates to the documentation structure or build
      process.
    * `.packaging`: Notes for downstreams about unobvious side effects
      and tooling. Changes in the test invocation considerations and
      runtime assumptions.
    * `.contrib`: Stuff that affects the contributor experience. e.g.
      Running tests, building the docs, setting up the development
      environment.
    * `.misc`: Changes that are hard to assign to any of the above
      categories.
  * Make sure to use full sentences with correct case and punctuation,
    for example:
    ```rst
    Fixed issue with non-ascii contents in doctest text files
    -- by :user:`contributor-gh-handle`.
    ```

    Use the past tense or the present tense a non-imperative mood,
    referring to what's changed compared to the last released version
    of this project.

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants