{"id":12159,"name":"aiosignal","ecosystem":"pip","repository_url":"https://github.com/aio-libs/aiosignal","issues_count":150,"created_at":"2025-06-06T23:12:12.112Z","updated_at":"2025-06-06T23:12:12.112Z","purl":"pkg:pypi/aiosignal","metadata":{"id":2635009,"name":"aiosignal","ecosystem":"pypi","description":"aiosignal: a list of registered asynchronous callbacks","homepage":"https://github.com/aio-libs/aiosignal","licenses":"Apache 2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/aio-libs/aiosignal","keywords_array":[],"namespace":null,"versions_count":9,"first_release_published_at":"2019-08-29T17:48:45.000Z","latest_release_published_at":"2024-12-13T17:10:38.000Z","latest_release_number":"1.3.2","last_synced_at":"2025-05-29T04:42:23.208Z","created_at":"2022-04-10T09:59:34.433Z","updated_at":"2025-05-29T04:42:23.209Z","registry_url":"https://pypi.org/project/aiosignal/","install_command":"pip install aiosignal --index-url https://pypi.org/simple","documentation_url":"https://aiosignal.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 5 - Production/Stable","Framework :: AsyncIO","Intended Audience :: Developers","License :: OSI Approved :: Apache Software License","Operating System :: MacOS :: MacOS X","Operating System :: Microsoft :: Windows","Operating System :: POSIX","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only"],"normalized_name":"aiosignal"},"repo_metadata":{"id":35385134,"uuid":"205007356","full_name":"aio-libs/aiosignal","owner":"aio-libs","description":"aiosignal: a list of registered asynchronous callbacks","archived":false,"fork":false,"pushed_at":"2024-08-26T10:31:51.000Z","size":453,"stargazers_count":130,"open_issues_count":5,"forks_count":13,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-08-26T12:54:39.723Z","etag":null,"topics":["asyncio","python","signals"],"latest_commit_sha":null,"homepage":"https://aiosignal.aio-libs.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aio-libs.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-28T19:25:51.000Z","updated_at":"2024-08-26T10:31:54.000Z","dependencies_parsed_at":"2023-10-02T20:50:38.925Z","dependency_job_id":"6157d750-842e-4c07-a80a-521a2c44ad15","html_url":"https://github.com/aio-libs/aiosignal","commit_stats":{"total_commits":551,"total_committers":9,"mean_commits":61.22222222222222,"dds":0.5099818511796733,"last_synced_commit":"199bb75d52c4b6b9beb5e4b9eaff03e689c03fb0"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aio-libs","download_url":"https://codeload.github.com/aio-libs/aiosignal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":217014966,"owners_count":16111723,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"aio-libs","name":"aio-libs","uuid":"7049303","kind":"organization","description":"The set of asyncio-based libraries built with high quality","email":null,"website":"https://github.com/aio-libs/.github/discussions","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/7049303?v=4","repositories_count":67,"last_synced_at":"2024-05-21T03:08:48.813Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/aio-libs","funding_links":[],"total_stars":31831,"followers":781,"following":0,"created_at":"2022-11-02T16:23:24.182Z","updated_at":"2024-05-21T03:08:50.124Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aio-libs","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aio-libs/repositories"},"tags":[{"name":"v1.3.1","sha":"2b8907dc15f976d3747a16bd65f1681ae54249a3","kind":"commit","published_at":"2022-11-08T15:56:11.000Z","download_url":"https://codeload.github.com/aio-libs/aiosignal/tar.gz/v1.3.1","html_url":"https://github.com/aio-libs/aiosignal/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"8f9565e29a571449f3b1624fa40ee04b00065817","kind":"commit","published_at":"2022-11-08T15:33:13.000Z","download_url":"https://codeload.github.com/aio-libs/aiosignal/tar.gz/v1.3.0","html_url":"https://github.com/aio-libs/aiosignal/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"f9709bdab0b8344bfe7cfce3659b950ea89a0f77","kind":"tag","published_at":"2021-10-16T15:54:05.000Z","download_url":"https://codeload.github.com/aio-libs/aiosignal/tar.gz/v1.2.0","html_url":"https://github.com/aio-libs/aiosignal/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.2.0/manifests"},{"name":"v1.2.0a0","sha":"19a03bdaa8d7bd981360d8f824f9ccabf86b491d","kind":"tag","published_at":"2021-10-16T15:18:35.000Z","download_url":"https://codeload.github.com/aio-libs/aiosignal/tar.gz/v1.2.0a0","html_url":"https://github.com/aio-libs/aiosignal/releases/tag/v1.2.0a0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.2.0a0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.2.0a0/manifests"},{"name":"v1.1.3a2","sha":"93d9fe079e59cd87d8127eaec3db57cbfed5f70c","kind":"tag","published_at":"2020-12-23T14:17:20.000Z","download_url":"https://codeload.github.com/aio-libs/aiosignal/tar.gz/v1.1.3a2","html_url":"https://github.com/aio-libs/aiosignal/releases/tag/v1.1.3a2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.1.3a2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.1.3a2/manifests"},{"name":"v1.1.3a1","sha":"8ae91310ec7e1b7d51dfc0766a0140750387613d","kind":"tag","published_at":"2020-12-23T13:25:05.000Z","download_url":"https://codeload.github.com/aio-libs/aiosignal/tar.gz/v1.1.3a1","html_url":"https://github.com/aio-libs/aiosignal/releases/tag/v1.1.3a1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.1.3a1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.1.3a1/manifests"},{"name":"v1.1.3a0","sha":"ab15ddfe1b66cc65a015402dc9ea192540bf17fa","kind":"tag","published_at":"2020-12-23T13:16:50.000Z","download_url":"https://codeload.github.com/aio-libs/aiosignal/tar.gz/v1.1.3a0","html_url":"https://github.com/aio-libs/aiosignal/releases/tag/v1.1.3a0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.1.3a0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.1.3a0/manifests"},{"name":"v1.1.2","sha":"5be31b2395e155dd68f0bd7a398f17d4595b8966","kind":"tag","published_at":"2020-11-27T08:37:13.000Z","download_url":"https://codeload.github.com/aio-libs/aiosignal/tar.gz/v1.1.2","html_url":"https://github.com/aio-libs/aiosignal/releases/tag/v1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.1.2/manifests"},{"name":"v1.1.1","sha":"7142fcb44a5b85e483cdffbbe9410dee55257c28","kind":"tag","published_at":"2020-11-27T08:14:48.000Z","download_url":"https://codeload.github.com/aio-libs/aiosignal/tar.gz/v1.1.1","html_url":"https://github.com/aio-libs/aiosignal/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"6aa06b6ec64790620aa5e2ea754d8e55db4eb2e5","kind":"tag","published_at":"2020-10-13T15:47:20.000Z","download_url":"https://codeload.github.com/aio-libs/aiosignal/tar.gz/v1.1.0","html_url":"https://github.com/aio-libs/aiosignal/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"f65f91c9c2d60d971701ae87efdfd224261582ab","kind":"commit","published_at":"2019-11-11T15:43:02.000Z","download_url":"https://codeload.github.com/aio-libs/aiosignal/tar.gz/v1.0.0","html_url":"https://github.com/aio-libs/aiosignal/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.0.0/manifests"},{"name":"v1.0.0a0","sha":"a677c1b654685f342c522af31fbcffda3c001f82","kind":"tag","published_at":"2019-08-29T18:01:45.000Z","download_url":"https://codeload.github.com/aio-libs/aiosignal/tar.gz/v1.0.0a0","html_url":"https://github.com/aio-libs/aiosignal/releases/tag/v1.0.0a0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.0.0a0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Faiosignal/tags/v1.0.0a0/manifests"}]},"repo_metadata_updated_at":"2024-08-26T13:29:27.282Z","dependent_packages_count":419,"downloads":157108050,"downloads_period":"last-month","dependent_repos_count":20310,"rankings":{"downloads":0.015040159058852875,"dependent_repos_count":0.055024972166534916,"dependent_packages_count":0.07648471131148353,"stargazers_count":7.9547768095420635,"forks_count":12.166755012316424,"docker_downloads_count":0.041085312551012734,"average":3.384861162824395},"purl":"pkg:pypi/aiosignal","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/aiosignal","docker_dependents_count":6285,"docker_downloads_count":2254989884,"usage_url":"https://repos.ecosyste.ms/usage/pypi/aiosignal","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/aiosignal/dependencies","status":null,"funding_links":[],"critical":true,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/aiosignal/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/aiosignal/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/aiosignal/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/aiosignal/related_packages","maintainers":[{"uuid":"Andrew.Svetlov","login":"Andrew.Svetlov","name":null,"email":null,"url":null,"packages_count":75,"html_url":"https://pypi.org/user/Andrew.Svetlov/","role":null,"created_at":"2023-02-01T10:33:48.198Z","updated_at":"2023-02-01T10:33:48.198Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/Andrew.Svetlov/packages"},{"uuid":"mj","login":"mj","name":null,"email":null,"url":null,"packages_count":56,"html_url":"https://pypi.org/user/mj/","role":null,"created_at":"2023-02-01T10:33:48.594Z","updated_at":"2023-02-01T10:33:48.594Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/mj/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690055,"maintainers_count":292646,"namespaces_count":0,"keywords_count":228482,"github":"pypi","metadata":{"funded_packages_count":48953},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-05T05:19:27.498Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},"unique_repositories_count":111,"unique_repositories_count_past_30_days":2,"recent_issues":[{"uuid":"4609193755","node_id":"PR_kwDOJowhis7jtpDF","number":21,"state":"open","title":"Bump aiosignal from 1.3.1 to 1.4.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-08T00:17:37.000Z","updated_at":"2026-06-08T00:18:05.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"}],"path":null,"ecosystem":"pip"},"body":"Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal\u0026package-manager=pip\u0026previous-version=1.3.1\u0026new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/reitosu/ano_video_post/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/reitosu%2Fano_video_post/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"},{"uuid":"4515611911","node_id":"PR_kwDOSlygv87e-PrI","number":23,"state":"open","title":"pip(deps): Update aiosignal requirement from \u003e=1.3.0 to \u003e=1.4.0 in /PYTHON","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-25T08:47:23.000Z","updated_at":"2026-05-25T08:47:24.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"pip(deps): Update","packages":[{"name":"aiosignal","old_version":"\u003e=1.3.0","new_version":"\u003e=1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"}],"path":"/PYTHON","ecosystem":"pip"},"body":"Updates the requirements on [aiosignal](https://github.com/aio-libs/aiosignal) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.1 (2022-11-08)\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.0...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/muhammedfeyzihan/AnatoliaX-Auto-Trader/pull/23","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/muhammedfeyzihan%2FAnatoliaX-Auto-Trader/issues/23","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/23/packages"},{"uuid":"3883836862","node_id":"PR_kwDOKXLyYM7AzkpR","number":139,"state":"closed","title":"Bump the python-deps group across 1 directory with 47 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-03T05:32:23.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-02T04:02:19.000Z","updated_at":"2026-02-03T05:32:25.000Z","time_to_close":91804,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-deps","update_count":47,"packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"asgiref","old_version":"3.9.1","new_version":"3.11.0","repository_url":"https://github.com/django/asgiref"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"attrs","old_version":"23.1.0","new_version":"25.4.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"cachetools","old_version":"5.3.2","new_version":"7.0.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.8.3","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.6.1","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"flask-cors","old_version":"6.0.0","new_version":"6.0.2","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"frozenlist","old_version":"1.7.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"greenlet","old_version":"3.2.4","new_version":"3.3.1","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"importlib-metadata","old_version":"6.8.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"multidict","old_version":"6.6.4","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"nest-asyncio","old_version":"1.5.8","new_version":"1.6.0","repository_url":"https://github.com/erdewit/nest_asyncio"},{"name":"py-cord","old_version":"2.6.1","new_version":"2.7.0","repository_url":"https://github.com/Pycord-Development/pycord"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.16.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"python-engineio","old_version":"4.9.0","new_version":"4.13.0","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-socketio","old_version":"5.11.2","new_version":"5.16.0","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"simple-websocket","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/miguelgrinberg/simple-websocket"},{"name":"sqlalchemy","old_version":"2.0.30","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"werkzeug","old_version":"3.0.6","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"wsproto","old_version":"1.2.0","new_version":"1.3.2","repository_url":"https://github.com/python-hyper/wsproto"},{"name":"yarl","old_version":"1.20.1","new_version":"1.22.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"python-dotenv","old_version":"1.1.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.188.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"selenium","old_version":"4.32.0","new_version":"4.40.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"notion-client","old_version":"2.4.0","new_version":"2.7.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-auth-oauthlib","old_version":"1.2.2","new_version":"1.2.4","repository_url":"https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib"},{"name":"google-api-core","old_version":"2.25.1","new_version":"2.29.0","repository_url":"https://github.com/googleapis/python-api-core"},{"name":"apscheduler","old_version":"3.11.0","new_version":"3.11.2","repository_url":"https://github.com/agronholm/apscheduler"},{"name":"google-genai","old_version":"1.30.0","new_version":"1.61.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"google-generativeai","old_version":"0.8.5","new_version":"0.8.6","repository_url":"https://github.com/google/generative-ai-python"},{"name":"tzdata","old_version":"2025.2","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"colorlog","old_version":"6.9.0","new_version":"6.10.1","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"anthropic","old_version":"0.64.0","new_version":"0.77.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"1.102.0","new_version":"2.16.0","repository_url":"https://github.com/openai/openai-python"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 46 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.11.0` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `23.1.0` | `25.4.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.3.2` | `7.0.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `2026.1.4` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.1` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.6.1` | `2.8.0` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.0` | `6.0.2` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.7.0` | `1.8.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.4` | `3.3.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.8.0` | `8.7.1` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.6.4` | `6.7.1` |\n| [nest-asyncio](https://github.com/erdewit/nest_asyncio) | `1.5.8` | `1.6.0` |\n| [py-cord](https://github.com/Pycord-Development/pycord) | `2.6.1` | `2.7.0` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.16.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.9.0` | `4.13.0` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.11.2` | `5.16.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [simple-websocket](https://github.com/miguelgrinberg/simple-websocket) | `1.0.0` | `1.1.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.30` | `2.0.46` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.3` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.0.6` | `3.1.5` |\n| [wsproto](https://github.com/python-hyper/wsproto) | `1.2.0` | `1.3.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.20.1` | `1.22.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.1` | `1.2.1` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.188.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.32.0` | `4.40.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.0.0` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `2.4.0` | `2.7.0` |\n| [google-auth-oauthlib](https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib) | `1.2.2` | `1.2.4` |\n| [google-api-core](https://github.com/googleapis/python-api-core) | `2.25.1` | `2.29.0` |\n| [apscheduler](https://github.com/agronholm/apscheduler) | `3.11.0` | `3.11.2` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.30.0` | `1.61.0` |\n| [google-generativeai](https://github.com/google/generative-ai-python) | `0.8.5` | `0.8.6` |\n| [tzdata](https://github.com/python/tzdata) | `2025.2` | `2025.3` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.9.0` | `6.10.1` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.64.0` | `0.77.0` |\n| [openai](https://github.com/openai/openai-python) | `1.102.0` | `2.16.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `9.0.2` |\n\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.9.1 to 3.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.0 (2025-11-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003esync_to_async\u003c/code\u003e gains a \u003ccode\u003econtext\u003c/code\u003e parameter, similar to those for\n\u003ccode\u003easyncio.create_task\u003c/code\u003e, \u003ccode\u003eTaskGroup\u003c/code\u003e \u0026amp;co, that can be used on Python 3.11+ to\ncontrol the context used by the underlying task.\u003c/p\u003e\n\u003cp\u003eThe parent context is already propagated by default but the additional\ncontrol is useful if multiple \u003ccode\u003esync_to_async\u003c/code\u003e calls need to share the same\ncontext, e.g. when used with \u003ccode\u003easyncio.gather()\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.0 (2025-10-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded AsyncSingleThreadContext context manager to ensure multiple AsyncToSync\ninvocations use the same thread. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b7b15b20ddb51d1d8b6978165c0986686cd08c1d\"\u003e\u003ccode\u003eb7b15b2\u003c/code\u003e\u003c/a\u003e Releasing 3.11.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/901ee4f96db156f0b462690dd7c9f5aa99bcce03\"\u003e\u003ccode\u003e901ee4f\u003c/code\u003e\u003c/a\u003e Added a custom context parameter for the sync_to_async (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/2138f0317d79cedd065571447ae0a7571989550e\"\u003e\u003ccode\u003e2138f03\u003c/code\u003e\u003c/a\u003e Fixed typo in test file comment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/f587b122af17bdba5749c30b96d2237bc1c2dfdf\"\u003e\u003ccode\u003ef587b12\u003c/code\u003e\u003c/a\u003e Releasing 3.10.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b08087c3b6df811a0524585c4d4dafdc6b12c222\"\u003e\u003ccode\u003eb08087c\u003c/code\u003e\u003c/a\u003e Added AsyncSingleThreadContext (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-timeout` from 4.0.3 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/releases\"\u003easync-timeout's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst\"\u003easync-timeout's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.1 (2024-11-06)\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.0.0 (2024-10-31)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/cc52d410e733b302873e6e52db9a9b6578d053a4\"\u003e\u003ccode\u003ecc52d41\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/1af7d7165d598af03e51952a679c690690dc7f8e\"\u003e\u003ccode\u003e1af7d71\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3bf26d96e3d1830a0e72ddab9c6a2c87e1f4380a\"\u003e\u003ccode\u003e3bf26d9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/423\"\u003e#423\u003c/a\u003e: add requirements.txt to sdist package (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/380e8ba5bf77e3cd184df8a5f51dc929d93d8553\"\u003e\u003ccode\u003e380e8ba\u003c/code\u003e\u003c/a\u003e Mention condition import of asyncio.timeout / async_timeout.timeout in README...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/8a232d0f7fc1af88c8d921500d78bbefc2bc545c\"\u003e\u003ccode\u003e8a232d0\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3d3e3e45420ac6ea0ef77c9e32388e252e12ac4d\"\u003e\u003ccode\u003e3d3e3e4\u003c/code\u003e\u003c/a\u003e Bump to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/d5c21f3dee7eeb06823af77284ad2a899611b28e\"\u003e\u003ccode\u003ed5c21f3\u003c/code\u003e\u003c/a\u003e Mimic asyncio.Timeout behavior (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/a1111c2597b9ce8d34b823c1b993689339ea9fd6\"\u003e\u003ccode\u003ea1111c2\u003c/code\u003e\u003c/a\u003e Drop deprecated sync context manager support (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/00fd343ce6ba2ccc291c0f6e09fea8998cbfe3a1\"\u003e\u003ccode\u003e00fd343\u003c/code\u003e\u003c/a\u003e Imports cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/7b61b33ae0ecee0e0bb0e09f2e5787c647d4ffb8\"\u003e\u003ccode\u003e7b61b33\u003c/code\u003e\u003c/a\u003e Update CI config file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-timeout/compare/v4.0.3...v5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 23.1.0 to 25.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 5.3.2 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.0.0 (2026-02-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequire Python 3.10 or later (breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for passing \u003ccode\u003einfo\u003c/code\u003e as fourth positional parameter to\n\u003ccode\u003e@cached\u003c/code\u003e (breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for \u003ccode\u003ecache(self)\u003c/code\u003e returning \u003ccode\u003eNone\u003c/code\u003e with\n\u003ccode\u003e@cachedmethod\u003c/code\u003e (breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert the \u003ccode\u003e@cachedmethod\u003c/code\u003e wrappers to descriptors, deprecating\nits use with class methods and instances that do not provide a\nmutable \u003ccode\u003e__dict__\u003c/code\u003e attribute (potentially breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert the previously undocumented \u003ccode\u003e@cachedmethod\u003c/code\u003e attributes\n(\u003ccode\u003ecache\u003c/code\u003e, \u003ccode\u003ecache_lock\u003c/code\u003e, etc.) to properties for instance\nmethods, providing official support and documentation (potentially\nbreaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd an optional \u003ccode\u003einfo\u003c/code\u003e parameter to the \u003ccode\u003e@cachedmethod\u003c/code\u003e\ndecorator for reporting per-instance cache statistics.  Note that\nthis requires the instance's \u003ccode\u003e__dict__\u003c/code\u003e attribute to be a mutable\nmapping.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.6 (2026-01-27)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove typedkey performance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor documentation improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor testing improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor code readability improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.5 (2026-01-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation regarding \u003ccode\u003e@cachedmethod\u003c/code\u003e with \u003ccode\u003elock\u003c/code\u003e\nparameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd test cases for cache stampede scenarios.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ev6.2.4 (2025-12-15)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/28bbcba53fbd939858ed02f52579e362e3b4fce9\"\u003e\u003ccode\u003e28bbcba\u003c/code\u003e\u003c/a\u003e Release v7.0.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/45776b23b1bf33dbad62bd74290f64ed205ce669\"\u003e\u003ccode\u003e45776b2\u003c/code\u003e\u003c/a\u003e Minor code and documentation improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/51a70a9740981883c36bd1812b7cacd707ea264e\"\u003e\u003ccode\u003e51a70a9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/357\"\u003e#357\u003c/a\u003e: Update documentation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb72c21aab48bdd720fbe173ff1938bd5d923e43\"\u003e\u003ccode\u003ebb72c21\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/357\"\u003e#357\u003c/a\u003e: Add cache_info() support for \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/86352aed2bedb23aa0cc461a58e76bd667617eaa\"\u003e\u003ccode\u003e86352ae\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/357\"\u003e#357\u003c/a\u003e: Convert \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e decorators to descriptors.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/263cf3185fcec33aceb93704252e5f34e8f9d3e3\"\u003e\u003ccode\u003e263cf31\u003c/code\u003e\u003c/a\u003e Prepare v7.0.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/59d4db25cd7e75a49886bdf5e1a01665811b935f\"\u003e\u003ccode\u003e59d4db2\u003c/code\u003e\u003c/a\u003e Drop support for cache(self) returning None in \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/c933a9767348d43a570397de47455b98ecd6c191\"\u003e\u003ccode\u003ec933a97\u003c/code\u003e\u003c/a\u003e Drop support for passing \u0026quot;info\u0026quot; as fourth positional parameter of \u003ca href=\"https://github.com/cached\"\u003e\u003ccode\u003e@​cached\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/ae3d6bd7954ed14385501b40af6cfb486750f825\"\u003e\u003ccode\u003eae3d6bd\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a12c3b05a179f6d15e926784652935133d376755\"\u003e\u003ccode\u003ea12c3b0\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.1 to 6.0.2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.3.2...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.8.3 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.08.03...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.1/\"\u003ehttps://pypi.org/project/click/8.3.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/28\"\u003ehttps://github.com/pallets/click/milestone/28\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3039\"\u003e#3039\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3055\"\u003e#3055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through the \u003ccode\u003eContext.invoke()\u003c/code\u003e method. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3066\"\u003e#3066\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3068\"\u003e#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect behavior for multiple parameters using the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3071\"\u003e#3071\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3079\"\u003e#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is empty. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3019\"\u003e#3019\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3021\"\u003e#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to \u003ccode\u003etype_cast_value\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3069\"\u003e#3069\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3090\"\u003e#3090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters through the context inside parameter callbacks. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-11-15\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. :issue:\u003ccode\u003e3039\u003c/code\u003e\n:pr:\u003ccode\u003e3055\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through\nthe \u003ccode\u003eContext.invoke()\u003c/code\u003e method. :issue:\u003ccode\u003e3066\u003c/code\u003e :issue:\u003ccode\u003e3065\u003c/code\u003e :pr:\u003ccode\u003e3068\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect\nbehavior for multiple parameters using the same name. :issue:\u003ccode\u003e3071\u003c/code\u003e :pr:\u003ccode\u003e3079\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters\nthrough the context inside parameter callbacks. :issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3137\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is\nempty. :issue:\u003ccode\u003e3019\u003c/code\u003e :pr:\u003ccode\u003e3021\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to\n\u003ccode\u003etype_cast_value\u003c/code\u003e. :issue:\u003ccode\u003e3069\u003c/code\u003e :pr:\u003ccode\u003e3090\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in \u003ccode\u003eCliRunner\u003c/code\u003e. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1d038f270701498433cb432f54db89f95f07a845\"\u003e\u003ccode\u003e1d038f2\u003c/code\u003e\u003c/a\u003e release version 8.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/03f3889f505d0c9ca4f9d6810f9e4ba2799f2a66\"\u003e\u003ccode\u003e03f3889\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3141\"\u003e#3141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3867781222cb63693ca67df94352d29d8e6e2770\"\u003e\u003ccode\u003e3867781\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b91bb9548a5617b1197add95e084d569f57149c3\"\u003e\u003ccode\u003eb91bb95\u003c/code\u003e\u003c/a\u003e Provide altered context to callbacks to hide \u003ccode\u003eUNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/437e1e3295c7ec979fc1bf285bb402ca20d847e7\"\u003e\u003ccode\u003e437e1e3\u003c/code\u003e\u003c/a\u003e Temporarily provide a fake context to the callback to hide \u003ccode\u003eUNSET\u003c/code\u003e values as ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ea70da487b05d6bb758d472a3a9ffab4a5b7fcd5\"\u003e\u003ccode\u003eea70da4\u003c/code\u003e\u003c/a\u003e Don't test using a file in docs/ (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e27b307462b725722f620c69dd1d5509c032d18a\"\u003e\u003ccode\u003ee27b307\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003euv run --all-extras pyright --verifytypes click\u003c/code\u003e pass (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a92c573f3195c9da3058eadf1735d38af186d22c\"\u003e\u003ccode\u003ea92c573\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.6.1 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.8.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.10.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release. Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003cp\u003eThis release was published to PyPI using Trusted Publishing.\u003c/p\u003e\n\u003ch2\u003ednspython 2.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.9.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release.  Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns/btreezone.py provides another zone versioned implementation built on top of a\nB-tree.  It maintains DNSSEC sort order, labels nodes as delegation points or glue,\nand can find the \u0026quot;bounds\u0026quot; of a name (useful for DNSSEC responses).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/query.py now provides make_socket(), make_ssl_socket(), and make_ssl_context()\nto make using persistent connections with the query code easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/win32util.py now supports explicitly setting the configuration method used to get\nsystem dns info, using the set_config_method() function.   There is a new configuration\nmethod that uses the Win32 API, which can be set using\nset_config_method(ConfigMethod.Win32).  We are considering making the Win32 API\nthe default in the future as we believe it to be the most accurate.  Any feedback on\nit compared to the other methods is welcome.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe DSYNC record is now supported.  This type is still in draft stage at the IETF\nand is subject to change.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns.query.https() and dns.asyncquery.https() now support HTTP/3 and the http_version\nparameter may be used to specify which version to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the cryptography module is installed, then dnspython will now create deterministic\nECDSA signatures by default.  Cryptography, if installed, must be at least version 43.\nThanks to Jakob Schlyter for adding the feature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe RESINFO and WALLET RdataTypes are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe COOKIE and Report-Channel EDNS0 options are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAll supported RdataTypes can now be imported at a single time rather than lazily on\nfirst use by calling dns.rdata.load_all_types().\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe SVCB and HTTPS records now support the ohttp parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003exfr() and inbound_xfr() now share a common implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTokens are now supported for QUIC and HTTP/3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.from_wire() now saves the input wire format in the Message's \u0026quot;wire\u0026quot;\nattribute.  Likewise, dns.message.Message.to_wire() now records the generated\nwire format in that attribute.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe dns.message.Message object now has a get_options() helper to retrieve EDNS0\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/77fd94cd9716faf23e0a6e333f6568fc24284402\"\u003e\u003ccode\u003e77fd94c\u003c/code\u003e\u003c/a\u003e 2.8.0 versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/884f38345a8152342fe8ab5da8db9aab654051ba\"\u003e\u003ccode\u003e884f383\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/1938fe331f97376bf91c028fbfb8c7588c1b84f4\"\u003e\u003ccode\u003e1938fe3\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a35d6925efe20744e8cf7545d19d03ba06e7ab6f\"\u003e\u003ccode\u003ea35d692\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/c862baaf0d0aa36d2e7003dfe226cd6ad4d827c4\"\u003e\u003ccode\u003ec862baa\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/0945d5923d58048c17325975f70f0738c87570b4\"\u003e\u003ccode\u003e0945d59\u003c/code\u003e\u003c/a\u003e more lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8fa6766d2f7a2431372fc912fb334e752290ebf2\"\u003e\u003ccode\u003e8fa6766\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/641633503ee6b07bf382594ac04707072b90de18\"\u003e\u003ccode\u003e6416335\u003c/code\u003e\u003c/a\u003e Type syntax (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a4591447b7d6e38479bcddb14de3b69f314e7009\"\u003e\u003ccode\u003ea459144\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a0d5f172e89f30709b47b59fb0919d8cf137f611\"\u003e\u003ccode\u003ea0d5f17\u003c/code\u003e\u003c/a\u003e fix the all entries\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.6.1...v2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-cors` from 6.0.0 to 6.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/corydolphin/flask-cors/releases\"\u003eflask-cors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate license pyproject.toml by \u003ca href=\"https://github.com/wagenrace\"\u003e\u003ccode\u003e@​wagenrace\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/395\"\u003ecorydolphin/flask-cors#395\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wagenrace\"\u003e\u003ccode\u003e@​wagenrace\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/395\"\u003ecorydolphin/flask-cors#395\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.1...6.0.2\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.1...6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInvert regex sorting to make it correctly match the intent (sorting by specificity descending) \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1.dev\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/fa55dcbec68b3524a39e5057c35c29c221a27d64\"\u003e\u003ccode\u003efa55dcb\u003c/code\u003e\u003c/a\u003e Update license pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/a5003f391e56f74f11a3e509cd180787c75eb6b0\"\u003e\u003ccode\u003ea5003f3\u003c/code\u003e\u003c/a\u003e Fix README file extension in pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/4ad56d6c20252d36031c74ba8386a81e94286f40\"\u003e\u003ccode\u003e4ad56d6\u003c/code\u003e\u003c/a\u003e Fix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `frozenlist` from 1.7.0 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/frozenlist/releases\"\u003efrozenlist's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.0\u003c/h2\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe :file:\u003ccode\u003ereusable-cibuildwheel.yml\u003c/code\u003e workflow has been refactored to\nbe more generic and :file:\u003ccode\u003eci-cd.yml\u003c/code\u003e now holds all the configuration\ntoggles -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/668\"\u003e#668\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen building wheels, the source distribution is now passed directly\nto the \u003ccode\u003ecibuildwheel\u003c/code\u003e invocation -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/669\"\u003e#669\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBuilds and tests have been added to\n\u003ccode\u003eci-cd.yml\u003c/code\u003e for arm64 Windows wheels -- by :user:\u003ccode\u003efinnagin\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/677\"\u003e#677\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eStarted building wheels for CPython 3.14 -- by :user:\u003ccode\u003ekumaraditya303\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/681\"\u003e#681\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/682\"\u003e#682\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003e--config-settings=pure-python=false\u003c/code\u003e from :file:\u003ccode\u003erequirements/dev.txt\u003c/code\u003e.\nDevelopers on CPython still get accelerated builds by default. To explicitly build\na pure Python wheel, use \u003ccode\u003epip install -e . --config-settings=pure-python=true\u003c/code\u003e\n-- by :user:\u003ccode\u003ebdraco\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/687\"\u003e#687\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/frozenlist/blob/master/CHANGES.rst\"\u003efrozenlist's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev1.8.0\u003c/h1\u003e\n\u003cp\u003e\u003cem\u003e(2025-10-05)\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe :file:\u003ccode\u003ereusable-cibuildwheel.yml\u003c/code\u003e workflow has been refactored to\nbe more generic and :file:\u003ccode\u003eci-cd.yml\u003c/code\u003e now holds all the configuration\ntoggles -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e668\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen building wheels, the source distribution is now passed directly\nto the \u003ccode\u003ecibuildwheel\u003c/code\u003e invocation -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e669\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBuilds and tests have been added to\n\u003ccode\u003eci-cd.yml\u003c/code\u003e for arm64 Windows wheels -- by :user:\u003ccode\u003efinnagin\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e677\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eStarted building wheels for CPython 3.14 -- by :user:\u003ccode\u003ekumaraditya303\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e681\u003c/code\u003e, :issue:\u003ccode\u003e682\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003e--config-settings=pure-python=false\u003c/code\u003e from :file:\u003ccode\u003erequirements/dev.txt\u003c/code\u003e.\nDevelopers on CPython still get accelerated builds by default. To explicitly build\na pure Python wheel, use \u003ccode\u003epip install -e . --config-settings=pure-python=true\u003c/code\u003e\n-- by :user:\u003ccode\u003ebdraco\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e687\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/48324affeecc2fff8f84f38368f720426c0354cf\"\u003e\u003ccode\u003e48324af\u003c/code\u003e\u003c/a\u003e Release 1.8.0 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/698\"\u003e#698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/7e5eab0c6fef4898fe43827b68e2722a385a8383\"\u003e\u003ccode\u003e7e5eab0\u003c/code\u003e\u003c/a\u003e Add windows arm64 support (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/678\"\u003e#678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/a2c22c28622534e4d90abdd931acd9d9a2aaa457\"\u003e\u003ccode\u003ea2c22c2\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sphinx from 7.2.6 to 7.4.7 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/752b80a14924c53317b0b4cb4d8212a3daf06719\"\u003e\u003ccode\u003e752b80a\u003c/code\u003e\u003c/a\u003e Build(deps): Bump types-setuptools from 75.8.0.20250210 to 80.9.0.20250822 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/6b9d557b189dfc8f1f9afdfcc9b6ddd8ccfc9f76\"\u003e\u003ccode\u003e6b9d557\u003c/code\u003e\u003c/a\u003e Build(deps): Bump cython from 3.1.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/7c4ad20e8ef0e6dc7dc7bfa49067d30477401890\"\u003e\u003ccode\u003e7c4ad20\u003c/code\u003e\u003c/a\u003e Build(deps-dev): Bump tox from 4.11.4 to 4.30.3 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/65f35d660661309808804b119d8fedb950527dc4\"\u003e\u003ccode\u003e65f35d6\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pre-commit from 3.5.0 to 4.3.0 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/697\"\u003e#697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/1ad02630d8fabf2cc67c7b2549115440edbd1be9\"\u003e\u003ccode\u003e1ad0263\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 7.4.3 to 8.4.2 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/884ee492579139df7c634f20ee27133d06551935\"\u003e\u003ccode\u003e884ee49\u003c/code\u003e\u003c/a\u003e Build(deps): Bump aiohttp-theme from 0.1.6 to 0.1.7 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/689\"\u003e#689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/b2d618044281d0ef534253d8cf087f80569d492c\"\u003e\u003ccode\u003eb2d6180\u003c/code\u003e\u003c/a\u003e Fix dependabot updates (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/frozenlist/compare/v1.7.0...v1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `greenlet` from 3.2.4 to 3.3.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst\"\u003egreenlet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.3.1 (2026-01-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePublish Windows ARM binary wheels, where available.\u003c/li\u003e\n\u003cli\u003eFix compilation for 3.14t on Windows.\u003c/li\u003e\n\u003cli\u003ePublish Windows 3.14t binary wheels for Intel.\u003c/li\u003e\n\u003cli\u003eSwitch from Appveyor for Windows to Github Actions.\u003c/li\u003e\n\u003cli\u003eFix compilation on MIPS with GCC 15 and binutils 2.45. See \u003ccode\u003ePR 487 by Rosen Penev \u0026lt;https://github.com/python-greenlet/greenlet/pull/487\u0026gt;\u003c/code\u003e_. Note that\nthis is not a platform tested by this project's CI.\u003c/li\u003e\n\u003cli\u003eMove most project metadata into the static \u003ccode\u003epyproject.toml\u003c/code\u003e file.\nThis updates licensing information to use the modern\n\u003ccode\u003eLicense-Expression\u003c/code\u003e field. See \u003ccode\u003ePR 480 by mrbean-bremen \u0026lt;https://github.com/python-greenlet/greenlet/pull/480/\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e3.3.0 (2025-12-04)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.9.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitch to distributing manylinux_2_28 wheels instead of\nmanylinux2014 wheels. Likewise, switch from musllinux_1_1 to 1_2.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd initial support for free-threaded builds of CPython 3.14. Due to\nlimitations, we do not distribute binary wheels for free-threaded\nCPython on Windows. (Free-threaded CPython 3.13 may work, but is\nuntested and unsupported.)\u003c/p\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cp\u003eUnder some rare scenarios with free-threaded 3.14, the\ninterpreter may crash on accessing a variable or attribute or\nwhen shutting down. If this happens, try disabling the\nthread-local bytecode cache. See the greenlet documentation for\nmore details. See \u003ccode\u003ePR 472 by T. Wouters \u0026lt;https://github.com/python-greenl...\n\n_Description has been truncated_","html_url":"https://github.com/asusoda/platform/pull/139","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asusoda%2Fplatform/issues/139","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/139/packages"},{"uuid":"3852512447","node_id":"PR_kwDOHR9vV86_Miyr","number":503,"state":"open","title":"chore(deps): bump the dependencies group across 1 directory with 107 updates","user":"dependabot[bot]","labels":["skip-changelog","major","chore"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-25T03:57:14.000Z","updated_at":"2026-02-12T14:02:23.388Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"dependencies","update_count":107,"packages":[{"name":"aiofiles","old_version":"24.1.0","new_version":"25.1.0","repository_url":"https://github.com/Tinche/aiofiles"},{"name":"aiohappyeyeballs","old_version":"2.4.0","new_version":"2.6.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"aioitertools","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/omnilib/aioitertools"},{"name":"aiokafka","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/aio-libs/aiokafka"},{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"ansible-builder","old_version":"3.1.0","new_version":"3.1.1","repository_url":"https://github.com/ansible/ansible-builder"},{"name":"ansible-compat","old_version":"24.8.0","new_version":"24.10.0","repository_url":"https://github.com/ansible/ansible-compat"},{"name":"ansible-pygments","old_version":"0.1.1","new_version":"0.1.2","repository_url":"https://github.com/ansible-community/ansible-pygments"},{"name":"ansible-runner","old_version":"2.4.0","new_version":"2.4.2","repository_url":"https://github.com/ansible/ansible-runner"},{"name":"antsibull-changelog","old_version":"0.29.0","new_version":"0.35.0","repository_url":"https://github.com/ansible-community/antsibull-changelog"},{"name":"antsibull-core","old_version":"3.0.2","new_version":"3.5.0","repository_url":"https://github.com/ansible-community/antsibull-core"},{"name":"antsibull-docs","old_version":"2.13.1","new_version":"2.24.0","repository_url":"https://github.com/ansible-community/antsibull-docs"},{"name":"antsibull-docs-parser","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/ansible-community/antsibull-docs-parser"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"azure-core","old_version":"1.30.2","new_version":"1.38.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"babel","old_version":"2.16.0","new_version":"2.17.0","repository_url":"https://github.com/python-babel/babel"},{"name":"bindep","old_version":"2.11.0","new_version":"2.13.0"},{"name":"black","old_version":"24.8.0","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"botocore","old_version":"1.35.7","new_version":"1.42.34","repository_url":"https://github.com/boto/botocore"},{"name":"bracex","old_version":"2.5","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"build","old_version":"1.2.1","new_version":"1.4.0","repository_url":"https://github.com/pypa/build"},{"name":"cachetools","old_version":"5.5.0","new_version":"6.2.4","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2024.8.30","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.0","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/pallets/click"},{"name":"cryptography","old_version":"43.0.1","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.8","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"docutils","old_version":"0.20.1","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"drools-jpy","old_version":"0.3.9","new_version":"0.3.14","repository_url":"https://github.com/ansible/drools_jpy"},{"name":"exceptiongroup","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.15.4","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"frozenlist","old_version":"1.4.1","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"galaxy-importer","old_version":"0.4.24","new_version":"0.4.37","repository_url":"https://github.com/ansible/galaxy-importer"},{"name":"gitdb","old_version":"4.0.11","new_version":"4.0.12","repository_url":"https://github.com/gitpython-developers/gitdb"},{"name":"gitpython","old_version":"3.1.43","new_version":"3.1.46","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"idna","old_version":"3.8","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"importlib-metadata","old_version":"6.2.1","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"isodate","old_version":"0.6.1","new_version":"0.7.2","repository_url":"https://github.com/gweis/isodate"},{"name":"janus","old_version":"1.0.0","new_version":"2.0.0","repository_url":"https://github.com/aio-libs/janus"},{"name":"jaraco-context","old_version":"6.0.1","new_version":"6.1.0","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"jaraco-functools","old_version":"4.0.2","new_version":"4.4.0","repository_url":"https://github.com/jaraco/jaraco.functools"},{"name":"jinja2","old_version":"3.1.4","new_version":"3.1.6","repository_url":"https://github.com/pallets/jinja"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"jpy","old_version":"0.18.0","new_version":"1.3.0","repository_url":"https://github.com/jpy-consortium/jpy"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.25.1","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"jsonschema-specifications","old_version":"2023.12.1","new_version":"2025.9.1","repository_url":"https://github.com/python-jsonschema/jsonschema-specifications"},{"name":"keyring","old_version":"25.3.0","new_version":"25.7.0","repository_url":"https://github.com/jaraco/keyring"},{"name":"markdown","old_version":"3.7","new_version":"3.9","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"markupsafe","old_version":"2.1.5","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"mdit-py-plugins","old_version":"0.4.1","new_version":"0.4.2","repository_url":"https://github.com/executablebooks/mdit-py-plugins"},{"name":"mock","old_version":"5.1.0","new_version":"5.2.0","repository_url":"https://github.com/testing-cabal/mock"},{"name":"more-itertools","old_version":"10.4.0","new_version":"10.8.0","repository_url":"https://github.com/more-itertools/more-itertools"},{"name":"multidict","old_version":"6.0.5","new_version":"6.7.0","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"nh3","old_version":"0.2.18","new_version":"0.3.2","repository_url":"https://github.com/messense/nh3"},{"name":"packaging","old_version":"24.1","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pathspec","old_version":"0.12.1","new_version":"1.0.3","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"pbr","old_version":"6.1.0","new_version":"7.0.3"},{"name":"perky","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/larryhastings/perky"},{"name":"pip","old_version":"24.2","new_version":"25.3","repository_url":"https://github.com/pypa/pip"},{"name":"pkginfo","old_version":"1.10.0","new_version":"1.12.1.2"},{"name":"platformdirs","old_version":"4.2.2","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"psycopg","old_version":"3.1.18","new_version":"3.2.13","repository_url":"https://github.com/psycopg/psycopg"},{"name":"psycopg-binary","old_version":"3.1.18","new_version":"3.2.13","repository_url":"https://github.com/psycopg/psycopg"},{"name":"psycopg-pool","old_version":"3.2.2","new_version":"3.2.8","repository_url":"https://github.com/psycopg/psycopg"},{"name":"pycodestyle","old_version":"2.11.1","new_version":"2.14.0","repository_url":"https://github.com/PyCQA/pycodestyle"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pydantic","old_version":"2.8.2","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-core","old_version":"2.20.1","new_version":"2.41.5","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pyflakes","old_version":"3.1.0","new_version":"3.4.0","repository_url":"https://github.com/PyCQA/pyflakes"},{"name":"pygments","old_version":"2.18.0","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pyparsing","old_version":"3.1.4","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyproject-api","old_version":"1.7.1","new_version":"1.9.1","repository_url":"https://github.com/tox-dev/pyproject-api"},{"name":"pyproject-hooks","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/pypa/pyproject-hooks"},{"name":"python-daemon","old_version":"3.0.1","new_version":"3.1.2"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"readme-renderer","old_version":"43.0","new_version":"44.0","repository_url":"https://github.com/pypa/readme_renderer"},{"name":"referencing","old_version":"0.35.1","new_version":"0.36.2","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"resolvelib","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/sarugaku/resolvelib"},{"name":"rich","old_version":"13.8.0","new_version":"14.3.1","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.20.0","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"rstcheck","old_version":"6.2.4","new_version":"6.2.5","repository_url":"https://github.com/rstcheck/rstcheck"},{"name":"rstcheck-core","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/rstcheck/rstcheck-core"},{"name":"ruamel-yaml","old_version":"0.18.6","new_version":"0.19.1"},{"name":"ruamel-yaml-clib","old_version":"0.2.8","new_version":"0.2.15"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smmap","old_version":"5.0.1","new_version":"5.0.2","repository_url":"https://github.com/gitpython-developers/smmap"},{"name":"snowballstemmer","old_version":"2.2.0","new_version":"3.0.1","repository_url":"https://github.com/snowballstem/snowball"},{"name":"sphinx-ansible-theme","old_version":"0.10.3","new_version":"0.10.4","repository_url":"https://github.com/ansible-community/sphinx_ansible_theme"},{"name":"sphinx-rtd-theme","old_version":"2.0.0","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"tomli","old_version":"2.0.1","new_version":"2.4.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"twine","old_version":"5.1.1","new_version":"6.2.0","repository_url":"https://github.com/pypa/twine"},{"name":"typer","old_version":"0.12.5","new_version":"0.21.1","repository_url":"https://github.com/fastapi/typer"},{"name":"typer-config","old_version":"1.4.0","new_version":"1.4.2","repository_url":"https://github.com/maxb2/typer-config"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"1.26.20","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"virtualenv","old_version":"20.26.3","new_version":"20.36.1","repository_url":"https://github.com/pypa/virtualenv"},{"name":"wcmatch","old_version":"9.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"},{"name":"websockets","old_version":"13.0.1","new_version":"15.0.1","repository_url":"https://github.com/python-websockets/websockets"},{"name":"wrapt","old_version":"1.16.0","new_version":"2.0.1","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"yamllint","old_version":"1.35.1","new_version":"1.37.1","repository_url":"https://github.com/adrienverge/yamllint"},{"name":"yarl","old_version":"1.9.8","new_version":"1.22.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"zipp","old_version":"3.20.1","new_version":"3.23.0","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 107 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.4.0` | `2.6.1` |\n| [aioitertools](https://github.com/omnilib/aioitertools) | `0.12.0` | `0.13.0` |\n| [aiokafka](https://github.com/aio-libs/aiokafka) | `0.11.0` | `0.12.0` |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [ansible-builder](https://github.com/ansible/ansible-builder) | `3.1.0` | `3.1.1` |\n| [ansible-compat](https://github.com/ansible/ansible-compat) | `24.8.0` | `24.10.0` |\n| [ansible-pygments](https://github.com/ansible-community/ansible-pygments) | `0.1.1` | `0.1.2` |\n| [ansible-runner](https://github.com/ansible/ansible-runner) | `2.4.0` | `2.4.2` |\n| [antsibull-changelog](https://github.com/ansible-community/antsibull-changelog) | `0.29.0` | `0.35.0` |\n| [antsibull-core](https://github.com/ansible-community/antsibull-core) | `3.0.2` | `3.5.0` |\n| [antsibull-docs](https://github.com/ansible-community/antsibull-docs) | `2.13.1` | `2.24.0` |\n| [antsibull-docs-parser](https://github.com/ansible-community/antsibull-docs-parser) | `1.1.0` | `1.2.2` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.30.2` | `1.38.0` |\n| [babel](https://github.com/python-babel/babel) | `2.16.0` | `2.17.0` |\n| bindep | `2.11.0` | `2.13.0` |\n| [black](https://github.com/psf/black) | `24.8.0` | `25.11.0` |\n| [botocore](https://github.com/boto/botocore) | `1.35.7` | `1.42.34` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5` | `2.6` |\n| [build](https://github.com/pypa/build) | `1.2.1` | `1.4.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.5.0` | `6.2.4` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.8.30` | `2026.1.4` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.0` | `2.0.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.1.8` |\n| [cryptography](https://github.com/pyca/cryptography) | `43.0.1` | `46.0.3` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.8` | `0.4.0` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.20.1` | `0.22.4` |\n| [drools-jpy](https://github.com/ansible/drools_jpy) | `0.3.9` | `0.3.14` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.15.4` | `3.19.1` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.4.1` | `1.8.0` |\n| [galaxy-importer](https://github.com/ansible/galaxy-importer) | `0.4.24` | `0.4.37` |\n| [gitdb](https://github.com/gitpython-developers/gitdb) | `4.0.11` | `4.0.12` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.43` | `3.1.46` |\n| [idna](https://github.com/kjd/idna) | `3.8` | `3.11` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.2.1` | `8.7.1` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.1.0` |\n| [isodate](https://github.com/gweis/isodate) | `0.6.1` | `0.7.2` |\n| [janus](https://github.com/aio-libs/janus) | `1.0.0` | `2.0.0` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.0.1` | `6.1.0` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) | `4.0.2` | `4.4.0` |\n| [jinja2](https://github.com/pallets/jinja) | `3.1.4` | `3.1.6` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [jpy](https://github.com/jpy-consortium/jpy) | `0.18.0` | `1.3.0` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2023.12.1` | `2025.9.1` |\n| [keyring](https://github.com/jaraco/keyring) | `25.3.0` | `25.7.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.7` | `3.9` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `2.1.5` | `3.0.3` |\n| [mdit-py-plugins](https://github.com/executablebooks/mdit-py-plugins) | `0.4.1` | `0.4.2` |\n| [mock](https://github.com/testing-cabal/mock) | `5.1.0` | `5.2.0` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.4.0` | `10.8.0` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.0.5` | `6.7.0` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [nh3](https://github.com/messense/nh3) | `0.2.18` | `0.3.2` |\n| [packaging](https://github.com/pypa/packaging) | `24.1` | `26.0` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `0.12.1` | `1.0.3` |\n| [pbr](https://docs.openstack.org/pbr/latest/) | `6.1.0` | `7.0.3` |\n| [perky](https://github.com/larryhastings/perky) | `0.9.2` | `0.9.3` |\n| [pip](https://github.com/pypa/pip) | `24.2` | `25.3` |\n| [pkginfo](https://code.launchpad.net/~tseaver/pkginfo/trunk) | `1.10.0` | `1.12.1.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.2.2` | `4.4.0` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.1.18` | `3.2.13` |\n| [psycopg-binary](https://github.com/psycopg/psycopg) | `3.1.18` | `3.2.13` |\n| [psycopg-pool](https://github.com/psycopg/psycopg) | `3.2.2` | `3.2.8` |\n| [pycodestyle](https://github.com/PyCQA/pycodestyle) | `2.11.1` | `2.14.0` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.8.2` | `2.12.5` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.20.1` | `2.41.5` |\n| [pyflakes](https://github.com/PyCQA/pyflakes) | `3.1.0` | `3.4.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.19.2` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.1.4` | `3.3.2` |\n| [pyproject-api](https://github.com/tox-dev/pyproject-api) | `1.7.1` | `1.9.1` |\n| [pyproject-hooks](https://github.com/pypa/pyproject-hooks) | `1.1.0` | `1.2.0` |\n| python-daemon | `3.0.1` | `3.1.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.1` |\n| [readme-renderer](https://github.com/pypa/readme_renderer) | `43.0` | `44.0` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.36.2` |\n| [resolvelib](https://github.com/sarugaku/resolvelib) | `1.0.1` | `1.2.1` |\n| [rich](https://github.com/Textualize/rich) | `13.8.0` | `14.3.1` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.0` | `0.27.1` |\n| [rstcheck](https://github.com/rstcheck/rstcheck) | `6.2.4` | `6.2.5` |\n| [rstcheck-core](https://github.com/rstcheck/rstcheck-core) | `1.2.1` | `1.2.2` |\n| ruamel-yaml | `0.18.6` | `0.19.1` |\n| ruamel-yaml-clib | `0.2.8` | `0.2.15` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smmap](https://github.com/gitpython-developers/smmap) | `5.0.1` | `5.0.2` |\n| [snowballstemmer](https://github.com/snowballstem/snowball) | `2.2.0` | `3.0.1` |\n| [sphinx-ansible-theme](https://github.com/ansible-community/sphinx_ansible_theme) | `0.10.3` | `0.10.4` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `2.0.0` | `3.1.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.0.1` | `2.4.0` |\n| [twine](https://github.com/pypa/twine) | `5.1.1` | `6.2.0` |\n| [typer](https://github.com/fastapi/typer) | `0.12.5` | `0.21.1` |\n| [typer-config](https://github.com/maxb2/typer-config) | `1.4.0` | `1.4.2` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `1.26.20` | `2.6.3` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.26.3` | `20.36.1` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `9.0` | `10.1` |\n| [websockets](https://github.com/python-websockets/websockets) | `13.0.1` | `15.0.1` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.16.0` | `2.0.1` |\n| [yamllint](https://github.com/adrienverge/yamllint) | `1.35.1` | `1.37.1` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.9.8` | `1.22.0` |\n| [zipp](https://github.com/jaraco/zipp) | `3.20.1` | `3.23.0` |\n\n\nUpdates `aiofiles` from 24.1.0 to 25.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Tinche/aiofiles/releases\"\u003eaiofiles's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev25.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to \u003ca href=\"https://docs.astral.sh/uv/\"\u003euv\u003c/a\u003e + add Python v3.14 support.  (\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eruff\u003c/code\u003e formatter and linter. \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/216\"\u003e#216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 support. If you require it, use version 24.1.0. \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/204\"\u003e#204\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danielsmyers\"\u003e\u003ccode\u003e@​danielsmyers\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/185\"\u003eTinche/aiofiles#185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stankudrow\"\u003e\u003ccode\u003e@​stankudrow\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/192\"\u003eTinche/aiofiles#192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/221\"\u003eTinche/aiofiles#221\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0\"\u003ehttps://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Tinche/aiofiles/blob/main/CHANGELOG.md\"\u003eaiofiles's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.1.0 (2025-10-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to \u003ca href=\"https://docs.astral.sh/uv/\"\u003euv\u003c/a\u003e + add Python v3.14 support.\n(\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eruff\u003c/code\u003e formatter and linter.\n\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/216\"\u003e#216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 support. If you require it, use version 24.1.0.\n\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/204\"\u003e#204\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/348f5ef6561c2b2c8a7497bd10487eab4102332f\"\u003e\u003ccode\u003e348f5ef\u003c/code\u003e\u003c/a\u003e v25.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/5e1bb8f12b09bce440cc9d1e28387d239cbc2577\"\u003e\u003ccode\u003e5e1bb8f\u003c/code\u003e\u003c/a\u003e docs: update readme to use ruff badge (\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/issues/221\"\u003e#221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/6fdc25c7812d6738ccf51c5e7d4cd68500053a52\"\u003e\u003ccode\u003e6fdc25c\u003c/code\u003e\u003c/a\u003e Move to uv. (\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/1989132423dc300c61e22434abd02725e922ddeb\"\u003e\u003ccode\u003e1989132\u003c/code\u003e\u003c/a\u003e set 'function' as a default fixture loop scope value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/8986452a1b28b109903078f8e9a805ec01e248a6\"\u003e\u003ccode\u003e8986452\u003c/code\u003e\u003c/a\u003e add the 'asyncio_default_fixture_loop_scope=session' option\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/ccab1ff77640c59b353046cb528c25ffa11caa73\"\u003e\u003ccode\u003eccab1ff\u003c/code\u003e\u003c/a\u003e update pytest-asyncio==1.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/8727c96f5be46235af412a9fe504ba7c149df7f3\"\u003e\u003ccode\u003e8727c96\u003c/code\u003e\u003c/a\u003e add PR \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/issues/216\"\u003e#216\u003c/a\u003e into the CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/a9388e5f8de9142c3e920917775e741bbf9f73b2\"\u003e\u003ccode\u003ea9388e5\u003c/code\u003e\u003c/a\u003e add TID and ignore TID252\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/760366489aed1fb041ef35652e2babb1870973d0\"\u003e\u003ccode\u003e7603664\u003c/code\u003e\u003c/a\u003e remove [ruff].exclude keyval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/7c49a5c5f2520233198487145423a7842805d740\"\u003e\u003ccode\u003e7c49a5c\u003c/code\u003e\u003c/a\u003e add final newlines\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiohappyeyeballs` from 2.4.0 to 2.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/releases\"\u003eaiohappyeyeballs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.6.1 (2025-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve TypeError on import for Python \u0026lt; 3.9.2 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/151\"\u003e#151\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/2042c82f9978f41c31b58aa4e3d8fc3b9c3ec2ec\"\u003e\u003ccode\u003e2042c82\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.6.0...v2.6.1\"\u003ev2.6.0...v2.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.6.0 (2025-03-11)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edocs\u003c/strong\u003e: Publish documentation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/149\"\u003e#149\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/42352736d12c60d500c63b9598ffab05ef5e8829\"\u003e\u003ccode\u003e4235273\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCreates an api_reference.rst file to expose the existing documentation for the few functions that have docstrings, as well as add documentation for AddrInfoType and SocketFactoryType. Now, these can be properly pointed to by other projects' documentation.\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.5.0...v2.6.0\"\u003ev2.5.0...v2.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.5.0 (2025-03-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd callback for users to customize socket creation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/147\"\u003e#147\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/8e1bc6a4bc6282ccf29db441c33dd8d806003ffd\"\u003e\u003ccode\u003e8e1bc6a\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCo-authored-by: Kieren \u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.4.8...v2.5.0\"\u003ev2.4.8...v2.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.4.8 (2025-03-04)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClose runner up sockets in the event there are multiple winners (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/143\"\u003e#143\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/476a05b956627700baa84eb6aac28c395da92a9f\"\u003e\u003ccode\u003e476a05b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe first attempt to fix this was to use the cpython staggered race updates in \u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/142\"\u003e#142\u003c/a\u003e but there is still a race there where there can be multiple winners. Instead we now accept that we will not be able to cancel all coros in time and there will always be a risk of multiple winners. We store all sockets in a set that were not already cleaned up and we close all but the first winner after the staggered race finishes.\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.4.7...v2.4.8\"\u003ev2.4.7...v2.4.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.4.7 (2025-03-04)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/blob/main/CHANGELOG.md\"\u003eaiohappyeyeballs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.6.1 (2025-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve typeerror on import for python \u0026lt; 3.9.2 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/151\"\u003e#151\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/2042c82f9978f41c31b58aa4e3d8fc3b9c3ec2ec\"\u003e\u003ccode\u003e2042c82\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.6.0 (2025-03-11)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish documentation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/149\"\u003e#149\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/42352736d12c60d500c63b9598ffab05ef5e8829\"\u003e\u003ccode\u003e4235273\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.0 (2025-03-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd callback for users to customize socket creation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/147\"\u003e#147\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/8e1bc6a4bc6282ccf29db441c33dd8d806003ffd\"\u003e\u003ccode\u003e8e1bc6a\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.8 (2025-03-04)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClose runner up sockets in the event there are multiple winners (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/143\"\u003e#143\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/476a05b956627700baa84eb6aac28c395da92a9f\"\u003e\u003ccode\u003e476a05b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.7 (2025-03-04)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve warnings when running tests (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/144\"\u003e#144\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/e96264aec89b9bd34d37413f610d039c56393a48\"\u003e\u003ccode\u003ee96264a\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.6 (2025-02-07)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure all timers are cancelled when after staggered race finishes (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/136\"\u003e#136\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/f75891d8974693b24af9789a8981ed7f6bc55c5c\"\u003e\u003ccode\u003ef75891d\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.5 (2025-02-07)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKeep classifiers in project to avoid automatic enrichment (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/134\"\u003e#134\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/99edb20e9d3e53ead65b55cb3e93c22c03d06599\"\u003e\u003ccode\u003e99edb20\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove classifiers to prevent recalculation by poetry (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/131\"\u003e#131\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/66e1c90ae81f71c7039cd62c60417a96202d906c\"\u003e\u003ccode\u003e66e1c90\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.4 (2024-11-30)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle oserror on failure to close socket instead of raising indexerror (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/114\"\u003e#114\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/c542f684d329fed04093caa2b31d8f7f6e0e0949\"\u003e\u003ccode\u003ec542f68\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.3 (2024-09-30)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/e3bd5bdf44f5d187802de6dcb08d27e1ca6da048\"\u003e\u003ccode\u003ee3bd5bd\u003c/code\u003e\u003c/a\u003e 2.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/2042c82f9978f41c31b58aa4e3d8fc3b9c3ec2ec\"\u003e\u003ccode\u003e2042c82\u003c/code\u003e\u003c/a\u003e fix: resolve TypeError on import for Python \u0026lt; 3.9.2 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/b23d9194d6db1c4d237da0da623a081573385915\"\u003e\u003ccode\u003eb23d919\u003c/code\u003e\u003c/a\u003e chore: remove unused CI exclude for Python 3.8.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/36149e7194d9a24fc8109265dee80fecd362f449\"\u003e\u003ccode\u003e36149e7\u003c/code\u003e\u003c/a\u003e 2.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/42352736d12c60d500c63b9598ffab05ef5e8829\"\u003e\u003ccode\u003e4235273\u003c/code\u003e\u003c/a\u003e feat(docs): publish documentation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/17d5e48488f7b533efea33ebb89c25e7b4eda7ad\"\u003e\u003ccode\u003e17d5e48\u003c/code\u003e\u003c/a\u003e chore(pre-commit.ci): pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/148\"\u003e#148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/3fed4432036740392483608a9da86637cf1bd64b\"\u003e\u003ccode\u003e3fed443\u003c/code\u003e\u003c/a\u003e 2.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/8e1bc6a4bc6282ccf29db441c33dd8d806003ffd\"\u003e\u003ccode\u003e8e1bc6a\u003c/code\u003e\u003c/a\u003e feat: add callback for users to customize socket creation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/c4ab1e5409fe086c12932e47dc4a305eb15b4091\"\u003e\u003ccode\u003ec4ab1e5\u003c/code\u003e\u003c/a\u003e 2.4.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/476a05b956627700baa84eb6aac28c395da92a9f\"\u003e\u003ccode\u003e476a05b\u003c/code\u003e\u003c/a\u003e fix: close runner up sockets in the event there are multiple winners (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.4.0...v2.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aioitertools` from 0.12.0 to 0.13.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aioitertools/blob/main/CHANGELOG.md\"\u003eaioitertools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.13.0\u003c/h2\u003e\n\u003cp\u003eMaintenance release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eModernized project metadata (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed references to old branch (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/209\"\u003e#209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTested up to Python 3.14 (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse modern type annotations, clean up lint (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/219\"\u003e#219\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/220\"\u003e#220\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/221\"\u003e#221\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.12.0...v0.13.0\n     1\tAlireza Ghasemi\n     6\tAmethyst Reese\n    10\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/47a2068abc2c7e34bff1a188cb5ce66fa24d9404\"\u003e\u003ccode\u003e47a2068\u003c/code\u003e\u003c/a\u003e Version bump v0.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/e1a9219e58fb948223c292715e83ec1281c3a5e2\"\u003e\u003ccode\u003ee1a9219\u003c/code\u003e\u003c/a\u003e Enable RUF rules (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/221\"\u003e#221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/a744b4a9951aaa92fabb85fc401a7c287755eeee\"\u003e\u003ccode\u003ea744b4a\u003c/code\u003e\u003c/a\u003e Ruff upgrade lint fixes (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/220\"\u003e#220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/3bcf4e9bef9154589ee90b0bf9185f0fe04e1c39\"\u003e\u003ccode\u003e3bcf4e9\u003c/code\u003e\u003c/a\u003e Switch from flake8 to ruff (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/1e3e55cd0fe6ee61064d2c325fb0617f08e83f4a\"\u003e\u003ccode\u003e1e3e55c\u003c/code\u003e\u003c/a\u003e Bump ufmt from 2.7.1 to 2.8.0 (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/198\"\u003e#198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/4c8b4f8a873cf66a4c729002ddc74b4bf32f03ab\"\u003e\u003ccode\u003e4c8b4f8\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.1.1 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/8524be5b77433e81eb6ecf8739ffe38844e6ca8f\"\u003e\u003ccode\u003e8524be5\u003c/code\u003e\u003c/a\u003e Bump black from 24.8.0 to 25.9.0 (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/218\"\u003e#218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/78e7205fb4d85686b5e459152ddc06fc1feee538\"\u003e\u003ccode\u003e78e7205\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.11.2 to 1.18.2 (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/eafa768f4274f922cfe74afaa1bfb5549f887fb6\"\u003e\u003ccode\u003eeafa768\u003c/code\u003e\u003c/a\u003e Bump coverage from 7.6.1 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/216\"\u003e#216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/15c764cfe45e9972e27bef5cb66a12fdf8a3f577\"\u003e\u003ccode\u003e15c764c\u003c/code\u003e\u003c/a\u003e Bump flit from 3.9.0 to 3.12.0 (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/214\"\u003e#214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aioitertools/compare/v0.12.0...v0.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiokafka` from 0.11.0 to 0.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiokafka/releases\"\u003eaiokafka's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.12.0\u003c/h2\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBuild mac x86_64 wheels (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1029\"\u003e#1029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13, drop support for Python 3.8 due to end of life (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove duplicate error logging during rebalance (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1025\"\u003e#1025\u003c/a\u003e by \u003ca href=\"https://github.com/y4n9squared\"\u003e\u003ccode\u003e@​y4n9squared\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eQuote username in SCRAM auth (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1043\"\u003e#1043\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eImproved Documentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix building of readthedocs documentation (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1034\"\u003e#1034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo in producer documentation (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1036\"\u003e#1036\u003c/a\u003e by \u003ca href=\"https://github.com/lgo\"\u003e\u003ccode\u003e@​lgo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiokafka/blob/master/CHANGES.rst\"\u003eaiokafka's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.12.0 (2024-10-26)\u003c/h1\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBuild mac x86_64 wheels (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1029\"\u003e#1029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13, drop support for Python 3.8 due to end of life (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove duplicate error logging during rebalance (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1025\"\u003e#1025\u003c/a\u003e by \u003ca href=\"https://github.com/y4n9squared\"\u003e\u003ccode\u003e@​y4n9squared\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eQuote username in SCRAM auth (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1043\"\u003e#1043\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eImproved Documentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix building of readthedocs documentation (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1034\"\u003e#1034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo in producer documentation (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1036\"\u003e#1036\u003c/a\u003e by \u003ca href=\"https://github.com/lgo\"\u003e\u003ccode\u003e@​lgo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/f6c79a086f1d5cf2b6e94e65db05970c4729c7a0\"\u003e\u003ccode\u003ef6c79a0\u003c/code\u003e\u003c/a\u003e Update actions, fix publishing (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/71335629d503cb3ad260de662e23c32402c8368b\"\u003e\u003ccode\u003e7133562\u003c/code\u003e\u003c/a\u003e Prepare 0.12.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/f7861f682c9b5cd78411e7fd6ea0fc4bf92ded33\"\u003e\u003ccode\u003ef7861f6\u003c/code\u003e\u003c/a\u003e Remove duplicate error log during rebalance (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/e7c9033b7d44c691073e9e25438f2c8ec523a14f\"\u003e\u003ccode\u003ee7c9033\u003c/code\u003e\u003c/a\u003e Add Python 3.13, remove 3.8 (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/608ab2443510c92226de0eb3fc2065f5d1307e12\"\u003e\u003ccode\u003e608ab24\u003c/code\u003e\u003c/a\u003e Fix ClusterMetadata request_update() (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/4cff9d77014e922c6e458224ed6abbae4fa07c4d\"\u003e\u003ccode\u003e4cff9d7\u003c/code\u003e\u003c/a\u003e Made classes enum.IntEnums where appropriate. (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/01c60cd9c45e975aee8d4932247108a9e639d026\"\u003e\u003ccode\u003e01c60cd\u003c/code\u003e\u003c/a\u003e Quote username in SCRAM auth (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1043\"\u003e#1043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/e2afc034b59626242b51b06b30a62c565ef491d9\"\u003e\u003ccode\u003ee2afc03\u003c/code\u003e\u003c/a\u003e fix type on producer docs (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1036\"\u003e#1036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/f9dbed1a00337971e6569c6611a98c1ab294fe98\"\u003e\u003ccode\u003ef9dbed1\u003c/code\u003e\u003c/a\u003e Add readthedocs config (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1034\"\u003e#1034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/2f976d0301682f0fe631c04c08d653be0d20ccb1\"\u003e\u003ccode\u003e2f976d0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1030\"\u003e#1030\u003c/a\u003e from webknjaz/maintenance/gha-pypi-tokenless-publishing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiokafka/compare/v0.11.0...v0.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ansible-builder` from 3.1.0 to 3.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible/ansible-builder/releases\"\u003eansible-builder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: capitalize 'as' to follow from-as-casing rule (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet file permissions on context files created from inline reqs (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/751\"\u003e#751\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew 3.1 porting guide (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/701\"\u003e#701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd simple EE file example by (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/739\"\u003e#739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd scenario guide for validating Python deps (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ansible/ansible-builder/compare/3.1.0...3.1.1\"\u003ehttps://github.com/ansible/ansible-builder/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/ea0df628f9d36b34d64b0d93f3491ecd17ef4426\"\u003e\u003ccode\u003eea0df62\u003c/code\u003e\u003c/a\u003e Add scenario guide for validating Python deps (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/757\"\u003e#757\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/97f046fac1f7b7bdbaae17b2efda0837d86362db\"\u003e\u003ccode\u003e97f046f\u003c/code\u003e\u003c/a\u003e Increase integration test timeout to 9m (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/754\"\u003e#754\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/ecc55c1205ba48f24ad08820f8ad9629d076a4fa\"\u003e\u003ccode\u003eecc55c1\u003c/code\u003e\u003c/a\u003e Set file permissions on context files created from inline reqs (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/748\"\u003e#748\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/751\"\u003e#751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/ba2be48febb6a4440bbc0f67c63f5c71dfc32d15\"\u003e\u003ccode\u003eba2be48\u003c/code\u003e\u003c/a\u003e Add simple EE file example (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/737\"\u003e#737\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/739\"\u003e#739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/4af7213490232d5b9fbf2576c6370fd40f75adc4\"\u003e\u003ccode\u003e4af7213\u003c/code\u003e\u003c/a\u003e 🧪🚑 Clone deep in integration tests (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/735\"\u003e#735\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/d12c45c01d08d337a72916cf4e1a48bac16a2bd5\"\u003e\u003ccode\u003ed12c45c\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/731\"\u003e#731\u003c/a\u003e/1b659226 backport][release_3.1] 🧪 Use \u003ccode\u003ereusable-tox.yml\u003c/code\u003e @ `tox-dev/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/5defa3c9f05cfc8212abd3da57926cdc29f7e45e\"\u003e\u003ccode\u003e5defa3c\u003c/code\u003e\u003c/a\u003e docs: Fixing typo in example (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/6fb2fc098de0092e05c238bc41f596629e9d6598\"\u003e\u003ccode\u003e6fb2fc0\u003c/code\u003e\u003c/a\u003e Fix doc errors in 3.1 porting guide (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/704\"\u003e#704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/5efc3cfdd63cf1f60efec6d9e99ced47c9c2ce48\"\u003e\u003ccode\u003e5efc3cf\u003c/code\u003e\u003c/a\u003e Add 3.1 porting guide (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/701\"\u003e#701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/49b8a5fc4c9c4839cb57c03473f50bdc8d9a6ee8\"\u003e\u003ccode\u003e49b8a5f\u003c/code\u003e\u003c/a\u003e Modify scripts/check_galaxy to return more descriptive error message(s) (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible/ansible-builder/compare/3.1.0...3.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ansible-compat` from 24.8.0 to 24.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible/ansible-compat/releases\"\u003eansible-compat's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev24.10.0\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for py313 (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/416\"\u003e#416\u003c/a\u003e) \u003ca href=\"https://github.com/ssbarnea\"\u003e\u003ccode\u003e@​ssbarnea\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRe-init plugin loader after collections installation (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/411\"\u003e#411\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/412\"\u003e#412\u003c/a\u003e) \u003ca href=\"https://github.com/irozet12\"\u003e\u003ccode\u003e@​irozet12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev24.9.1\u003c/h2\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid running prepare ansible paths twice (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/409\"\u003e#409\u003c/a\u003e) \u003ca href=\"https://github.com/ssbarnea\"\u003e\u003ccode\u003e@​ssbarnea\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid duplicate paths when path injection (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/407\"\u003e#407\u003c/a\u003e) \u003ca href=\"https://github.com/ssbarnea\"\u003e\u003ccode\u003e@​ssbarnea\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eProvide more detail on multiple collection installs (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/405\"\u003e#405\u003c/a\u003e) \u003ca href=\"https://github.com/mrgum\"\u003e\u003ccode\u003e@​mrgum\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev24.9.0\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd communication details (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/400\"\u003e#400\u003c/a\u003e) \u003ca href=\"https://github.com/oraNod\"\u003e\u003ccode\u003e@​oraNod\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix upload-artifact action to work with v4.4 and newer (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/403\"\u003e#403\u003c/a\u003e) \u003ca href=\"https://github.com/alisonlhart\"\u003e\u003ccode\u003e@​alisonlhart\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/ba624e9511a76f29fd12cff3e01feef1458d3acf\"\u003e\u003ccode\u003eba624e9\u003c/code\u003e\u003c/a\u003e Bump the dependencies group in /.config with 5 updates (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/6d9524e282a0f5078dfdaf9d01e620493076496d\"\u003e\u003ccode\u003e6d9524e\u003c/code\u003e\u003c/a\u003e Add support for py313 (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/416\"\u003e#416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/264a2785eb278406a5b93b9c5a8a1979eee5cc11\"\u003e\u003ccode\u003e264a278\u003c/code\u003e\u003c/a\u003e chore: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/415\"\u003e#415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/1f01f448542e4c258dfa1ed5ea84eab655ddc43b\"\u003e\u003ccode\u003e1f01f44\u003c/code\u003e\u003c/a\u003e Replace pip-compile with uv pip compile (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/419\"\u003e#419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/43f75ebf417fa914da59f12781aecea6566822ed\"\u003e\u003ccode\u003e43f75eb\u003c/code\u003e\u003c/a\u003e Fix tests (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/420\"\u003e#420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/29430b1fe77b02e4c7a5073cefb2a04a67fec338\"\u003e\u003ccode\u003e29430b1\u003c/code\u003e\u003c/a\u003e Tune dependabot config (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/417\"\u003e#417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/e247f3fab0400f97df08498c9e2cdf34025f1ba8\"\u003e\u003ccode\u003ee247f3f\u003c/code\u003e\u003c/a\u003e Re-init plugin loader after collections installation (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/411\"\u003e#411\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/18c671e23c1d4fa91fd372fca24474b89e31832c\"\u003e\u003ccode\u003e18c671e\u003c/code\u003e\u003c/a\u003e Bump coactions/dynamic-matrix from 3 to 4 (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/414\"\u003e#414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/ebe0b2c89717cf7567071b540461f878cefa8185\"\u003e\u003ccode\u003eebe0b2c\u003c/code\u003e\u003c/a\u003e chore: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/413\"\u003e#413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/16538ab64884462d8afdf35b97cb1f02299cef69\"\u003e\u003ccode\u003e16538ab\u003c/code\u003e\u003c/a\u003e Add template for bug reports (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible/ansible-compat/compare/v24.8.0...v24.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ansible-pygments` from 0.1.1 to 0.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/ansible-pygments/releases\"\u003eansible-pygments's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.2\u003c/h2\u003e\n\u003cp\u003eMaintenance release to ensure that releasing still works.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/cb4a39bef9e4a4169dce502f2f198016967506bb\"\u003e\u003ccode\u003ecb4a39b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/70\"\u003e#70\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/be3cc3b5e5d7264e842938197acca8d6434ec49f\"\u003e\u003ccode\u003ebe3cc3b\u003c/code\u003e\u003c/a\u003e Bump the ci group with 5 updates (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/73\"\u003e#73\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/2e506fd496d33cc3a34673555c5bb18e357d6214\"\u003e\u003ccode\u003e2e506fd\u003c/code\u003e\u003c/a\u003e Fix dependabot config. (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/72\"\u003e#72\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/5f5bc32fb5f6c8c96c1b13660365fee67f90f7b2\"\u003e\u003ccode\u003e5f5bc32\u003c/code\u003e\u003c/a\u003e Add dependabot config (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/60\"\u003e#60\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/73fac92d94987a1ab87ec5aa85db1a117a7785a8\"\u003e\u003ccode\u003e73fac92\u003c/code\u003e\u003c/a\u003e Fix CI: avoid deprecated poetry section, drop macOS and Windows from CI matri...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/149a793087a789e6a1905716f69ebec77e610b25\"\u003e\u003ccode\u003e149a793\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/69\"\u003e#69\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/bc64e01b0c536ec2cc03ffc470d65eae088632c0\"\u003e\u003ccode\u003ebc64e01\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/68\"\u003e#68\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/709e4e3109a0fc6eabcea757686d0d4635e1f549\"\u003e\u003ccode\u003e709e4e3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/67\"\u003e#67\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/dec1d0799c1f029532faefed2e1b25cb55d6aed8\"\u003e\u003ccode\u003edec1d07\u003c/code\u003e\u003c/a\u003e Require Python 3.9+; add Python 3.12 and 3.13 to CI (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/64\"\u003e#64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/c50df0f4486185b463a78fd4ad8d4cb68f1bac1f\"\u003e\u003ccode\u003ec50df0f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/66\"\u003e#66\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible-community/ansible-pygments/compare/0.1.1...0.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ansible-runner` from 2.4.0 to 2.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible/ansible-runner/releases\"\u003eansible-runner's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShort circuit display wrapper of the callback plugin within forks (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/pull/1414\"\u003eansible/ansible-runner#1414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove EOF log messages when streaming (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/pull/1458\"\u003eansible/ansible-runner#1458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ansible/ansible-runner/compare/2.4.1...2.4.2\"\u003ehttps://github.com/ansible/ansible-runner/compare/2.4.1...2.4.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eModify volume mount behavior when source does not exist (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1408\"\u003e#1408\u003c/a\u003e). Volumes specified using the \u003ccode\u003econtainer-volume-mount\u003c/code\u003e option will now be passed through to the underlying container engine unverified and unmodified. This now allows you to mount individual files (vs. the parent directory) and non-existing source volumes. The behavior encountered with a non-existing source volume depends on which container engine is in use (\u003ccode\u003edocker\u003c/code\u003e creates the volume, \u003ccode\u003epodman\u003c/code\u003e will error).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVarious documentation updates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ansible/ansible-runner/compare/2.4.0...2.4.1\"\u003ehttps://github.com/ansible/ansible-runner/compare/2.4.0...2.4.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/aa1d85044c197f8bd03ba1824c6de4510bab30ee\"\u003e\u003ccode\u003eaa1d850\u003c/code\u003e\u003c/a\u003e Improve EOF log messages when streaming (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1454\"\u003e#1454\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1458\"\u003e#1458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/23d1720a2f29ef2518e4bede106e88545ad2625f\"\u003e\u003ccode\u003e23d1720\u003c/code\u003e\u003c/a\u003e Fix container build cache issue (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1449\"\u003e#1449\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/342cfc58f46c6bf0b6b6f23d91b726fa27091637\"\u003e\u003ccode\u003e342cfc5\u003c/code\u003e\u003c/a\u003e Remove wheel building from CI (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1443\"\u003e#1443\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1445\"\u003e#1445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/3dde1ffdeec743b07c9d3ef90c587db40bea8d62\"\u003e\u003ccode\u003e3dde1ff\u003c/code\u003e\u003c/a\u003e Change keepalive test boundary to 15\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/823bba55e5905fc3d9408464a62efa244fc0b579\"\u003e\u003ccode\u003e823bba5\u003c/code\u003e\u003c/a\u003e Fix CI for core 2.19.0 (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1435\"\u003e#1435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/d9bcdd514bbe6e28b950c40b542c1fe2c37cdf00\"\u003e\u003ccode\u003ed9bcdd5\u003c/code\u003e\u003c/a\u003e Remove outdated skipif fixtures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/d72b2ee9d2951b8eb06100a101500d4267b5e690\"\u003e\u003ccode\u003ed72b2ee\u003c/code\u003e\u003c/a\u003e Short circuit display wrapper in forks (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1414\"\u003e#1414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/388135bcf6b7e786d197315e02d042d246388d4f\"\u003e\u003ccode\u003e388135b\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1425\"\u003e#1425\u003c/a\u003e/827f5f65 backport][release_2.4] 🧪 Use \u003ccode\u003ereusable-tox.yml\u003c/code\u003e @ `tox-dev...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/ac1a759d95e1953549bc9af46bf46285bec99b70\"\u003e\u003ccode\u003eac1a759\u003c/code\u003e\u003c/a\u003e Bump core integration tests for core 2.18 release (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/4ff8ce3af4ace1fb1dc488bfe93e1257deedacf4\"\u003e\u003ccode\u003e4ff8ce3\u003c/code\u003e\u003c/a\u003e Modify volume mount behavior when source does not exist (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1408\"\u003e#1408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible/ansible-runner/compare/2.4.0...2.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `antsibull-changelog` from 0.29.0 to 0.35.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/releases\"\u003eantsibull-changelog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.35.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAntsibull-changelog now also depends on antsibull-docs-parser (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/213\"\u003eansible-community/antsibull-changelog#213\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14 (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/207\"\u003eansible-community/antsibull-changelog#207\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eProcess Ansible markup in plugin/module/role \u003c!-- raw HTML omitted --\u003eshort_description\u003c!-- raw HTML omitted --\u003e (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/207\"\u003eansible-community/antsibull-changelog#207\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/213\"\u003eansible-community/antsibull-changelog#213\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.34.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release for antsibull-build.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003c!-- raw HTML omitted --\u003eRSTDocumentRenderer\u003c!-- raw HTML omitted --\u003e API now allows to configure section underlines. This is needed to fix the Ansible 12 porting guide (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/203\"\u003eansible-community/antsibull-changelog#203\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.33.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eMaintenance release for fixing / deprecating certain boolean options.\u003c/p\u003e\n\u003ch3\u003eBreaking Changes / Porting Guide\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003c!-- raw HTML omitted --\u003e--strict\u003c!-- raw HTML omitted --\u003e option of the \u003c!-- raw HTML omitted --\u003elint-changelog-yaml\u003c!-- raw HTML omitted --\u003e subcommand no longer expects a parameter. It now matches what was documented (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/195\"\u003eansible-community/antsibull-changelog#195\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/196\"\u003eansible-community/antsibull-changelog#196\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe boolean valued options \u003c!-- raw HTML omitted --\u003e--is-collection\u003c!-- raw HTML omitted --\u003e and \u003c!-- raw HTML omitted --\u003e--collection-flatmap\u003c!-- raw HTML omitted --\u003e will likely change to proper flags (\u003c!-- raw HTML omitted --\u003e--flag\u003c!-- raw HTML omitted --\u003e and \u003c!-- raw HTML omitted --\u003e--no-flag`\u003c!-- raw HTML omitted --\u003e instead of \u003c!-- raw HTML omitted --\u003e--flag true\u003c!-- raw HTML omitted --\u003e/\u003c!-- raw HTML omitted --\u003e--flag false\u003c!-- raw HTML omitted --\u003e) in the near future. If you are using these options and want them to not change, or have other suggestions, please \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/issues/new\"\u003ecreate an issue in the antsibull-changelog repository\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/199\"\u003eansible-community/antsibull-changelog#199\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.32.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch3\u003eMajor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe new configuration setting \u003c!-- raw HTML omitted --\u003eoutput\u003c!-- raw HTML omitted --\u003e allows to configure more precisely which changelog files are generated and how they are formatted (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/190\"\u003eansible-community/antsibull-changelog#190\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/194\"\u003eansible-community/antsibull-changelog#194\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAntsibull-changelog now depends on Pydantic 2 (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/193\"\u003eansible-community/antsibull-changelog#193\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAntsibull-changelog now uses Pydantic to parse and validate the config. This means that validation is more strict than before and might reject configs that were incorrect, but still got accepted somehow (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/193\"\u003eansible-community/antsibull-changelog#193\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes / Porting Guide\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWhen using antsibull-changelog as a library, \u003c!-- raw HTML omitted --\u003eChangelogConfig\u003c!-- raw HTML omitted --\u003e's constructor should no longer be called directly. Instead, use the class method \u003c!-- raw HTML omitted --\u003eChangelogConfig.parse()\u003c!-- raw HTML omitted --\u003e, which has the same signature than the previous constructor, except that \u003c!-- raw HTML omitted --\u003eignore_is_other_project\u003c!-- raw HTML omitted --\u003e now must be a keyword parameter (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/193\"\u003eansible-community/antsibull-changelog#193\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/blob/main/CHANGELOG.rst\"\u003eantsibull-changelog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev0.35.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch2\u003eMinor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAntsibull-changelog now also depends on antsibull-docs-parser (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/213\"\u003eansible-community/antsibull-changelog#213\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14 (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/207\"\u003eansible-community/antsibull-changelog#207\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eProcess Ansible markup in plugin/module/role \u003ccode\u003eshort_description\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/207\"\u003eansible-community/antsibull-changelog#207\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/213\"\u003eansible-community/antsibull-changelog#213\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev0.34.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eFeature release for antsibull-build.\u003c/p\u003e\n\u003ch2\u003eMinor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eRSTDocumentRenderer\u003c/code\u003e API now allows to configure section underlines. This is needed to fix the Ansible 12 porting guide (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/203\"\u003eansible-community/antsibull-changelog#203\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev0.33.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eMaintenance release for fixing / deprecating certain boolean options.\u003c/p\u003e\n\u003ch2\u003eBreaking Changes / Porting Guide\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003e--strict\u003c/code\u003e option of the \u003ccode\u003elint-changelog-yaml\u003c/code\u003e subcommand no longer expects a parameter. It now matches what was documented (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/195\"\u003eansible-community/antsibull-changelog#195\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/196\"\u003eansible-community/antsibull-changelog#196\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecated Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe boolean valued options \u003ccode\u003e--is-collection\u003c/code\u003e and \u003ccode\u003e--collection-flatmap\u003c/code\u003e will likely change to proper flags (\u003ccode\u003e--flag\u003c/code\u003e and \u003ccode\u003e--no-flag`` instead of ``--flag true``/``--flag false``) in the near future. If you are using these options and want them to not change, or have other suggestions, please \u003c/code\u003ecreate an issue in the antsibull-changelog repository \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/issues/new\"\u003ehttps://github.com/ansible-community/antsibull-changelog/issues/new\u003c/a\u003e`__ (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/199\"\u003eansible-community/antsibull-changelog#199\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev0.32.0\u003c/h1\u003e\n\u003cp\u003eRelease Summary\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/1fe0013d3e0441552d1cde8abd68329b687e7f72\"\u003e\u003ccode\u003e1fe0013\u003c/code\u003e\u003c/a\u003e Release 0.35.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/58abbe5ab70b7da33cd34d006af23adf6d361637\"\u003e\u003ccode\u003e58abbe5\u003c/code\u003e\u003c/a\u003e Prepare 0.35.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/3c861b0a7d4cf820da4c83d6f86db5071d29ef73\"\u003e\u003ccode\u003e3c861b0\u003c/code\u003e\u003c/a\u003e Process Ansible markup for module/plugin/role short_description (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/213\"\u003e#213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/52f345cf51765075c2792abefd27ed9c7e7924df\"\u003e\u003ccode\u003e52f345c\u003c/code\u003e\u003c/a\u003e Adjust tests to changes in antsibull-fileutils.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/5fa16b580e912e1cfa009e8695f3f0ffb29f0b96\"\u003e\u003ccode\u003e5fa16b5\u003c/code\u003e\u003c/a\u003e Remove no longer necessary lint ignore.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/2069da37431a5fe447cc3ababac67e8f8776df13\"\u003e\u003ccode\u003e2069da3\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the ci group (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/9c82eabac8ffadd097be0ff13691b45548b24b9b\"\u003e\u003ccode\u003e9c82eab\u003c/code\u003e\u003c/a\u003e Bump wntrblm/nox from 2025.10.16 to 2025.11.12 in the ci group (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/211\"\u003e#211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/372f87c01391a20f002f3d9bf564a8d340e6a124\"\u003e\u003ccode\u003e372f87c\u003c/code\u003e\u003c/a\u003e Adjust URLs. (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/2b1e1096ed7d9b2d98a422811c00013422eff927\"\u003e\u003ccode\u003e2b1e109\u003c/code\u003e\u003c/a\u003e Bump wntrblm/nox from 2025.05.01 to 2025.10.16 in the ci group (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/209\"\u003e#209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/e4148eea4cddd7c86da284f1a352ec01acd1e1f5\"\u003e\u003ccode\u003ee4148ee\u003c/code\u003e\u003c/a\u003e Support Python 3.14. (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/compare/0.29.0...0.35.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `antsibull-core` from 3.0.2 to 3.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/antsibull-core/releases\"\u003eantsibull-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature and maintenance release.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd logging wrapper classes to simplify switch from twiggy to the standard logging framework (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/issues/39\"\u003eansible-community/antsibull-core#39\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/188\"\u003eansible-community/antsibull-core#188\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14 (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/191\"\u003eansible-community/antsibull-core#191\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.4.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow information on removed or deprecated collections to be updated. This is needed to generate a consistent changelog (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/177\"\u003eansible-community/antsibull-core#17...\n\n_Description has been truncated_","html_url":"https://github.com/ansible/event-driven-ansible/pull/503","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansible%2Fevent-driven-ansible/issues/503","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/503/packages"},{"uuid":"3751820407","node_id":"PR_kwDOMaSXqs66CeZr","number":12,"state":"closed","title":"Bump aiosignal from 1.3.2 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-28T20:35:48.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T00:23:02.000Z","updated_at":"2025-12-28T20:35:50.000Z","time_to_close":591166,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"aiosignal","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"}],"path":null,"ecosystem":"pip"},"body":"Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.2 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.2...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal\u0026package-manager=pip\u0026previous-version=1.3.2\u0026new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ezedeem223/fast-api/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezedeem223%2Ffast-api/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"},{"uuid":"3735697967","node_id":"PR_kwDOQpLIbs65M5J-","number":55,"state":"closed","title":"chore(deps)(deps): bump aiosignal from 1.3.1 to 1.4.0 in /api_service","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-16T17:35:39.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-16T17:31:36.000Z","updated_at":"2025-12-16T17:35:47.000Z","time_to_close":243,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps)","packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"}],"path":"/api_service","ecosystem":"pip"},"body":"Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal\u0026package-manager=pip\u0026previous-version=1.3.1\u0026new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/todd2982/SuggestArr/pull/55","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/todd2982%2FSuggestArr/issues/55","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/55/packages"},{"uuid":"3729140706","node_id":"PR_kwDOKXLyYM642uEF","number":110,"state":"closed","title":"Bump the python-deps group across 1 directory with 46 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-17T07:23:33.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-15T07:29:30.000Z","updated_at":"2025-12-17T07:23:35.000Z","time_to_close":172443,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-deps","update_count":46,"packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"asgiref","old_version":"3.9.1","new_version":"3.11.0","repository_url":"https://github.com/django/asgiref"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"attrs","old_version":"23.1.0","new_version":"25.4.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"cachetools","old_version":"5.3.2","new_version":"6.2.3","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.8.3","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.6.1","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"flask-cors","old_version":"6.0.0","new_version":"6.0.2","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"frozenlist","old_version":"1.7.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"greenlet","old_version":"3.2.4","new_version":"3.3.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"importlib-metadata","old_version":"6.8.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"multidict","old_version":"6.6.4","new_version":"6.7.0","repository_url":"https://github.com/aio-libs/multidict"},{"name":"nest-asyncio","old_version":"1.5.8","new_version":"1.6.0","repository_url":"https://github.com/erdewit/nest_asyncio"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.15.5","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"python-engineio","old_version":"4.9.0","new_version":"4.12.3","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-socketio","old_version":"5.11.2","new_version":"5.15.0","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"simple-websocket","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/miguelgrinberg/simple-websocket"},{"name":"sqlalchemy","old_version":"2.0.30","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"werkzeug","old_version":"3.0.6","new_version":"3.1.4","repository_url":"https://github.com/pallets/werkzeug"},{"name":"wsproto","old_version":"1.2.0","new_version":"1.3.2","repository_url":"https://github.com/python-hyper/wsproto"},{"name":"yarl","old_version":"1.20.1","new_version":"1.22.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"python-dotenv","old_version":"1.1.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.187.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"selenium","old_version":"4.32.0","new_version":"4.39.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"cryptography","old_version":"45.0.6","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"notion-client","old_version":"2.4.0","new_version":"2.7.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-auth-oauthlib","old_version":"1.2.2","new_version":"1.2.3","repository_url":"https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib"},{"name":"google-api-core","old_version":"2.25.1","new_version":"2.28.1","repository_url":"https://github.com/googleapis/python-api-core"},{"name":"apscheduler","old_version":"3.11.0","new_version":"3.11.1","repository_url":"https://github.com/agronholm/apscheduler"},{"name":"google-genai","old_version":"1.30.0","new_version":"1.55.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"tzdata","old_version":"2025.2","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"colorlog","old_version":"6.9.0","new_version":"6.10.1","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"anthropic","old_version":"0.64.0","new_version":"0.75.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"1.102.0","new_version":"2.11.0","repository_url":"https://github.com/openai/openai-python"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 45 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.11.0` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `23.1.0` | `25.4.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.3.2` | `6.2.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `2025.11.12` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.1` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.6.1` | `2.8.0` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.0` | `6.0.2` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.7.0` | `1.8.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.4` | `3.3.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.8.0` | `8.7.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.6.4` | `6.7.0` |\n| [nest-asyncio](https://github.com/erdewit/nest_asyncio) | `1.5.8` | `1.6.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.15.5` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.9.0` | `4.12.3` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.11.2` | `5.15.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [simple-websocket](https://github.com/miguelgrinberg/simple-websocket) | `1.0.0` | `1.1.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.30` | `2.0.45` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.0.6` | `3.1.4` |\n| [wsproto](https://github.com/python-hyper/wsproto) | `1.2.0` | `1.3.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.20.1` | `1.22.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.1` | `1.2.1` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.187.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.32.0` | `4.39.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.6` | `46.0.3` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `2.4.0` | `2.7.0` |\n| [google-auth-oauthlib](https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib) | `1.2.2` | `1.2.3` |\n| [google-api-core](https://github.com/googleapis/python-api-core) | `2.25.1` | `2.28.1` |\n| [apscheduler](https://github.com/agronholm/apscheduler) | `3.11.0` | `3.11.1` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.30.0` | `1.55.0` |\n| [tzdata](https://github.com/python/tzdata) | `2025.2` | `2025.3` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.9.0` | `6.10.1` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.64.0` | `0.75.0` |\n| [openai](https://github.com/openai/openai-python) | `1.102.0` | `2.11.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `9.0.2` |\n\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.9.1 to 3.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.0 (2025-11-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003esync_to_async\u003c/code\u003e gains a \u003ccode\u003econtext\u003c/code\u003e parameter, similar to those for\n\u003ccode\u003easyncio.create_task\u003c/code\u003e, \u003ccode\u003eTaskGroup\u003c/code\u003e \u0026amp;co, that can be used on Python 3.11+ to\ncontrol the context used by the underlying task.\u003c/p\u003e\n\u003cp\u003eThe parent context is already propagated by default but the additional\ncontrol is useful if multiple \u003ccode\u003esync_to_async\u003c/code\u003e calls need to share the same\ncontext, e.g. when used with \u003ccode\u003easyncio.gather()\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.0 (2025-10-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded AsyncSingleThreadContext context manager to ensure multiple AsyncToSync\ninvocations use the same thread. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b7b15b20ddb51d1d8b6978165c0986686cd08c1d\"\u003e\u003ccode\u003eb7b15b2\u003c/code\u003e\u003c/a\u003e Releasing 3.11.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/901ee4f96db156f0b462690dd7c9f5aa99bcce03\"\u003e\u003ccode\u003e901ee4f\u003c/code\u003e\u003c/a\u003e Added a custom context parameter for the sync_to_async (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/2138f0317d79cedd065571447ae0a7571989550e\"\u003e\u003ccode\u003e2138f03\u003c/code\u003e\u003c/a\u003e Fixed typo in test file comment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/f587b122af17bdba5749c30b96d2237bc1c2dfdf\"\u003e\u003ccode\u003ef587b12\u003c/code\u003e\u003c/a\u003e Releasing 3.10.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b08087c3b6df811a0524585c4d4dafdc6b12c222\"\u003e\u003ccode\u003eb08087c\u003c/code\u003e\u003c/a\u003e Added AsyncSingleThreadContext (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-timeout` from 4.0.3 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/releases\"\u003easync-timeout's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst\"\u003easync-timeout's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.1 (2024-11-06)\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.0.0 (2024-10-31)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/cc52d410e733b302873e6e52db9a9b6578d053a4\"\u003e\u003ccode\u003ecc52d41\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/1af7d7165d598af03e51952a679c690690dc7f8e\"\u003e\u003ccode\u003e1af7d71\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3bf26d96e3d1830a0e72ddab9c6a2c87e1f4380a\"\u003e\u003ccode\u003e3bf26d9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/423\"\u003e#423\u003c/a\u003e: add requirements.txt to sdist package (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/380e8ba5bf77e3cd184df8a5f51dc929d93d8553\"\u003e\u003ccode\u003e380e8ba\u003c/code\u003e\u003c/a\u003e Mention condition import of asyncio.timeout / async_timeout.timeout in README...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/8a232d0f7fc1af88c8d921500d78bbefc2bc545c\"\u003e\u003ccode\u003e8a232d0\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3d3e3e45420ac6ea0ef77c9e32388e252e12ac4d\"\u003e\u003ccode\u003e3d3e3e4\u003c/code\u003e\u003c/a\u003e Bump to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/d5c21f3dee7eeb06823af77284ad2a899611b28e\"\u003e\u003ccode\u003ed5c21f3\u003c/code\u003e\u003c/a\u003e Mimic asyncio.Timeout behavior (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/a1111c2597b9ce8d34b823c1b993689339ea9fd6\"\u003e\u003ccode\u003ea1111c2\u003c/code\u003e\u003c/a\u003e Drop deprecated sync context manager support (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/00fd343ce6ba2ccc291c0f6e09fea8998cbfe3a1\"\u003e\u003ccode\u003e00fd343\u003c/code\u003e\u003c/a\u003e Imports cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/7b61b33ae0ecee0e0bb0e09f2e5787c647d4ffb8\"\u003e\u003ccode\u003e7b61b33\u003c/code\u003e\u003c/a\u003e Update CI config file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-timeout/compare/v4.0.3...v5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 23.1.0 to 25.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 5.3.2 to 6.2.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.3 (2025-12-12)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation regarding \u003ccode\u003e@cachedmethod\u003c/code\u003e with \u003ccode\u003econdition\u003c/code\u003e\nparameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor style and readability improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eModernize build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.2 (2025-11-13)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor improvements from GitHub Copilot code review.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.1 (2025-10-12)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/c9354683857b10b5e00cb93d06f7549ac8344fc0\"\u003e\u003ccode\u003ec935468\u003c/code\u003e\u003c/a\u003e Release v6.2.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/94d1099e6e79d34c436dc9f5d1cc039bcbf76738\"\u003e\u003ccode\u003e94d1099\u003c/code\u003e\u003c/a\u003e Prepare v6.2.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/af8b7d4ffa48d5947161ddb8c1ef1c60dda1e816\"\u003e\u003ccode\u003eaf8b7d4\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/372\"\u003e#372\u003c/a\u003e: Convert setup.cfg to pyproject.toml.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/20b8a192f666420a1986b793fd5846b89fdcd647\"\u003e\u003ccode\u003e20b8a19\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/370\"\u003e#370\u003c/a\u003e: Mention that using \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e with condition requires self to be...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/116fb4c3459067442d731e01a3db4694b50722f1\"\u003e\u003ccode\u003e116fb4c\u003c/code\u003e\u003c/a\u003e Minor style and readability improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/96546ea34f8c77df009fb3bc019b72b03589c3fd\"\u003e\u003ccode\u003e96546ea\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.0 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/0106cc1d4764c9a94cd39a55579ce49bca9f4e1e\"\u003e\u003ccode\u003e0106cc1\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4ee2600ab09b109f79d4ef08103240bf9f239b2d\"\u003e\u003ccode\u003e4ee2600\u003c/code\u003e\u003c/a\u003e Release v6.2.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/f1cec391fea1a1e407fe596b6e37b849adf7fce5\"\u003e\u003ccode\u003ef1cec39\u003c/code\u003e\u003c/a\u003e Minor improvements from GitHub Copilot code review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/e9117dc1e18389341ce4836f171e23d89f306b65\"\u003e\u003ccode\u003ee9117dc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/371\"\u003e#371\u003c/a\u003e from RektPunk/master\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.3.2...v6.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.8.3 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"\u003e\u003ccode\u003e37ea150\u003c/code\u003e\u003c/a\u003e 2025.11.12 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"\u003e\u003ccode\u003e2fa50bb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.2 to 5.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"\u003e\u003ccode\u003e6cadb53\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fb14ac49a976b1695d84b1ac1307276a20b3aac9\"\u003e\u003ccode\u003efb14ac4\u003c/code\u003e\u003c/a\u003e 2025.10.05 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2c7c7ee6b76a118191b685a4cc028d4241f22eb7\"\u003e\u003ccode\u003e2c7c7ee\u003c/code\u003e\u003c/a\u003e Add Python 3.14 classifier in setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1a5cb7b3771bba256755f88b3dcf3ac13f064622\"\u003e\u003ccode\u003e1a5cb7b\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/dea59605ef2b266c2e0e67938e8c8535a04b1211\"\u003e\u003ccode\u003edea5960\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/83566b7c993eef772facdaff59c7bba105675329\"\u003e\u003ccode\u003e83566b7\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ca2e121bdb304fd01f802d3b1ee6a65684f569f2\"\u003e\u003ccode\u003eca2e121\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.3.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.08.03...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.1/\"\u003ehttps://pypi.org/project/click/8.3.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/28\"\u003ehttps://github.com/pallets/click/milestone/28\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3039\"\u003e#3039\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3055\"\u003e#3055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through the \u003ccode\u003eContext.invoke()\u003c/code\u003e method. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3066\"\u003e#3066\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3068\"\u003e#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect behavior for multiple parameters using the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3071\"\u003e#3071\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3079\"\u003e#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is empty. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3019\"\u003e#3019\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3021\"\u003e#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to \u003ccode\u003etype_cast_value\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3069\"\u003e#3069\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3090\"\u003e#3090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters through the context inside parameter callbacks. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-11-15\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. :issue:\u003ccode\u003e3039\u003c/code\u003e\n:pr:\u003ccode\u003e3055\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through\nthe \u003ccode\u003eContext.invoke()\u003c/code\u003e method. :issue:\u003ccode\u003e3066\u003c/code\u003e :issue:\u003ccode\u003e3065\u003c/code\u003e :pr:\u003ccode\u003e3068\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect\nbehavior for multiple parameters using the same name. :issue:\u003ccode\u003e3071\u003c/code\u003e :pr:\u003ccode\u003e3079\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters\nthrough the context inside parameter callbacks. :issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3137\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is\nempty. :issue:\u003ccode\u003e3019\u003c/code\u003e :pr:\u003ccode\u003e3021\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to\n\u003ccode\u003etype_cast_value\u003c/code\u003e. :issue:\u003ccode\u003e3069\u003c/code\u003e :pr:\u003ccode\u003e3090\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in \u003ccode\u003eCliRunner\u003c/code\u003e. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1d038f270701498433cb432f54db89f95f07a845\"\u003e\u003ccode\u003e1d038f2\u003c/code\u003e\u003c/a\u003e release version 8.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/03f3889f505d0c9ca4f9d6810f9e4ba2799f2a66\"\u003e\u003ccode\u003e03f3889\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3141\"\u003e#3141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3867781222cb63693ca67df94352d29d8e6e2770\"\u003e\u003ccode\u003e3867781\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b91bb9548a5617b1197add95e084d569f57149c3\"\u003e\u003ccode\u003eb91bb95\u003c/code\u003e\u003c/a\u003e Provide altered context to callbacks to hide \u003ccode\u003eUNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/437e1e3295c7ec979fc1bf285bb402ca20d847e7\"\u003e\u003ccode\u003e437e1e3\u003c/code\u003e\u003c/a\u003e Temporarily provide a fake context to the callback to hide \u003ccode\u003eUNSET\u003c/code\u003e values as ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ea70da487b05d6bb758d472a3a9ffab4a5b7fcd5\"\u003e\u003ccode\u003eea70da4\u003c/code\u003e\u003c/a\u003e Don't test using a file in docs/ (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e27b307462b725722f620c69dd1d5509c032d18a\"\u003e\u003ccode\u003ee27b307\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003euv run --all-extras pyright --verifytypes click\u003c/code\u003e pass (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a92c573f3195c9da3058eadf1735d38af186d22c\"\u003e\u003ccode\u003ea92c573\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.6.1 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.8.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.10.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release. Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003cp\u003eThis release was published to PyPI using Trusted Publishing.\u003c/p\u003e\n\u003ch2\u003ednspython 2.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.9.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release.  Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns/btreezone.py provides another zone versioned implementation built on top of a\nB-tree.  It maintains DNSSEC sort order, labels nodes as delegation points or glue,\nand can find the \u0026quot;bounds\u0026quot; of a name (useful for DNSSEC responses).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/query.py now provides make_socket(), make_ssl_socket(), and make_ssl_context()\nto make using persistent connections with the query code easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/win32util.py now supports explicitly setting the configuration method used to get\nsystem dns info, using the set_config_method() function.   There is a new configuration\nmethod that uses the Win32 API, which can be set using\nset_config_method(ConfigMethod.Win32).  We are considering making the Win32 API\nthe default in the future as we believe it to be the most accurate.  Any feedback on\nit compared to the other methods is welcome.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe DSYNC record is now supported.  This type is still in draft stage at the IETF\nand is subject to change.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns.query.https() and dns.asyncquery.https() now support HTTP/3 and the http_version\nparameter may be used to specify which version to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the cryptography module is installed, then dnspython will now create deterministic\nECDSA signatures by default.  Cryptography, if installed, must be at least version 43.\nThanks to Jakob Schlyter for adding the feature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe RESINFO and WALLET RdataTypes are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe COOKIE and Report-Channel EDNS0 options are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAll supported RdataTypes can now be imported at a single time rather than lazily on\nfirst use by calling dns.rdata.load_all_types().\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe SVCB and HTTPS records now support the ohttp parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003exfr() and inbound_xfr() now share a common implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTokens are now supported for QUIC and HTTP/3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.from_wire() now saves the input wire format in the Message's \u0026quot;wire\u0026quot;\nattribute.  Likewise, dns.message.Message.to_wire() now records the generated\nwire format in that attribute.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe dns.message.Message object now has a get_options() helper to retrieve EDNS0\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/77fd94cd9716faf23e0a6e333f6568fc24284402\"\u003e\u003ccode\u003e77fd94c\u003c/code\u003e\u003c/a\u003e 2.8.0 versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/884f38345a8152342fe8ab5da8db9aab654051ba\"\u003e\u003ccode\u003e884f383\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/1938fe331f97376bf91c028fbfb8c7588c1b84f4\"\u003e\u003ccode\u003e1938fe3\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a35d6925efe20744e8cf7545d19d03ba06e7ab6f\"\u003e\u003ccode\u003ea35d692\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/c862baaf0d0aa36d2e7003dfe226cd6ad4d827c4\"\u003e\u003ccode\u003ec862baa\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/0945d5923d58048c17325975f70f0738c87570b4\"\u003e\u003ccode\u003e0945d59\u003c/code\u003e\u003c/a\u003e more lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8fa6766d2f7a2431372fc912fb334e752290ebf2\"\u003e\u003ccode\u003e8fa6766\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/641633503ee6b07bf382594ac04707072b90de18\"\u003e\u003ccode\u003e6416335\u003c/code\u003e\u003c/a\u003e Type syntax (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a4591447b7d6e38479bcddb14de3b69f314e7009\"\u003e\u003ccode\u003ea459144\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a0d5f172e89f30709b47b59fb0919d8cf137f611\"\u003e\u003ccode\u003ea0d5f17\u003c/code\u003e\u003c/a\u003e fix the all entries\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.6.1...v2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-cors` from 6.0.0 to 6.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/corydolphin/flask-cors/releases\"\u003eflask-cors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate license pyproject.toml by \u003ca href=\"https://github.com/wagenrace\"\u003e\u003ccode\u003e@​wagenrace\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/395\"\u003ecorydolphin/flask-cors#395\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wagenrace\"\u003e\u003ccode\u003e@​wagenrace\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/395\"\u003ecorydolphin/flask-cors#395\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.1...6.0.2\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.1...6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInvert regex sorting to make it correctly match the intent (sorting by specificity descending) \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1.dev\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/fa55dcbec68b3524a39e5057c35c29c221a27d64\"\u003e\u003ccode\u003efa55dcb\u003c/code\u003e\u003c/a\u003e Update license pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/a5003f391e56f74f11a3e509cd180787c75eb6b0\"\u003e\u003ccode\u003ea5003f3\u003c/code\u003e\u003c/a\u003e Fix README file extension in pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/4ad56d6c20252d36031c74ba8386a81e94286f40\"\u003e\u003ccode\u003e4ad56d6\u003c/code\u003e\u003c/a\u003e Fix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `frozenlist` from 1.7.0 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/frozenlist/releases\"\u003efrozenlist's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.0\u003c/h2\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe :file:\u003ccode\u003ereusable-cibuildwheel.yml\u003c/code\u003e workflow has been refactored to\nbe more generic and :file:\u003ccode\u003eci-cd.yml\u003c/code\u003e now holds all the configuration\ntoggles -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/668\"\u003e#668\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen building wheels, the source distribution is now passed directly\nto the \u003ccode\u003ecibuildwheel\u003c/code\u003e invocation -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/669\"\u003e#669\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBuilds and tests have been added to\n\u003ccode\u003eci-cd.yml\u003c/code\u003e for arm64 Windows wheels -- by :user:\u003ccode\u003efinnagin\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/677\"\u003e#677\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eStarted building wheels for CPython 3.14 -- by :user:\u003ccode\u003ekumaraditya303\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/681\"\u003e#681\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/682\"\u003e#682\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003e--config-settings=pure-python=false\u003c/code\u003e from :file:\u003ccode\u003erequirements/dev.txt\u003c/code\u003e.\nDevelopers on CPython still get accelerated builds by default. To explicitly build\na pure Python wheel, use \u003ccode\u003epip install -e . --config-settings=pure-python=true\u003c/code\u003e\n-- by :user:\u003ccode\u003ebdraco\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/687\"\u003e#687\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/frozenlist/blob/master/CHANGES.rst\"\u003efrozenlist's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev1.8.0\u003c/h1\u003e\n\u003cp\u003e\u003cem\u003e(2025-10-05)\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe :file:\u003ccode\u003ereusable-cibuildwheel.yml\u003c/code\u003e workflow has been refactored to\nbe more generic and :file:\u003ccode\u003eci-cd.yml\u003c/code\u003e now holds all the configuration\ntoggles -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e668\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen building wheels, the source distribution is now passed directly\nto the \u003ccode\u003ecibuildwheel\u003c/code\u003e invocation -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e669\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBuilds and tests have been added to\n\u003ccode\u003eci-cd.yml\u003c/code\u003e for arm64 Windows wheels -- by :user:\u003ccode\u003efinnagin\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e677\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eStarted building wheels for CPython 3.14 -- by :user:\u003ccode\u003ekumaraditya303\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e681\u003c/code\u003e, :issue:\u003ccode\u003e682\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003e--config-settings=pure-python=false\u003c/code\u003e from :file:\u003ccode\u003erequirements/dev.txt\u003c/code\u003e.\nDevelopers on CPython still get accelerated builds by default. To explicitly build\na pure Python wheel, use \u003ccode\u003epip install -e . --config-settings=pure-python=true\u003c/code\u003e\n-- by :user:\u003ccode\u003ebdraco\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e687\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/48324affeecc2fff8f84f38368f720426c0354cf\"\u003e\u003ccode\u003e48324af\u003c/code\u003e\u003c/a\u003e Release 1.8.0 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/698\"\u003e#698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/7e5eab0c6fef4898fe43827b68e2722a385a8383\"\u003e\u003ccode\u003e7e5eab0\u003c/code\u003e\u003c/a\u003e Add windows arm64 support (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/678\"\u003e#678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/a2c22c28622534e4d90abdd931acd9d9a2aaa457\"\u003e\u003ccode\u003ea2c22c2\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sphinx from 7.2.6 to 7.4.7 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/752b80a14924c53317b0b4cb4d8212a3daf06719\"\u003e\u003ccode\u003e752b80a\u003c/code\u003e\u003c/a\u003e Build(deps): Bump types-setuptools from 75.8.0.20250210 to 80.9.0.20250822 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/6b9d557b189dfc8f1f9afdfcc9b6ddd8ccfc9f76\"\u003e\u003ccode\u003e6b9d557\u003c/code\u003e\u003c/a\u003e Build(deps): Bump cython from 3.1.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/7c4ad20e8ef0e6dc7dc7bfa49067d30477401890\"\u003e\u003ccode\u003e7c4ad20\u003c/code\u003e\u003c/a\u003e Build(deps-dev): Bump tox from 4.11.4 to 4.30.3 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/65f35d660661309808804b119d8fedb950527dc4\"\u003e\u003ccode\u003e65f35d6\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pre-commit from 3.5.0 to 4.3.0 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/697\"\u003e#697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/1ad02630d8fabf2cc67c7b2549115440edbd1be9\"\u003e\u003ccode\u003e1ad0263\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 7.4.3 to 8.4.2 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/884ee492579139df7c634f20ee27133d06551935\"\u003e\u003ccode\u003e884ee49\u003c/code\u003e\u003c/a\u003e Build(deps): Bump aiohttp-theme from 0.1.6 to 0.1.7 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/689\"\u003e#689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/b2d618044281d0ef534253d8cf087f80569d492c\"\u003e\u003ccode\u003eb2d6180\u003c/code\u003e\u003c/a\u003e Fix dependabot updates (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/frozenlist/compare/v1.7.0...v1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `greenlet` from 3.2.4 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst\"\u003egreenlet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.3.0 (2025-12-04)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.9.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitch to distributing manylinux_2_28 wheels instead of\nmanylinux2014 wheels. Likewise, switch from musllinux_1_1 to 1_2.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd initial support for free-threaded builds of CPython 3.14. Due to\nlimitations, we do not distribute binary wheels for free-threaded\nCPython on Windows. (Free-threaded CPython 3.13 may work, but is\nuntested and unsupported.)\u003c/p\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cp\u003eUnder some rare scenarios with free-threaded 3.14, the\ninterpreter may crash on accessing a variable or attribute or\nwhen shutting down. If this happens, try disabling the\nthread-local bytecode cache. See the greenlet documentation for\nmore details. See \u003ccode\u003ePR 472 by T. Wouters \u0026lt;https://github.com/python-greenlet/greenlet/pull/472\u0026gt;\u003c/code\u003e_ for the\ninitial free-threaded support and a discussion of the current\nknown issues.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/0f904314e2fe11835bdff9d928f9f039116aebff\"\u003e\u003ccode\u003e0f90431\u003c/code\u003e\u003c/a\u003e Preparing release 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/296058a43da5a76c2406a91aa998413b93537940\"\u003e\u003ccode\u003e296058a\u003c/code\u003e\u003c/a\u003e Tweak changelog. [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/d4392ab171036bf73cc64ed47109e0d2e1f41275\"\u003e\u003ccode\u003ed4392ab\u003c/code\u003e\u003c/a\u003e fixup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/e6fead23d967fd6194c5a1eaa48d55a07b4bda40\"\u003e\u003ccode\u003ee6fead2\u003c/code\u003e\u003c/a\u003e Update docs regarding free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/d5b134610187f94a641e0cf40be56992c8e9f667\"\u003e\u003ccode\u003ed5b1346\u003c/code\u003e\u003c/a\u003e 3.14: Save/restore PyInterpreterFrame.stackpointer.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/b54c4bdaaade13139d54005df51a9d21df5db7c4\"\u003e\u003ccode\u003eb54c4bd\u003c/code\u003e\u003c/a\u003e Fix some crashes with CPython assertions enabled, pointing to things we were ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/47e99259263968560422c9b69bc8c50f9068cf87\"\u003e\u003ccode\u003e47e9925\u003c/code\u003e\u003c/a\u003e Add a test that we're not enabling the GIL.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/0778d50792888afa043c8a368085358c3fea0146\"\u003e\u003ccode\u003e0778d50\u003c/code\u003e\u003c/a\u003e Use our Python allocator on free-threaded builds, but do it correctly with Py...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/5f661f4f5a023438e944d36e4f255c7a706ae998\"\u003e\u003ccode\u003e5f661f4\u003c/code\u003e\u003c/a\u003e Add free-threaded CI builds and manylinux builds; update manylinux away from ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/5331b0ad33a7380b91d8a9849f61aa61b7b1ade2\"\u003e\u003ccode\u003e5331b0a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/475\"\u003e#475\u003c/a\u003e from clin1234/capi\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca h...\n\n_Description has been truncated_","html_url":"https://github.com/asusoda/platform/pull/110","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asusoda%2Fplatform/issues/110","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/110/packages"},{"uuid":"3489853307","node_id":"PR_kwDOEg37J86saNXC","number":33,"state":"open","title":"Bump aiosignal from 1.3.1 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-10-07T03:58:08.000Z","updated_at":"2025-10-07T04:00:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"}],"path":null,"ecosystem":"pip"},"body":"Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal\u0026package-manager=uv\u0026previous-version=1.3.1\u0026new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/hlystovea/sayanbot/pull/33","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hlystovea%2Fsayanbot/issues/33","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/33/packages"},{"uuid":"2889171984","node_id":"PR_kwDOKXLyYM6sNUQQ","number":88,"state":"open","title":"Bump the python-deps group across 1 directory with 34 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-06T07:55:16.000Z","updated_at":"2025-10-06T07:55:17.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-deps","update_count":34,"packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"asgiref","old_version":"3.9.1","new_version":"3.10.0","repository_url":"https://github.com/django/asgiref"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"attrs","old_version":"23.1.0","new_version":"25.3.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"cachetools","old_version":"5.3.2","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.8.3","new_version":"2025.10.5","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.6.1","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"flask-cors","old_version":"6.0.0","new_version":"6.0.1","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"frozenlist","old_version":"1.7.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"importlib-metadata","old_version":"6.8.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"nest-asyncio","old_version":"1.5.8","new_version":"1.6.0","repository_url":"https://github.com/erdewit/nest_asyncio"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.15.2","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"python-engineio","old_version":"4.9.0","new_version":"4.12.3","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-socketio","old_version":"5.11.2","new_version":"5.14.1","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"simple-websocket","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/miguelgrinberg/simple-websocket"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"werkzeug","old_version":"3.0.6","new_version":"3.1.3","repository_url":"https://github.com/pallets/werkzeug"},{"name":"yarl","old_version":"1.20.1","new_version":"1.21.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.184.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"selenium","old_version":"4.32.0","new_version":"4.36.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"cryptography","old_version":"45.0.6","new_version":"46.0.2","repository_url":"https://github.com/pyca/cryptography"},{"name":"notion-client","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-api-core","old_version":"2.25.1","new_version":"2.25.2","repository_url":"https://github.com/googleapis/python-api-core"},{"name":"google-genai","old_version":"1.30.0","new_version":"1.41.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"anthropic","old_version":"0.64.0","new_version":"0.69.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"1.102.0","new_version":"2.1.0","repository_url":"https://github.com/openai/openai-python"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 33 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.10.0` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `23.1.0` | `25.3.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.3.2` | `6.2.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `2025.10.5` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.6.1` | `2.8.0` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.0` | `6.0.1` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.7.0` | `1.8.0` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.8.0` | `8.7.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [nest-asyncio](https://github.com/erdewit/nest_asyncio) | `1.5.8` | `1.6.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.15.2` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.9.0` | `4.12.3` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.11.2` | `5.14.1` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [simple-websocket](https://github.com/miguelgrinberg/simple-websocket) | `1.0.0` | `1.1.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.0.6` | `3.1.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.20.1` | `1.21.0` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.184.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.32.0` | `4.36.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.6` | `46.0.2` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `2.4.0` | `2.5.0` |\n| [google-api-core](https://github.com/googleapis/python-api-core) | `2.25.1` | `2.25.2` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.30.0` | `1.41.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.64.0` | `0.69.0` |\n| [openai](https://github.com/openai/openai-python) | `1.102.0` | `2.1.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.9.1 to 3.10.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.0 (2025-10-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded AsyncSingleThreadContext context manager to ensure multiple AsyncToSync\ninvocations use the same thread. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/f587b122af17bdba5749c30b96d2237bc1c2dfdf\"\u003e\u003ccode\u003ef587b12\u003c/code\u003e\u003c/a\u003e Releasing 3.10.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b08087c3b6df811a0524585c4d4dafdc6b12c222\"\u003e\u003ccode\u003eb08087c\u003c/code\u003e\u003c/a\u003e Added AsyncSingleThreadContext (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-timeout` from 4.0.3 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/releases\"\u003easync-timeout's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst\"\u003easync-timeout's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.1 (2024-11-06)\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.0.0 (2024-10-31)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/cc52d410e733b302873e6e52db9a9b6578d053a4\"\u003e\u003ccode\u003ecc52d41\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/1af7d7165d598af03e51952a679c690690dc7f8e\"\u003e\u003ccode\u003e1af7d71\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3bf26d96e3d1830a0e72ddab9c6a2c87e1f4380a\"\u003e\u003ccode\u003e3bf26d9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/423\"\u003e#423\u003c/a\u003e: add requirements.txt to sdist package (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/380e8ba5bf77e3cd184df8a5f51dc929d93d8553\"\u003e\u003ccode\u003e380e8ba\u003c/code\u003e\u003c/a\u003e Mention condition import of asyncio.timeout / async_timeout.timeout in README...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/8a232d0f7fc1af88c8d921500d78bbefc2bc545c\"\u003e\u003ccode\u003e8a232d0\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3d3e3e45420ac6ea0ef77c9e32388e252e12ac4d\"\u003e\u003ccode\u003e3d3e3e4\u003c/code\u003e\u003c/a\u003e Bump to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/d5c21f3dee7eeb06823af77284ad2a899611b28e\"\u003e\u003ccode\u003ed5c21f3\u003c/code\u003e\u003c/a\u003e Mimic asyncio.Timeout behavior (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/a1111c2597b9ce8d34b823c1b993689339ea9fd6\"\u003e\u003ccode\u003ea1111c2\u003c/code\u003e\u003c/a\u003e Drop deprecated sync context manager support (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/00fd343ce6ba2ccc291c0f6e09fea8998cbfe3a1\"\u003e\u003ccode\u003e00fd343\u003c/code\u003e\u003c/a\u003e Imports cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/7b61b33ae0ecee0e0bb0e09f2e5787c647d4ffb8\"\u003e\u003ccode\u003e7b61b33\u003c/code\u003e\u003c/a\u003e Update CI config file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-timeout/compare/v4.0.3...v5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 23.1.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 5.3.2 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.0.0 (2025-05-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequire Python 3.9 or later (breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003eMRUCache\u003c/code\u003e and the \u003ccode\u003e@func.mru_cache\u003c/code\u003e decorator (breaking\nchange).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd an optional \u003ccode\u003econdition\u003c/code\u003e parameter to the \u003ccode\u003e@cached\u003c/code\u003e and\n\u003ccode\u003e@cachedmethod\u003c/code\u003e decorators, which, when used with a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance, should improve \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues in massively\nparallel environments.  Note that this will inflict some performance\npenalty, and therefore has to be enabled explicitly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert the \u003ccode\u003ecachetools.func\u003c/code\u003e decorators to use a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance to deal with \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues.  Note that\nthis \u003cem\u003emay\u003c/em\u003e result in a noticable performance degradation, depending\non your actual use case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate support for \u003ccode\u003ecache(self)\u003c/code\u003e returning \u003ccode\u003eNone\u003c/code\u003e to suppress\ncaching with the \u003ccode\u003e@cachedmethod\u003c/code\u003e decorator.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ev5.5.2 (2025-02-20)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/e497575fcb4d29dfb773824956539215db964059\"\u003e\u003ccode\u003ee497575\u003c/code\u003e\u003c/a\u003e Release v6.0.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/0a8f391979f72f3237be8cdb79d6128dd5caeb93\"\u003e\u003ccode\u003e0a8f391\u003c/code\u003e\u003c/a\u003e Update related projects section.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/3afef37bdbf8fa8f6dddbc303ecd91c9fd32ab01\"\u003e\u003ccode\u003e3afef37\u003c/code\u003e\u003c/a\u003e Pre-release v6.0.0b4.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.3.2...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.8.3 to 2025.10.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fb14ac49a976b1695d84b1ac1307276a20b3aac9\"\u003e\u003ccode\u003efb14ac4\u003c/code\u003e\u003c/a\u003e 2025.10.05 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2c7c7ee6b76a118191b685a4cc028d4241f22eb7\"\u003e\u003ccode\u003e2c7c7ee\u003c/code\u003e\u003c/a\u003e Add Python 3.14 classifier in setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1a5cb7b3771bba256755f88b3dcf3ac13f064622\"\u003e\u003ccode\u003e1a5cb7b\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/dea59605ef2b266c2e0e67938e8c8535a04b1211\"\u003e\u003ccode\u003edea5960\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/83566b7c993eef772facdaff59c7bba105675329\"\u003e\u003ccode\u003e83566b7\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ca2e121bdb304fd01f802d3b1ee6a65684f569f2\"\u003e\u003ccode\u003eca2e121\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.3.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.08.03...2025.10.05\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003cp\u003eIt leverages charset-normalizer in a better way! Check it out, you will gain up to being 3X faster and get a real/respectable support with it.\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebuild-requirements.txt\u003c/code\u003e as per using \u003ccode\u003epyproject.toml\u003c/code\u003e native build configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/integration.py\u003c/code\u003e and \u003ccode\u003ebin/serve.py\u003c/code\u003e in favor of downstream integration test (see noxfile).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e in favor of \u003ccode\u003epyproject.toml\u003c/code\u003e metadata configuration.\u003c/li\u003e\n\u003cli\u003eUnused \u003ccode\u003eutils.range_scan\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConverting content to Unicode bytes may insert \u003ccode\u003eutf_8\u003c/code\u003e instead of preferred \u003ccode\u003eutf-8\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning \u0026quot;'count' is passed as positional argument\u0026quot; when converting to Unicode bytes on Python 3.13+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0\"\u003e3.4.0\u003c/a\u003e (2024-10-08)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.6.1 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.8.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.10.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release. Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003cp\u003eThis release was published to PyPI using Trusted Publishing.\u003c/p\u003e\n\u003ch2\u003ednspython 2.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.9.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release.  Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns/btreezone.py provides another zone versioned implementation built on top of a\nB-tree.  It maintains DNSSEC sort order, labels nodes as delegation points or glue,\nand can find the \u0026quot;bounds\u0026quot; of a name (useful for DNSSEC responses).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/query.py now provides make_socket(), make_ssl_socket(), and make_ssl_context()\nto make using persistent connections with the query code easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/win32util.py now supports explicitly setting the configuration method used to get\nsystem dns info, using the set_config_method() function.   There is a new configuration\nmethod that uses the Win32 API, which can be set using\nset_config_method(ConfigMethod.Win32).  We are considering making the Win32 API\nthe default in the future as we believe it to be the most accurate.  Any feedback on\nit compared to the other methods is welcome.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe DSYNC record is now supported.  This type is still in draft stage at the IETF\nand is subject to change.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns.query.https() and dns.asyncquery.https() now support HTTP/3 and the http_version\nparameter may be used to specify which version to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the cryptography module is installed, then dnspython will now create deterministic\nECDSA signatures by default.  Cryptography, if installed, must be at least version 43.\nThanks to Jakob Schlyter for adding the feature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe RESINFO and WALLET RdataTypes are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe COOKIE and Report-Channel EDNS0 options are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAll supported RdataTypes can now be imported at a single time rather than lazily on\nfirst use by calling dns.rdata.load_all_types().\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe SVCB and HTTPS records now support the ohttp parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003exfr() and inbound_xfr() now share a common implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTokens are now supported for QUIC and HTTP/3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.from_wire() now saves the input wire format in the Message's \u0026quot;wire\u0026quot;\nattribute.  Likewise, dns.message.Message.to_wire() now records the generated\nwire format in that attribute.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe dns.message.Message object now has a get_options() helper to retrieve EDNS0\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/77fd94cd9716faf23e0a6e333f6568fc24284402\"\u003e\u003ccode\u003e77fd94c\u003c/code\u003e\u003c/a\u003e 2.8.0 versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/884f38345a8152342fe8ab5da8db9aab654051ba\"\u003e\u003ccode\u003e884f383\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/1938fe331f97376bf91c028fbfb8c7588c1b84f4\"\u003e\u003ccode\u003e1938fe3\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a35d6925efe20744e8cf7545d19d03ba06e7ab6f\"\u003e\u003ccode\u003ea35d692\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/c862baaf0d0aa36d2e7003dfe226cd6ad4d827c4\"\u003e\u003ccode\u003ec862baa\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/0945d5923d58048c17325975f70f0738c87570b4\"\u003e\u003ccode\u003e0945d59\u003c/code\u003e\u003c/a\u003e more lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8fa6766d2f7a2431372fc912fb334e752290ebf2\"\u003e\u003ccode\u003e8fa6766\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/641633503ee6b07bf382594ac04707072b90de18\"\u003e\u003ccode\u003e6416335\u003c/code\u003e\u003c/a\u003e Type syntax (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a4591447b7d6e38479bcddb14de3b69f314e7009\"\u003e\u003ccode\u003ea459144\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a0d5f172e89f30709b47b59fb0919d8cf137f611\"\u003e\u003ccode\u003ea0d5f17\u003c/code\u003e\u003c/a\u003e fix the all entries\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.6.1...v2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-cors` from 6.0.0 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/corydolphin/flask-cors/releases\"\u003eflask-cors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInvert regex sorting to make it correctly match the intent (sorting by specificity descending) \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1.dev\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/a5003f391e56f74f11a3e509cd180787c75eb6b0\"\u003e\u003ccode\u003ea5003f3\u003c/code\u003e\u003c/a\u003e Fix README file extension in pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/4ad56d6c20252d36031c74ba8386a81e94286f40\"\u003e\u003ccode\u003e4ad56d6\u003c/code\u003e\u003c/a\u003e Fix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `frozenlist` from 1.7.0 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/frozenlist/releases\"\u003efrozenlist's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.0\u003c/h2\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe :file:\u003ccode\u003ereusable-cibuildwheel.yml\u003c/code\u003e workflow has been refactored to\nbe more generic and :file:\u003ccode\u003eci-cd.yml\u003c/code\u003e now holds all the configuration\ntoggles -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/668\"\u003e#668\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen building wheels, the source distribution is now passed directly\nto the \u003ccode\u003ecibuildwheel\u003c/code\u003e invocation -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/669\"\u003e#669\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBuilds and tests have been added to\n\u003ccode\u003eci-cd.yml\u003c/code\u003e for arm64 Windows wheels -- by :user:\u003ccode\u003efinnagin\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/677\"\u003e#677\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eStarted building wheels for CPython 3.14 -- by :user:\u003ccode\u003ekumaraditya303\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/681\"\u003e#681\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/682\"\u003e#682\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003e--config-settings=pure-python=false\u003c/code\u003e from :file:\u003ccode\u003erequirements/dev.txt\u003c/code\u003e.\nDevelopers on CPython still get accelerated builds by default. To explicitly build\na pure Python wheel, use \u003ccode\u003epip install -e . --config-settings=pure-python=true\u003c/code\u003e\n-- by :user:\u003ccode\u003ebdraco\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/687\"\u003e#687\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/frozenlist/blob/master/CHANGES.rst\"\u003efrozenlist's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev1.8.0\u003c/h1\u003e\n\u003cp\u003e\u003cem\u003e(2025-10-05)\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe :file:\u003ccode\u003ereusable-cibuildwheel.yml\u003c/code\u003e workflow has been refactored to\nbe more generic and :file:\u003ccode\u003eci-cd.yml\u003c/code\u003e now holds all the configuration\ntoggles -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e668\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen building wheels, the source distribution is now passed directly\nto the \u003ccode\u003ecibuildwheel\u003c/code\u003e invocation -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e669\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBuilds and tests have been added to\n\u003ccode\u003eci-cd.yml\u003c/code\u003e for arm64 Windows wheels -- by :user:\u003ccode\u003efinnagin\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e677\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eStarted building wheels for CPython 3.14 -- by :user:\u003ccode\u003ekumaraditya303\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e681\u003c/code\u003e, :issue:\u003ccode\u003e682\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003e--config-settings=pure-python=false\u003c/code\u003e from :file:\u003ccode\u003erequirements/dev.txt\u003c/code\u003e.\nDevelopers on CPython still get accelerated builds by default. To explicitly build\na pure Python wheel, use \u003ccode\u003epip install -e . --config-settings=pure-python=true\u003c/code\u003e\n-- by :user:\u003ccode\u003ebdraco\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e687\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/48324affeecc2fff8f84f38368f720426c0354cf\"\u003e\u003ccode\u003e48324af\u003c/code\u003e\u003c/a\u003e Release 1.8.0 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/698\"\u003e#698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/7e5eab0c6fef4898fe43827b68e2722a385a8383\"\u003e\u003ccode\u003e7e5eab0\u003c/code\u003e\u003c/a\u003e Add windows arm64 support (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/678\"\u003e#678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/a2c22c28622534e4d90abdd931acd9d9a2aaa457\"\u003e\u003ccode\u003ea2c22c2\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sphinx from 7.2.6 to 7.4.7 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/752b80a14924c53317b0b4cb4d8212a3daf06719\"\u003e\u003ccode\u003e752b80a\u003c/code\u003e\u003c/a\u003e Build(deps): Bump types-setuptools from 75.8.0.20250210 to 80.9.0.20250822 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/6b9d557b189dfc8f1f9afdfcc9b6ddd8ccfc9f76\"\u003e\u003ccode\u003e6b9d557\u003c/code\u003e\u003c/a\u003e Build(deps): Bump cython from 3.1.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/7c4ad20e8ef0e6dc7dc7bfa49067d30477401890\"\u003e\u003ccode\u003e7c4ad20\u003c/code\u003e\u003c/a\u003e Build(deps-dev): Bump tox from 4.11.4 to 4.30.3 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/65f35d660661309808804b119d8fedb950527dc4\"\u003e\u003ccode\u003e65f35d6\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pre-commit from 3.5.0 to 4.3.0 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/697\"\u003e#697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/1ad02630d8fabf2cc67c7b2549115440edbd1be9\"\u003e\u003ccode\u003e1ad0263\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 7.4.3 to 8.4.2 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/884ee492579139df7c634f20ee27133d06551935\"\u003e\u003ccode\u003e884ee49\u003c/code\u003e\u003c/a\u003e Build(deps): Bump aiohttp-theme from 0.1.6 to 0.1.7 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/689\"\u003e#689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/b2d618044281d0ef534253d8cf087f80569d492c\"\u003e\u003ccode\u003eb2d6180\u003c/code\u003e\u003c/a\u003e Fix dependabot updates (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/frozenlist/compare/v1.7.0...v1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 6.8.0 to 8.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev8.7.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.metadata()\u003c/code\u003e (and \u003ccode\u003eDistribution.metadata\u003c/code\u003e) can now return \u003ccode\u003eNone\u003c/code\u003e if the metadata directory exists but not metadata file is present. (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise consistent ValueError for invalid EntryPoint.value (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed indentation logic to also honor blank lines.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#119650\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeferred import of zipfile.Path (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeferred import of json (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRely on zipp overlay for zipfile.Path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.4.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/708dff4f1ab89bdd126e3e8c56098d04282c5809\"\u003e\u003ccode\u003e708dff4\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b3065f03cc3395f46ed575e612e213f92a064879\"\u003e\u003ccode\u003eb3065f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/519\"\u003e#519\u003c/a\u003e from python/bugfix/493-metadata-missing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/e4351c226765f53a40316fa6aab50488aee8a90f\"\u003e\u003ccode\u003ee4351c2\u003c/code\u003e\u003c/a\u003e Add a new test capturing the new expectation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/5a657051f7386de6f0560c200d78e941be2c8058\"\u003e\u003ccode\u003e5a65705\u003c/code\u003e\u003c/a\u003e Refactor the casting into a wrapper for brevity and to document its purpose.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0830c39b8a23e48024365120c0e97a6f7c36c5ec\"\u003e\u003ccode\u003e0830c39\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/22bb567692d8e7bd216f864a9d8dee1272ee8674\"\u003e\u003ccode\u003e22bb567\u003c/code\u003e\u003c/a\u003e Fix type errors where metadata could be None.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/57f31d77e18fef11dfadfd44775f253971c36920\"\u003e\u003ccode\u003e57f31d7\u003c/code\u003e\u003c/a\u003e Allow metadata to return None when there is no metadata present.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b9c4be4253250ad604610db66204e5fa70fa2455\"\u003e\u003ccode\u003eb9c4be4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e from python/bugfix/488-bad-ep-value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9f8af013635833cf3ac348413c9ac63b37caa3dd\"\u003e\u003ccode\u003e9f8af01\u003c/code\u003e\u003c/a\u003e Prefer a cached property, as the property is likely to be retrieved at least ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/f179e28888b2c6caf12baaf5449ff1cd82513dfe\"\u003e\u003ccode\u003ef179e28\u003c/code\u003e\u003c/a\u003e Also raise ValueError on construction if the value is invalid.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v6.8.0...v8.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `itsdangerous` from 2.1.2 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/releases\"\u003eitsdangerous's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003cp\u003eThis is a feature release, which includes new features, removes previously deprecated code, and adds new deprecations. The 2.2.x branch is now the supported fix branch, the 2.1.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003eChanges: \u003ca href=\"https://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\"\u003ehttps://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/itsdangerous/milestone/8?closed=1\"\u003ehttps://github.com/pallets/itsdangerous/milestone/8?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking. By default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a different \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return type of its \u003ccode\u003edumps\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/blob/main/CHANGES.rst\"\u003eitsdangerous's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-16\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7. :pr:\u003ccode\u003e372\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e326\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e371\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking.\nBy default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a\ndifferent \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return\ntype of its \u003ccode\u003edumps\u003c/code\u003e method. :issue:\u003ccode\u003e347\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/asusoda/platform/pull/88","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asusoda%2Fplatform/issues/88","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/88/packages"},{"uuid":"2884083457","node_id":"PR_kwDOKXLyYM6r558B","number":87,"state":"open","title":"Bump the python-deps group across 1 directory with 31 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-03T07:33:08.000Z","updated_at":"2025-10-03T07:33:10.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-deps","update_count":31,"packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"asgiref","old_version":"3.9.1","new_version":"3.9.2","repository_url":"https://github.com/django/asgiref"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"attrs","old_version":"23.1.0","new_version":"25.3.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"cachetools","old_version":"5.3.2","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.6.1","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"flask-cors","old_version":"6.0.0","new_version":"6.0.1","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"importlib-metadata","old_version":"6.8.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"nest-asyncio","old_version":"1.5.8","new_version":"1.6.0","repository_url":"https://github.com/erdewit/nest_asyncio"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.15.2","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"python-engineio","old_version":"4.9.0","new_version":"4.12.3","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-socketio","old_version":"5.11.2","new_version":"5.14.1","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"simple-websocket","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/miguelgrinberg/simple-websocket"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"werkzeug","old_version":"3.0.6","new_version":"3.1.3","repository_url":"https://github.com/pallets/werkzeug"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.184.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"selenium","old_version":"4.32.0","new_version":"4.36.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"cryptography","old_version":"45.0.6","new_version":"46.0.2","repository_url":"https://github.com/pyca/cryptography"},{"name":"notion-client","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-api-core","old_version":"2.25.1","new_version":"2.25.2","repository_url":"https://github.com/googleapis/python-api-core"},{"name":"google-genai","old_version":"1.30.0","new_version":"1.41.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"anthropic","old_version":"0.64.0","new_version":"0.69.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"1.102.0","new_version":"2.1.0","repository_url":"https://github.com/openai/openai-python"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 30 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.9.2` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `23.1.0` | `25.3.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.3.2` | `6.2.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.6.1` | `2.8.0` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.0` | `6.0.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.8.0` | `8.7.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [nest-asyncio](https://github.com/erdewit/nest_asyncio) | `1.5.8` | `1.6.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.15.2` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.9.0` | `4.12.3` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.11.2` | `5.14.1` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [simple-websocket](https://github.com/miguelgrinberg/simple-websocket) | `1.0.0` | `1.1.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.0.6` | `3.1.3` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.184.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.32.0` | `4.36.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.6` | `46.0.2` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `2.4.0` | `2.5.0` |\n| [google-api-core](https://github.com/googleapis/python-api-core) | `2.25.1` | `2.25.2` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.30.0` | `1.41.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.64.0` | `0.69.0` |\n| [openai](https://github.com/openai/openai-python) | `1.102.0` | `2.1.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.9.1 to 3.9.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.9.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-timeout` from 4.0.3 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/releases\"\u003easync-timeout's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst\"\u003easync-timeout's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.1 (2024-11-06)\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.0.0 (2024-10-31)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/cc52d410e733b302873e6e52db9a9b6578d053a4\"\u003e\u003ccode\u003ecc52d41\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/1af7d7165d598af03e51952a679c690690dc7f8e\"\u003e\u003ccode\u003e1af7d71\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3bf26d96e3d1830a0e72ddab9c6a2c87e1f4380a\"\u003e\u003ccode\u003e3bf26d9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/423\"\u003e#423\u003c/a\u003e: add requirements.txt to sdist package (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/380e8ba5bf77e3cd184df8a5f51dc929d93d8553\"\u003e\u003ccode\u003e380e8ba\u003c/code\u003e\u003c/a\u003e Mention condition import of asyncio.timeout / async_timeout.timeout in README...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/8a232d0f7fc1af88c8d921500d78bbefc2bc545c\"\u003e\u003ccode\u003e8a232d0\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3d3e3e45420ac6ea0ef77c9e32388e252e12ac4d\"\u003e\u003ccode\u003e3d3e3e4\u003c/code\u003e\u003c/a\u003e Bump to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/d5c21f3dee7eeb06823af77284ad2a899611b28e\"\u003e\u003ccode\u003ed5c21f3\u003c/code\u003e\u003c/a\u003e Mimic asyncio.Timeout behavior (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/a1111c2597b9ce8d34b823c1b993689339ea9fd6\"\u003e\u003ccode\u003ea1111c2\u003c/code\u003e\u003c/a\u003e Drop deprecated sync context manager support (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/00fd343ce6ba2ccc291c0f6e09fea8998cbfe3a1\"\u003e\u003ccode\u003e00fd343\u003c/code\u003e\u003c/a\u003e Imports cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/7b61b33ae0ecee0e0bb0e09f2e5787c647d4ffb8\"\u003e\u003ccode\u003e7b61b33\u003c/code\u003e\u003c/a\u003e Update CI config file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-timeout/compare/v4.0.3...v5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 23.1.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 5.3.2 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.0.0 (2025-05-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequire Python 3.9 or later (breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003eMRUCache\u003c/code\u003e and the \u003ccode\u003e@func.mru_cache\u003c/code\u003e decorator (breaking\nchange).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd an optional \u003ccode\u003econdition\u003c/code\u003e parameter to the \u003ccode\u003e@cached\u003c/code\u003e and\n\u003ccode\u003e@cachedmethod\u003c/code\u003e decorators, which, when used with a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance, should improve \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues in massively\nparallel environments.  Note that this will inflict some performance\npenalty, and therefore has to be enabled explicitly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert the \u003ccode\u003ecachetools.func\u003c/code\u003e decorators to use a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance to deal with \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues.  Note that\nthis \u003cem\u003emay\u003c/em\u003e result in a noticable performance degradation, depending\non your actual use case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate support for \u003ccode\u003ecache(self)\u003c/code\u003e returning \u003ccode\u003eNone\u003c/code\u003e to suppress\ncaching with the \u003ccode\u003e@cachedmethod\u003c/code\u003e decorator.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ev5.5.2 (2025-02-20)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/e497575fcb4d29dfb773824956539215db964059\"\u003e\u003ccode\u003ee497575\u003c/code\u003e\u003c/a\u003e Release v6.0.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/0a8f391979f72f3237be8cdb79d6128dd5caeb93\"\u003e\u003ccode\u003e0a8f391\u003c/code\u003e\u003c/a\u003e Update related projects section.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/3afef37bdbf8fa8f6dddbc303ecd91c9fd32ab01\"\u003e\u003ccode\u003e3afef37\u003c/code\u003e\u003c/a\u003e Pre-release v6.0.0b4.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.3.2...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003cp\u003eIt leverages charset-normalizer in a better way! Check it out, you will gain up to being 3X faster and get a real/respectable support with it.\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebuild-requirements.txt\u003c/code\u003e as per using \u003ccode\u003epyproject.toml\u003c/code\u003e native build configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/integration.py\u003c/code\u003e and \u003ccode\u003ebin/serve.py\u003c/code\u003e in favor of downstream integration test (see noxfile).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e in favor of \u003ccode\u003epyproject.toml\u003c/code\u003e metadata configuration.\u003c/li\u003e\n\u003cli\u003eUnused \u003ccode\u003eutils.range_scan\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConverting content to Unicode bytes may insert \u003ccode\u003eutf_8\u003c/code\u003e instead of preferred \u003ccode\u003eutf-8\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning \u0026quot;'count' is passed as positional argument\u0026quot; when converting to Unicode bytes on Python 3.13+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0\"\u003e3.4.0\u003c/a\u003e (2024-10-08)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.6.1 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.8.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.10.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release. Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003cp\u003eThis release was published to PyPI using Trusted Publishing.\u003c/p\u003e\n\u003ch2\u003ednspython 2.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.9.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release.  Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns/btreezone.py provides another zone versioned implementation built on top of a\nB-tree.  It maintains DNSSEC sort order, labels nodes as delegation points or glue,\nand can find the \u0026quot;bounds\u0026quot; of a name (useful for DNSSEC responses).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/query.py now provides make_socket(), make_ssl_socket(), and make_ssl_context()\nto make using persistent connections with the query code easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/win32util.py now supports explicitly setting the configuration method used to get\nsystem dns info, using the set_config_method() function.   There is a new configuration\nmethod that uses the Win32 API, which can be set using\nset_config_method(ConfigMethod.Win32).  We are considering making the Win32 API\nthe default in the future as we believe it to be the most accurate.  Any feedback on\nit compared to the other methods is welcome.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe DSYNC record is now supported.  This type is still in draft stage at the IETF\nand is subject to change.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns.query.https() and dns.asyncquery.https() now support HTTP/3 and the http_version\nparameter may be used to specify which version to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the cryptography module is installed, then dnspython will now create deterministic\nECDSA signatures by default.  Cryptography, if installed, must be at least version 43.\nThanks to Jakob Schlyter for adding the feature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe RESINFO and WALLET RdataTypes are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe COOKIE and Report-Channel EDNS0 options are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAll supported RdataTypes can now be imported at a single time rather than lazily on\nfirst use by calling dns.rdata.load_all_types().\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe SVCB and HTTPS records now support the ohttp parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003exfr() and inbound_xfr() now share a common implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTokens are now supported for QUIC and HTTP/3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.from_wire() now saves the input wire format in the Message's \u0026quot;wire\u0026quot;\nattribute.  Likewise, dns.message.Message.to_wire() now records the generated\nwire format in that attribute.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe dns.message.Message object now has a get_options() helper to retrieve EDNS0\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/77fd94cd9716faf23e0a6e333f6568fc24284402\"\u003e\u003ccode\u003e77fd94c\u003c/code\u003e\u003c/a\u003e 2.8.0 versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/884f38345a8152342fe8ab5da8db9aab654051ba\"\u003e\u003ccode\u003e884f383\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/1938fe331f97376bf91c028fbfb8c7588c1b84f4\"\u003e\u003ccode\u003e1938fe3\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a35d6925efe20744e8cf7545d19d03ba06e7ab6f\"\u003e\u003ccode\u003ea35d692\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/c862baaf0d0aa36d2e7003dfe226cd6ad4d827c4\"\u003e\u003ccode\u003ec862baa\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/0945d5923d58048c17325975f70f0738c87570b4\"\u003e\u003ccode\u003e0945d59\u003c/code\u003e\u003c/a\u003e more lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8fa6766d2f7a2431372fc912fb334e752290ebf2\"\u003e\u003ccode\u003e8fa6766\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/641633503ee6b07bf382594ac04707072b90de18\"\u003e\u003ccode\u003e6416335\u003c/code\u003e\u003c/a\u003e Type syntax (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a4591447b7d6e38479bcddb14de3b69f314e7009\"\u003e\u003ccode\u003ea459144\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a0d5f172e89f30709b47b59fb0919d8cf137f611\"\u003e\u003ccode\u003ea0d5f17\u003c/code\u003e\u003c/a\u003e fix the all entries\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.6.1...v2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-cors` from 6.0.0 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/corydolphin/flask-cors/releases\"\u003eflask-cors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInvert regex sorting to make it correctly match the intent (sorting by specificity descending) \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1.dev\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/a5003f391e56f74f11a3e509cd180787c75eb6b0\"\u003e\u003ccode\u003ea5003f3\u003c/code\u003e\u003c/a\u003e Fix README file extension in pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/4ad56d6c20252d36031c74ba8386a81e94286f40\"\u003e\u003ccode\u003e4ad56d6\u003c/code\u003e\u003c/a\u003e Fix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 6.8.0 to 8.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev8.7.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.metadata()\u003c/code\u003e (and \u003ccode\u003eDistribution.metadata\u003c/code\u003e) can now return \u003ccode\u003eNone\u003c/code\u003e if the metadata directory exists but not metadata file is present. (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise consistent ValueError for invalid EntryPoint.value (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed indentation logic to also honor blank lines.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#119650\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeferred import of zipfile.Path (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeferred import of json (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRely on zipp overlay for zipfile.Path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.4.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/708dff4f1ab89bdd126e3e8c56098d04282c5809\"\u003e\u003ccode\u003e708dff4\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b3065f03cc3395f46ed575e612e213f92a064879\"\u003e\u003ccode\u003eb3065f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/519\"\u003e#519\u003c/a\u003e from python/bugfix/493-metadata-missing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/e4351c226765f53a40316fa6aab50488aee8a90f\"\u003e\u003ccode\u003ee4351c2\u003c/code\u003e\u003c/a\u003e Add a new test capturing the new expectation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/5a657051f7386de6f0560c200d78e941be2c8058\"\u003e\u003ccode\u003e5a65705\u003c/code\u003e\u003c/a\u003e Refactor the casting into a wrapper for brevity and to document its purpose.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0830c39b8a23e48024365120c0e97a6f7c36c5ec\"\u003e\u003ccode\u003e0830c39\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/22bb567692d8e7bd216f864a9d8dee1272ee8674\"\u003e\u003ccode\u003e22bb567\u003c/code\u003e\u003c/a\u003e Fix type errors where metadata could be None.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/57f31d77e18fef11dfadfd44775f253971c36920\"\u003e\u003ccode\u003e57f31d7\u003c/code\u003e\u003c/a\u003e Allow metadata to return None when there is no metadata present.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b9c4be4253250ad604610db66204e5fa70fa2455\"\u003e\u003ccode\u003eb9c4be4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e from python/bugfix/488-bad-ep-value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9f8af013635833cf3ac348413c9ac63b37caa3dd\"\u003e\u003ccode\u003e9f8af01\u003c/code\u003e\u003c/a\u003e Prefer a cached property, as the property is likely to be retrieved at least ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/f179e28888b2c6caf12baaf5449ff1cd82513dfe\"\u003e\u003ccode\u003ef179e28\u003c/code\u003e\u003c/a\u003e Also raise ValueError on construction if the value is invalid.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v6.8.0...v8.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `itsdangerous` from 2.1.2 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/releases\"\u003eitsdangerous's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003cp\u003eThis is a feature release, which includes new features, removes previously deprecated code, and adds new deprecations. The 2.2.x branch is now the supported fix branch, the 2.1.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003eChanges: \u003ca href=\"https://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\"\u003ehttps://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/itsdangerous/milestone/8?closed=1\"\u003ehttps://github.com/pallets/itsdangerous/milestone/8?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking. By default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a different \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return type of its \u003ccode\u003edumps\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/blob/main/CHANGES.rst\"\u003eitsdangerous's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-16\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7. :pr:\u003ccode\u003e372\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e326\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e371\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking.\nBy default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a\ndifferent \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return\ntype of its \u003ccode\u003edumps\u003c/code\u003e method. :issue:\u003ccode\u003e347\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e375\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/096c8d42545d3b68ea21a4f890fb2b2d8979c0bd\"\u003e\u003ccode\u003e096c8d4\u003c/code\u003e\u003c/a\u003e release version 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/7f4dcf83a07bb3d53f4e0e65ef1b43327b4cca90\"\u003e\u003ccode\u003e7f4dcf8\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/93ae366874bbd4f69d90495c45b2cd336387496c\"\u003e\u003ccode\u003e93ae366\u003c/code\u003e\u003c/a\u003e change entry for generic serializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/135eb234ed4a07520779ffb679407b7d27c8ffe6\"\u003e\u003ccode\u003e135eb23\u003c/code\u003e\u003c/a\u003e Generic serializer (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/999ce7af1f0502a224d33338e6ded8bc1e81cb2f\"\u003e\u003ccode\u003e999ce7a\u003c/code\u003e\u003c/a\u003e Improve generic typing further\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/52890d78bb6d92eac4d8d84f33f61be8bd803da7\"\u003e\u003ccode\u003e52890d7\u003c/code\u003e\u003c/a\u003e improve generic typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/385c0eb7501b121b1fddafe19c547073f5a458a0\"\u003e\u003ccode\u003e385c0eb\u003c/code\u003e\u003c/a\u003e type \u003ccode\u003eSerializer\u003c/code\u003e as generic (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/01001c63af4a1c58b65328b2aad3df75a6edc843\"\u003e\u003ccode\u003e01001c6\u003c/code\u003e\u003c/a\u003e type Serializer as generic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/bc88e945d31c407e16c3f4e1c713c12dd598e58d\"\u003e\u003ccode\u003ebc88e94\u003c/code\u003e\u003c/a\u003e improve typing (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/69a3bca7582859bc8ce83ccc28b0cf33f7909388\"\u003e\u003ccode\u003e69a3bca\u003c/code\u003e\u003c/a\u003e improve typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/itsdangerous/compare/2.1.2...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nest-asyncio` from 1.5.8 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/erdewit/nest_asyncio/releases\"\u003enest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev1.6.0\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/19f396f9396bfd34b1b0caeb9b4c631ee3d7eb21\"\u003e\u003ccode\u003e19f396f\u003c/code\u003e\u003c/a\u003e Remove redundant blank line.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c31e7c44f063819ea2d0738e3c72c25458d3fd1b\"\u003e\u003ccode\u003ec31e7c4\u003c/code\u003e\u003c/a\u003e Pre-empt current task before running handle, allowing unpatched tasks, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/80\"\u003e#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/35618de086e8844d24039d2fcd090b8f1647c743\"\u003e\u003ccode\u003e35618de\u003c/code\u003e\u003c/a\u003e v1.5.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c4b8289fe4f4a3192fd1d501e74df08fd93ed348\"\u003e\u003ccode\u003ec4b8289\u003c/code\u003e\u003c/a\u003e Fix patching an already running Proactor loop, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/87\"\u003e#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/d5a13b0d5f156ac9076fbc244f49fb9d48af9bbc\"\u003e\u003ccode\u003ed5a13b0\u003c/code\u003e\u003c/a\u003e Update link to build icon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/a48a68a47e182bd7e1f86c60dfc07d7b8509508b\"\u003e\u003ccode\u003ea48a68a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/84\"\u003e#84\u003c/a\u003e from 5j9/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c20e77426bfb9be50d514a850bc4cabbbc69f114\"\u003e\u003ccode\u003ec20e774\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/f7ce59048cdaace5a1a82c78ef476c3bbb3b664a\"\u003e\u003ccode\u003ef7ce590\u003c/code\u003e\u003c/a\u003e v1.5.8\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/erdewit/nest_asyncio/compare/v1.5.8...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.8.0 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent partial matching of \u003ccode\u003eiss\u003c/code\u003e claim. Thanks \u003ca href=\"https://github.com/fabianbadoi\"\u003e\u003ccode\u003e@​fabianbadoi\u003c/code\u003e\u003c/a\u003e! (See: \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisori...\n\n_Description has been truncated_","html_url":"https://github.com/asusoda/platform/pull/87","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asusoda%2Fplatform/issues/87","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/87/packages"},{"uuid":"3474933097","node_id":"PR_kwDOHF08OM6roWsj","number":1119,"state":"open","title":"chore(deps): bump aiosignal from 1.3.1 to 1.4.0 in /sdk/python","user":"dependabot[bot]","labels":["stale"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-10-01T20:01:53.000Z","updated_at":"2025-11-02T04:00:37.296Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"}],"path":"/sdk/python","ecosystem":"pip"},"body":"Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal\u0026package-manager=pip\u0026previous-version=1.3.1\u0026new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/dolanor/dagger/pull/1119","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dolanor%2Fdagger/issues/1119","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1119/packages"},{"uuid":"3467964984","node_id":"PR_kwDOKXLyYM6rQl70","number":85,"state":"open","title":"Bump the python-deps group across 1 directory with 30 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-30T07:29:43.000Z","updated_at":"2025-10-03T07:31:37.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-deps","update_count":30,"packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"asgiref","old_version":"3.9.1","new_version":"3.9.2","repository_url":"https://github.com/django/asgiref"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"attrs","old_version":"23.1.0","new_version":"25.3.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"cachetools","old_version":"5.3.2","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.6.1","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"flask-cors","old_version":"6.0.0","new_version":"6.0.1","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"importlib-metadata","old_version":"6.8.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"nest-asyncio","old_version":"1.5.8","new_version":"1.6.0","repository_url":"https://github.com/erdewit/nest_asyncio"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.15.1","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"python-engineio","old_version":"4.9.0","new_version":"4.12.3","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-socketio","old_version":"5.11.2","new_version":"5.13.0","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"simple-websocket","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/miguelgrinberg/simple-websocket"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"werkzeug","old_version":"3.0.6","new_version":"3.1.3","repository_url":"https://github.com/pallets/werkzeug"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.183.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"selenium","old_version":"4.32.0","new_version":"4.35.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"cryptography","old_version":"45.0.6","new_version":"46.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"notion-client","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-genai","old_version":"1.30.0","new_version":"1.39.1","repository_url":"https://github.com/googleapis/python-genai"},{"name":"anthropic","old_version":"0.64.0","new_version":"0.69.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"1.102.0","new_version":"1.109.1","repository_url":"https://github.com/openai/openai-python"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the python-deps group with 29 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.9.2` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `23.1.0` | `25.3.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.3.2` | `6.2.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.6.1` | `2.8.0` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.0` | `6.0.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.8.0` | `8.7.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [nest-asyncio](https://github.com/erdewit/nest_asyncio) | `1.5.8` | `1.6.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.15.1` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.9.0` | `4.12.3` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.11.2` | `5.13.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [simple-websocket](https://github.com/miguelgrinberg/simple-websocket) | `1.0.0` | `1.1.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.0.6` | `3.1.3` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.183.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.32.0` | `4.35.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.6` | `46.0.1` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `2.4.0` | `2.5.0` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.30.0` | `1.39.1` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.64.0` | `0.69.0` |\n| [openai](https://github.com/openai/openai-python) | `1.102.0` | `1.109.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.9.1 to 3.9.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.9.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-timeout` from 4.0.3 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/releases\"\u003easync-timeout's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst\"\u003easync-timeout's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.1 (2024-11-06)\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.0.0 (2024-10-31)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/cc52d410e733b302873e6e52db9a9b6578d053a4\"\u003e\u003ccode\u003ecc52d41\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/1af7d7165d598af03e51952a679c690690dc7f8e\"\u003e\u003ccode\u003e1af7d71\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3bf26d96e3d1830a0e72ddab9c6a2c87e1f4380a\"\u003e\u003ccode\u003e3bf26d9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/423\"\u003e#423\u003c/a\u003e: add requirements.txt to sdist package (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/380e8ba5bf77e3cd184df8a5f51dc929d93d8553\"\u003e\u003ccode\u003e380e8ba\u003c/code\u003e\u003c/a\u003e Mention condition import of asyncio.timeout / async_timeout.timeout in README...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/8a232d0f7fc1af88c8d921500d78bbefc2bc545c\"\u003e\u003ccode\u003e8a232d0\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3d3e3e45420ac6ea0ef77c9e32388e252e12ac4d\"\u003e\u003ccode\u003e3d3e3e4\u003c/code\u003e\u003c/a\u003e Bump to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/d5c21f3dee7eeb06823af77284ad2a899611b28e\"\u003e\u003ccode\u003ed5c21f3\u003c/code\u003e\u003c/a\u003e Mimic asyncio.Timeout behavior (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/a1111c2597b9ce8d34b823c1b993689339ea9fd6\"\u003e\u003ccode\u003ea1111c2\u003c/code\u003e\u003c/a\u003e Drop deprecated sync context manager support (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/00fd343ce6ba2ccc291c0f6e09fea8998cbfe3a1\"\u003e\u003ccode\u003e00fd343\u003c/code\u003e\u003c/a\u003e Imports cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/7b61b33ae0ecee0e0bb0e09f2e5787c647d4ffb8\"\u003e\u003ccode\u003e7b61b33\u003c/code\u003e\u003c/a\u003e Update CI config file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-timeout/compare/v4.0.3...v5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 23.1.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 5.3.2 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.0.0 (2025-05-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequire Python 3.9 or later (breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003eMRUCache\u003c/code\u003e and the \u003ccode\u003e@func.mru_cache\u003c/code\u003e decorator (breaking\nchange).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd an optional \u003ccode\u003econdition\u003c/code\u003e parameter to the \u003ccode\u003e@cached\u003c/code\u003e and\n\u003ccode\u003e@cachedmethod\u003c/code\u003e decorators, which, when used with a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance, should improve \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues in massively\nparallel environments.  Note that this will inflict some performance\npenalty, and therefore has to be enabled explicitly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert the \u003ccode\u003ecachetools.func\u003c/code\u003e decorators to use a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance to deal with \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues.  Note that\nthis \u003cem\u003emay\u003c/em\u003e result in a noticable performance degradation, depending\non your actual use case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate support for \u003ccode\u003ecache(self)\u003c/code\u003e returning \u003ccode\u003eNone\u003c/code\u003e to suppress\ncaching with the \u003ccode\u003e@cachedmethod\u003c/code\u003e decorator.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ev5.5.2 (2025-02-20)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/e497575fcb4d29dfb773824956539215db964059\"\u003e\u003ccode\u003ee497575\u003c/code\u003e\u003c/a\u003e Release v6.0.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/0a8f391979f72f3237be8cdb79d6128dd5caeb93\"\u003e\u003ccode\u003e0a8f391\u003c/code\u003e\u003c/a\u003e Update related projects section.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/3afef37bdbf8fa8f6dddbc303ecd91c9fd32ab01\"\u003e\u003ccode\u003e3afef37\u003c/code\u003e\u003c/a\u003e Pre-release v6.0.0b4.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.3.2...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003cp\u003eIt leverages charset-normalizer in a better way! Check it out, you will gain up to being 3X faster and get a real/respectable support with it.\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebuild-requirements.txt\u003c/code\u003e as per using \u003ccode\u003epyproject.toml\u003c/code\u003e native build configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/integration.py\u003c/code\u003e and \u003ccode\u003ebin/serve.py\u003c/code\u003e in favor of downstream integration test (see noxfile).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e in favor of \u003ccode\u003epyproject.toml\u003c/code\u003e metadata configuration.\u003c/li\u003e\n\u003cli\u003eUnused \u003ccode\u003eutils.range_scan\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConverting content to Unicode bytes may insert \u003ccode\u003eutf_8\u003c/code\u003e instead of preferred \u003ccode\u003eutf-8\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning \u0026quot;'count' is passed as positional argument\u0026quot; when converting to Unicode bytes on Python 3.13+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0\"\u003e3.4.0\u003c/a\u003e (2024-10-08)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.6.1 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.8.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.10.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release. Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003cp\u003eThis release was published to PyPI using Trusted Publishing.\u003c/p\u003e\n\u003ch2\u003ednspython 2.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.9.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release.  Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns/btreezone.py provides another zone versioned implementation built on top of a\nB-tree.  It maintains DNSSEC sort order, labels nodes as delegation points or glue,\nand can find the \u0026quot;bounds\u0026quot; of a name (useful for DNSSEC responses).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/query.py now provides make_socket(), make_ssl_socket(), and make_ssl_context()\nto make using persistent connections with the query code easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/win32util.py now supports explicitly setting the configuration method used to get\nsystem dns info, using the set_config_method() function.   There is a new configuration\nmethod that uses the Win32 API, which can be set using\nset_config_method(ConfigMethod.Win32).  We are considering making the Win32 API\nthe default in the future as we believe it to be the most accurate.  Any feedback on\nit compared to the other methods is welcome.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe DSYNC record is now supported.  This type is still in draft stage at the IETF\nand is subject to change.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns.query.https() and dns.asyncquery.https() now support HTTP/3 and the http_version\nparameter may be used to specify which version to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the cryptography module is installed, then dnspython will now create deterministic\nECDSA signatures by default.  Cryptography, if installed, must be at least version 43.\nThanks to Jakob Schlyter for adding the feature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe RESINFO and WALLET RdataTypes are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe COOKIE and Report-Channel EDNS0 options are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAll supported RdataTypes can now be imported at a single time rather than lazily on\nfirst use by calling dns.rdata.load_all_types().\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe SVCB and HTTPS records now support the ohttp parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003exfr() and inbound_xfr() now share a common implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTokens are now supported for QUIC and HTTP/3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.from_wire() now saves the input wire format in the Message's \u0026quot;wire\u0026quot;\nattribute.  Likewise, dns.message.Message.to_wire() now records the generated\nwire format in that attribute.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe dns.message.Message object now has a get_options() helper to retrieve EDNS0\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/77fd94cd9716faf23e0a6e333f6568fc24284402\"\u003e\u003ccode\u003e77fd94c\u003c/code\u003e\u003c/a\u003e 2.8.0 versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/884f38345a8152342fe8ab5da8db9aab654051ba\"\u003e\u003ccode\u003e884f383\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/1938fe331f97376bf91c028fbfb8c7588c1b84f4\"\u003e\u003ccode\u003e1938fe3\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a35d6925efe20744e8cf7545d19d03ba06e7ab6f\"\u003e\u003ccode\u003ea35d692\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/c862baaf0d0aa36d2e7003dfe226cd6ad4d827c4\"\u003e\u003ccode\u003ec862baa\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/0945d5923d58048c17325975f70f0738c87570b4\"\u003e\u003ccode\u003e0945d59\u003c/code\u003e\u003c/a\u003e more lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8fa6766d2f7a2431372fc912fb334e752290ebf2\"\u003e\u003ccode\u003e8fa6766\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/641633503ee6b07bf382594ac04707072b90de18\"\u003e\u003ccode\u003e6416335\u003c/code\u003e\u003c/a\u003e Type syntax (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a4591447b7d6e38479bcddb14de3b69f314e7009\"\u003e\u003ccode\u003ea459144\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a0d5f172e89f30709b47b59fb0919d8cf137f611\"\u003e\u003ccode\u003ea0d5f17\u003c/code\u003e\u003c/a\u003e fix the all entries\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.6.1...v2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-cors` from 6.0.0 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/corydolphin/flask-cors/releases\"\u003eflask-cors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInvert regex sorting to make it correctly match the intent (sorting by specificity descending) \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1.dev\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/a5003f391e56f74f11a3e509cd180787c75eb6b0\"\u003e\u003ccode\u003ea5003f3\u003c/code\u003e\u003c/a\u003e Fix README file extension in pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/4ad56d6c20252d36031c74ba8386a81e94286f40\"\u003e\u003ccode\u003e4ad56d6\u003c/code\u003e\u003c/a\u003e Fix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 6.8.0 to 8.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev8.7.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.metadata()\u003c/code\u003e (and \u003ccode\u003eDistribution.metadata\u003c/code\u003e) can now return \u003ccode\u003eNone\u003c/code\u003e if the metadata directory exists but not metadata file is present. (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise consistent ValueError for invalid EntryPoint.value (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed indentation logic to also honor blank lines.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#119650\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeferred import of zipfile.Path (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeferred import of json (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRely on zipp overlay for zipfile.Path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.4.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/708dff4f1ab89bdd126e3e8c56098d04282c5809\"\u003e\u003ccode\u003e708dff4\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b3065f03cc3395f46ed575e612e213f92a064879\"\u003e\u003ccode\u003eb3065f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/519\"\u003e#519\u003c/a\u003e from python/bugfix/493-metadata-missing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/e4351c226765f53a40316fa6aab50488aee8a90f\"\u003e\u003ccode\u003ee4351c2\u003c/code\u003e\u003c/a\u003e Add a new test capturing the new expectation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/5a657051f7386de6f0560c200d78e941be2c8058\"\u003e\u003ccode\u003e5a65705\u003c/code\u003e\u003c/a\u003e Refactor the casting into a wrapper for brevity and to document its purpose.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0830c39b8a23e48024365120c0e97a6f7c36c5ec\"\u003e\u003ccode\u003e0830c39\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/22bb567692d8e7bd216f864a9d8dee1272ee8674\"\u003e\u003ccode\u003e22bb567\u003c/code\u003e\u003c/a\u003e Fix type errors where metadata could be None.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/57f31d77e18fef11dfadfd44775f253971c36920\"\u003e\u003ccode\u003e57f31d7\u003c/code\u003e\u003c/a\u003e Allow metadata to return None when there is no metadata present.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b9c4be4253250ad604610db66204e5fa70fa2455\"\u003e\u003ccode\u003eb9c4be4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e from python/bugfix/488-bad-ep-value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9f8af013635833cf3ac348413c9ac63b37caa3dd\"\u003e\u003ccode\u003e9f8af01\u003c/code\u003e\u003c/a\u003e Prefer a cached property, as the property is likely to be retrieved at least ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/f179e28888b2c6caf12baaf5449ff1cd82513dfe\"\u003e\u003ccode\u003ef179e28\u003c/code\u003e\u003c/a\u003e Also raise ValueError on construction if the value is invalid.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v6.8.0...v8.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `itsdangerous` from 2.1.2 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/releases\"\u003eitsdangerous's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003cp\u003eThis is a feature release, which includes new features, removes previously deprecated code, and adds new deprecations. The 2.2.x branch is now the supported fix branch, the 2.1.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003eChanges: \u003ca href=\"https://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\"\u003ehttps://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/itsdangerous/milestone/8?closed=1\"\u003ehttps://github.com/pallets/itsdangerous/milestone/8?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking. By default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a different \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return type of its \u003ccode\u003edumps\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/blob/main/CHANGES.rst\"\u003eitsdangerous's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-16\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7. :pr:\u003ccode\u003e372\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e326\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e371\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking.\nBy default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a\ndifferent \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return\ntype of its \u003ccode\u003edumps\u003c/code\u003e method. :issue:\u003ccode\u003e347\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e375\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/096c8d42545d3b68ea21a4f890fb2b2d8979c0bd\"\u003e\u003ccode\u003e096c8d4\u003c/code\u003e\u003c/a\u003e release version 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/7f4dcf83a07bb3d53f4e0e65ef1b43327b4cca90\"\u003e\u003ccode\u003e7f4dcf8\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/93ae366874bbd4f69d90495c45b2cd336387496c\"\u003e\u003ccode\u003e93ae366\u003c/code\u003e\u003c/a\u003e change entry for generic serializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/135eb234ed4a07520779ffb679407b7d27c8ffe6\"\u003e\u003ccode\u003e135eb23\u003c/code\u003e\u003c/a\u003e Generic serializer (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/999ce7af1f0502a224d33338e6ded8bc1e81cb2f\"\u003e\u003ccode\u003e999ce7a\u003c/code\u003e\u003c/a\u003e Improve generic typing further\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/52890d78bb6d92eac4d8d84f33f61be8bd803da7\"\u003e\u003ccode\u003e52890d7\u003c/code\u003e\u003c/a\u003e improve generic typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/385c0eb7501b121b1fddafe19c547073f5a458a0\"\u003e\u003ccode\u003e385c0eb\u003c/code\u003e\u003c/a\u003e type \u003ccode\u003eSerializer\u003c/code\u003e as generic (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/01001c63af4a1c58b65328b2aad3df75a6edc843\"\u003e\u003ccode\u003e01001c6\u003c/code\u003e\u003c/a\u003e type Serializer as generic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/bc88e945d31c407e16c3f4e1c713c12dd598e58d\"\u003e\u003ccode\u003ebc88e94\u003c/code\u003e\u003c/a\u003e improve typing (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/69a3bca7582859bc8ce83ccc28b0cf33f7909388\"\u003e\u003ccode\u003e69a3bca\u003c/code\u003e\u003c/a\u003e improve typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/itsdangerous/compare/2.1.2...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nest-asyncio` from 1.5.8 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/erdewit/nest_asyncio/releases\"\u003enest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev1.6.0\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/19f396f9396bfd34b1b0caeb9b4c631ee3d7eb21\"\u003e\u003ccode\u003e19f396f\u003c/code\u003e\u003c/a\u003e Remove redundant blank line.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c31e7c44f063819ea2d0738e3c72c25458d3fd1b\"\u003e\u003ccode\u003ec31e7c4\u003c/code\u003e\u003c/a\u003e Pre-empt current task before running handle, allowing unpatched tasks, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/80\"\u003e#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/35618de086e8844d24039d2fcd090b8f1647c743\"\u003e\u003ccode\u003e35618de\u003c/code\u003e\u003c/a\u003e v1.5.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c4b8289fe4f4a3192fd1d501e74df08fd93ed348\"\u003e\u003ccode\u003ec4b8289\u003c/code\u003e\u003c/a\u003e Fix patching an already running Proactor loop, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/87\"\u003e#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/d5a13b0d5f156ac9076fbc244f49fb9d48af9bbc\"\u003e\u003ccode\u003ed5a13b0\u003c/code\u003e\u003c/a\u003e Update link to build icon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/a48a68a47e182bd7e1f86c60dfc07d7b8509508b\"\u003e\u003ccode\u003ea48a68a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/84\"\u003e#84\u003c/a\u003e from 5j9/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c20e77426bfb9be50d514a850bc4cabbbc69f114\"\u003e\u003ccode\u003ec20e774\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/f7ce59048cdaace5a1a82c78ef476c3bbb3b664a\"\u003e\u003ccode\u003ef7ce590\u003c/code\u003e\u003c/a\u003e v1.5.8\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/erdewit/nest_asyncio/compare/v1.5.8...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.8.0 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent partial matching of \u003ccode\u003eiss\u003c/code\u003e claim. Thanks \u003ca href=\"https://github.com/fabianbadoi\"\u003e\u003ccode\u003e@​fabianbadoi\u003c/code\u003e\u003c/a\u003e! (See: \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\"\u003ehttps://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-x...\n\n_Description has been truncated_","html_url":"https://github.com/asusoda/platform/pull/85","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asusoda%2Fplatform/issues/85","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/85/packages"},{"uuid":"2869718703","node_id":"PR_kwDOKXLyYM6rDG6v","number":84,"state":"open","title":"Bump the python-deps group across 1 directory with 28 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T09:15:08.000Z","updated_at":"2025-09-29T09:15:09.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-deps","update_count":28,"packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"asgiref","old_version":"3.9.1","new_version":"3.9.2","repository_url":"https://github.com/django/asgiref"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"attrs","old_version":"23.1.0","new_version":"25.3.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.6.1","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"flask-cors","old_version":"6.0.0","new_version":"6.0.1","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"importlib-metadata","old_version":"6.8.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"nest-asyncio","old_version":"1.5.8","new_version":"1.6.0","repository_url":"https://github.com/erdewit/nest_asyncio"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.15.1","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"python-engineio","old_version":"4.9.0","new_version":"4.12.3","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-socketio","old_version":"5.11.2","new_version":"5.13.0","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"simple-websocket","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/miguelgrinberg/simple-websocket"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"werkzeug","old_version":"3.0.6","new_version":"3.1.3","repository_url":"https://github.com/pallets/werkzeug"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.183.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"selenium","old_version":"4.32.0","new_version":"4.35.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"cryptography","old_version":"45.0.6","new_version":"46.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"notion-client","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-genai","old_version":"1.30.0","new_version":"1.39.1","repository_url":"https://github.com/googleapis/python-genai"},{"name":"anthropic","old_version":"0.64.0","new_version":"0.68.1","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"1.102.0","new_version":"1.109.1","repository_url":"https://github.com/openai/openai-python"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 28 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.9.2` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `23.1.0` | `25.3.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.6.1` | `2.8.0` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.0` | `6.0.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.8.0` | `8.7.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [nest-asyncio](https://github.com/erdewit/nest_asyncio) | `1.5.8` | `1.6.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.15.1` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.9.0` | `4.12.3` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.11.2` | `5.13.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [simple-websocket](https://github.com/miguelgrinberg/simple-websocket) | `1.0.0` | `1.1.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.0.6` | `3.1.3` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.183.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.32.0` | `4.35.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.6` | `46.0.1` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `2.4.0` | `2.5.0` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.30.0` | `1.39.1` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.64.0` | `0.68.1` |\n| [openai](https://github.com/openai/openai-python) | `1.102.0` | `1.109.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.9.1 to 3.9.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.9.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-timeout` from 4.0.3 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/releases\"\u003easync-timeout's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst\"\u003easync-timeout's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.1 (2024-11-06)\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.0.0 (2024-10-31)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/cc52d410e733b302873e6e52db9a9b6578d053a4\"\u003e\u003ccode\u003ecc52d41\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/1af7d7165d598af03e51952a679c690690dc7f8e\"\u003e\u003ccode\u003e1af7d71\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3bf26d96e3d1830a0e72ddab9c6a2c87e1f4380a\"\u003e\u003ccode\u003e3bf26d9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/423\"\u003e#423\u003c/a\u003e: add requirements.txt to sdist package (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/380e8ba5bf77e3cd184df8a5f51dc929d93d8553\"\u003e\u003ccode\u003e380e8ba\u003c/code\u003e\u003c/a\u003e Mention condition import of asyncio.timeout / async_timeout.timeout in README...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/8a232d0f7fc1af88c8d921500d78bbefc2bc545c\"\u003e\u003ccode\u003e8a232d0\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3d3e3e45420ac6ea0ef77c9e32388e252e12ac4d\"\u003e\u003ccode\u003e3d3e3e4\u003c/code\u003e\u003c/a\u003e Bump to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/d5c21f3dee7eeb06823af77284ad2a899611b28e\"\u003e\u003ccode\u003ed5c21f3\u003c/code\u003e\u003c/a\u003e Mimic asyncio.Timeout behavior (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/a1111c2597b9ce8d34b823c1b993689339ea9fd6\"\u003e\u003ccode\u003ea1111c2\u003c/code\u003e\u003c/a\u003e Drop deprecated sync context manager support (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/00fd343ce6ba2ccc291c0f6e09fea8998cbfe3a1\"\u003e\u003ccode\u003e00fd343\u003c/code\u003e\u003c/a\u003e Imports cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/7b61b33ae0ecee0e0bb0e09f2e5787c647d4ffb8\"\u003e\u003ccode\u003e7b61b33\u003c/code\u003e\u003c/a\u003e Update CI config file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-timeout/compare/v4.0.3...v5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 23.1.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003cp\u003eIt leverages charset-normalizer in a better way! Check it out, you will gain up to being 3X faster and get a real/respectable support with it.\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebuild-requirements.txt\u003c/code\u003e as per using \u003ccode\u003epyproject.toml\u003c/code\u003e native build configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/integration.py\u003c/code\u003e and \u003ccode\u003ebin/serve.py\u003c/code\u003e in favor of downstream integration test (see noxfile).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e in favor of \u003ccode\u003epyproject.toml\u003c/code\u003e metadata configuration.\u003c/li\u003e\n\u003cli\u003eUnused \u003ccode\u003eutils.range_scan\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConverting content to Unicode bytes may insert \u003ccode\u003eutf_8\u003c/code\u003e instead of preferred \u003ccode\u003eutf-8\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning \u0026quot;'count' is passed as positional argument\u0026quot; when converting to Unicode bytes on Python 3.13+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0\"\u003e3.4.0\u003c/a\u003e (2024-10-08)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.6.1 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.8.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.10.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release. Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003cp\u003eThis release was published to PyPI using Trusted Publishing.\u003c/p\u003e\n\u003ch2\u003ednspython 2.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.9.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release.  Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns/btreezone.py provides another zone versioned implementation built on top of a\nB-tree.  It maintains DNSSEC sort order, labels nodes as delegation points or glue,\nand can find the \u0026quot;bounds\u0026quot; of a name (useful for DNSSEC responses).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/query.py now provides make_socket(), make_ssl_socket(), and make_ssl_context()\nto make using persistent connections with the query code easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/win32util.py now supports explicitly setting the configuration method used to get\nsystem dns info, using the set_config_method() function.   There is a new configuration\nmethod that uses the Win32 API, which can be set using\nset_config_method(ConfigMethod.Win32).  We are considering making the Win32 API\nthe default in the future as we believe it to be the most accurate.  Any feedback on\nit compared to the other methods is welcome.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe DSYNC record is now supported.  This type is still in draft stage at the IETF\nand is subject to change.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns.query.https() and dns.asyncquery.https() now support HTTP/3 and the http_version\nparameter may be used to specify which version to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the cryptography module is installed, then dnspython will now create deterministic\nECDSA signatures by default.  Cryptography, if installed, must be at least version 43.\nThanks to Jakob Schlyter for adding the feature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe RESINFO and WALLET RdataTypes are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe COOKIE and Report-Channel EDNS0 options are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAll supported RdataTypes can now be imported at a single time rather than lazily on\nfirst use by calling dns.rdata.load_all_types().\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe SVCB and HTTPS records now support the ohttp parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003exfr() and inbound_xfr() now share a common implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTokens are now supported for QUIC and HTTP/3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.from_wire() now saves the input wire format in the Message's \u0026quot;wire\u0026quot;\nattribute.  Likewise, dns.message.Message.to_wire() now records the generated\nwire format in that attribute.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe dns.message.Message object now has a get_options() helper to retrieve EDNS0\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/77fd94cd9716faf23e0a6e333f6568fc24284402\"\u003e\u003ccode\u003e77fd94c\u003c/code\u003e\u003c/a\u003e 2.8.0 versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/884f38345a8152342fe8ab5da8db9aab654051ba\"\u003e\u003ccode\u003e884f383\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/1938fe331f97376bf91c028fbfb8c7588c1b84f4\"\u003e\u003ccode\u003e1938fe3\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a35d6925efe20744e8cf7545d19d03ba06e7ab6f\"\u003e\u003ccode\u003ea35d692\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/c862baaf0d0aa36d2e7003dfe226cd6ad4d827c4\"\u003e\u003ccode\u003ec862baa\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/0945d5923d58048c17325975f70f0738c87570b4\"\u003e\u003ccode\u003e0945d59\u003c/code\u003e\u003c/a\u003e more lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8fa6766d2f7a2431372fc912fb334e752290ebf2\"\u003e\u003ccode\u003e8fa6766\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/641633503ee6b07bf382594ac04707072b90de18\"\u003e\u003ccode\u003e6416335\u003c/code\u003e\u003c/a\u003e Type syntax (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a4591447b7d6e38479bcddb14de3b69f314e7009\"\u003e\u003ccode\u003ea459144\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a0d5f172e89f30709b47b59fb0919d8cf137f611\"\u003e\u003ccode\u003ea0d5f17\u003c/code\u003e\u003c/a\u003e fix the all entries\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.6.1...v2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-cors` from 6.0.0 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/corydolphin/flask-cors/releases\"\u003eflask-cors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInvert regex sorting to make it correctly match the intent (sorting by specificity descending) \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1.dev\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/a5003f391e56f74f11a3e509cd180787c75eb6b0\"\u003e\u003ccode\u003ea5003f3\u003c/code\u003e\u003c/a\u003e Fix README file extension in pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/4ad56d6c20252d36031c74ba8386a81e94286f40\"\u003e\u003ccode\u003e4ad56d6\u003c/code\u003e\u003c/a\u003e Fix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 6.8.0 to 8.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev8.7.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.metadata()\u003c/code\u003e (and \u003ccode\u003eDistribution.metadata\u003c/code\u003e) can now return \u003ccode\u003eNone\u003c/code\u003e if the metadata directory exists but not metadata file is present. (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise consistent ValueError for invalid EntryPoint.value (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed indentation logic to also honor blank lines.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#119650\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeferred import of zipfile.Path (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeferred import of json (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRely on zipp overlay for zipfile.Path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.4.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/708dff4f1ab89bdd126e3e8c56098d04282c5809\"\u003e\u003ccode\u003e708dff4\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b3065f03cc3395f46ed575e612e213f92a064879\"\u003e\u003ccode\u003eb3065f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/519\"\u003e#519\u003c/a\u003e from python/bugfix/493-metadata-missing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/e4351c226765f53a40316fa6aab50488aee8a90f\"\u003e\u003ccode\u003ee4351c2\u003c/code\u003e\u003c/a\u003e Add a new test capturing the new expectation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/5a657051f7386de6f0560c200d78e941be2c8058\"\u003e\u003ccode\u003e5a65705\u003c/code\u003e\u003c/a\u003e Refactor the casting into a wrapper for brevity and to document its purpose.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0830c39b8a23e48024365120c0e97a6f7c36c5ec\"\u003e\u003ccode\u003e0830c39\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/22bb567692d8e7bd216f864a9d8dee1272ee8674\"\u003e\u003ccode\u003e22bb567\u003c/code\u003e\u003c/a\u003e Fix type errors where metadata could be None.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/57f31d77e18fef11dfadfd44775f253971c36920\"\u003e\u003ccode\u003e57f31d7\u003c/code\u003e\u003c/a\u003e Allow metadata to return None when there is no metadata present.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b9c4be4253250ad604610db66204e5fa70fa2455\"\u003e\u003ccode\u003eb9c4be4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e from python/bugfix/488-bad-ep-value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9f8af013635833cf3ac348413c9ac63b37caa3dd\"\u003e\u003ccode\u003e9f8af01\u003c/code\u003e\u003c/a\u003e Prefer a cached property, as the property is likely to be retrieved at least ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/f179e28888b2c6caf12baaf5449ff1cd82513dfe\"\u003e\u003ccode\u003ef179e28\u003c/code\u003e\u003c/a\u003e Also raise ValueError on construction if the value is invalid.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v6.8.0...v8.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `itsdangerous` from 2.1.2 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/releases\"\u003eitsdangerous's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003cp\u003eThis is a feature release, which includes new features, removes previously deprecated code, and adds new deprecations. The 2.2.x branch is now the supported fix branch, the 2.1.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003eChanges: \u003ca href=\"https://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\"\u003ehttps://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/itsdangerous/milestone/8?closed=1\"\u003ehttps://github.com/pallets/itsdangerous/milestone/8?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking. By default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a different \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return type of its \u003ccode\u003edumps\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/blob/main/CHANGES.rst\"\u003eitsdangerous's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-16\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7. :pr:\u003ccode\u003e372\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e326\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e371\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking.\nBy default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a\ndifferent \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return\ntype of its \u003ccode\u003edumps\u003c/code\u003e method. :issue:\u003ccode\u003e347\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e375\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/096c8d42545d3b68ea21a4f890fb2b2d8979c0bd\"\u003e\u003ccode\u003e096c8d4\u003c/code\u003e\u003c/a\u003e release version 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/7f4dcf83a07bb3d53f4e0e65ef1b43327b4cca90\"\u003e\u003ccode\u003e7f4dcf8\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/93ae366874bbd4f69d90495c45b2cd336387496c\"\u003e\u003ccode\u003e93ae366\u003c/code\u003e\u003c/a\u003e change entry for generic serializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/135eb234ed4a07520779ffb679407b7d27c8ffe6\"\u003e\u003ccode\u003e135eb23\u003c/code\u003e\u003c/a\u003e Generic serializer (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/999ce7af1f0502a224d33338e6ded8bc1e81cb2f\"\u003e\u003ccode\u003e999ce7a\u003c/code\u003e\u003c/a\u003e Improve generic typing further\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/52890d78bb6d92eac4d8d84f33f61be8bd803da7\"\u003e\u003ccode\u003e52890d7\u003c/code\u003e\u003c/a\u003e improve generic typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/385c0eb7501b121b1fddafe19c547073f5a458a0\"\u003e\u003ccode\u003e385c0eb\u003c/code\u003e\u003c/a\u003e type \u003ccode\u003eSerializer\u003c/code\u003e as generic (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/01001c63af4a1c58b65328b2aad3df75a6edc843\"\u003e\u003ccode\u003e01001c6\u003c/code\u003e\u003c/a\u003e type Serializer as generic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/bc88e945d31c407e16c3f4e1c713c12dd598e58d\"\u003e\u003ccode\u003ebc88e94\u003c/code\u003e\u003c/a\u003e improve typing (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/69a3bca7582859bc8ce83ccc28b0cf33f7909388\"\u003e\u003ccode\u003e69a3bca\u003c/code\u003e\u003c/a\u003e improve typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/itsdangerous/compare/2.1.2...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nest-asyncio` from 1.5.8 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/erdewit/nest_asyncio/releases\"\u003enest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev1.6.0\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/19f396f9396bfd34b1b0caeb9b4c631ee3d7eb21\"\u003e\u003ccode\u003e19f396f\u003c/code\u003e\u003c/a\u003e Remove redundant blank line.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c31e7c44f063819ea2d0738e3c72c25458d3fd1b\"\u003e\u003ccode\u003ec31e7c4\u003c/code\u003e\u003c/a\u003e Pre-empt current task before running handle, allowing unpatched tasks, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/80\"\u003e#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/35618de086e8844d24039d2fcd090b8f1647c743\"\u003e\u003ccode\u003e35618de\u003c/code\u003e\u003c/a\u003e v1.5.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c4b8289fe4f4a3192fd1d501e74df08fd93ed348\"\u003e\u003ccode\u003ec4b8289\u003c/code\u003e\u003c/a\u003e Fix patching an already running Proactor loop, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/87\"\u003e#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/d5a13b0d5f156ac9076fbc244f49fb9d48af9bbc\"\u003e\u003ccode\u003ed5a13b0\u003c/code\u003e\u003c/a\u003e Update link to build icon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/a48a68a47e182bd7e1f86c60dfc07d7b8509508b\"\u003e\u003ccode\u003ea48a68a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/84\"\u003e#84\u003c/a\u003e from 5j9/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c20e77426bfb9be50d514a850bc4cabbbc69f114\"\u003e\u003ccode\u003ec20e774\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/f7ce59048cdaace5a1a82c78ef476c3bbb3b664a\"\u003e\u003ccode\u003ef7ce590\u003c/code\u003e\u003c/a\u003e v1.5.8\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/erdewit/nest_asyncio/compare/v1.5.8...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.8.0 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent partial matching of \u003ccode\u003eiss\u003c/code\u003e claim. Thanks \u003ca href=\"https://github.com/fabianbadoi\"\u003e\u003ccode\u003e@​fabianbadoi\u003c/code\u003e\u003c/a\u003e! (See: \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\"\u003ehttps://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: use sequence for typing rather than list by \u003ca href=\"https://github.com/imnotjames\"\u003e\u003ccode\u003e@​imnotjames\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/970\"\u003ejpadilla/pyjwt#970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/972\"\u003ejpadilla/pyjwt#972\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/971\"\u003ejpadilla/pyjwt#971\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an RTD config file to resolve RTD build failures by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/977\"\u003ejpadilla/pyjwt#977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update \u003ccode\u003eiat\u003c/code\u003e exception docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/974\"\u003ejpadilla/pyjwt#974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove algorithm requirement for JWT API by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/975\"\u003ejpadilla/pyjwt#975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/978\"\u003ejpadilla/pyjwt#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate SECURITY.md by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/973\"\u003ejpadilla/pyjwt#973\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs fix: decode_complete scope and algorithms by \u003ca href=\"https://github.com/RbnRncn\"\u003e\u003ccode\u003e@​RbnRncn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/982\"\u003ejpadilla/pyjwt#982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix doctest for docs/usage.rst by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/986\"\u003ejpadilla/pyjwt#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix test_utils.py not to xfail by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/987\"\u003ejpadilla/pyjwt#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect jwt.decode audience param doc expression by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/994\"\u003ejpadilla/pyjwt#994\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PS256 encoding and decoding usage by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/992\"\u003ejpadilla/pyjwt#992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd API docs for PyJWK by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/980\"\u003ejpadilla/pyjwt#980\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor project configuration files from setup.cfg to pyproject.toml PEP-518 by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/995\"\u003ejpadilla/pyjwt#995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd JWK support to JWT encode by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/979\"\u003ejpadilla/pyjwt#979\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit hooks to lint pyproject.toml by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1002\"\u003ejpadilla/pyjwt#1002\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd EdDSA algorithm encoding/decoding usage by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/993\"\u003ejpadilla/pyjwt#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRuff linter and formatter changes by \u003ca href=\"https://github.com/gagandeepp\"\u003e\u003ccode\u003e@​gagandeepp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1001\"\u003ejpadilla/pyjwt#1001\u003c/a\u003e\u003c/li...\n\n_Description has been truncated_","html_url":"https://github.com/asusoda/platform/pull/84","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asusoda%2Fplatform/issues/84","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/84/packages"},{"uuid":"2855789994","node_id":"PR_kwDOKXLyYM6qN-Wq","number":83,"state":"closed","title":"Bump the python-deps group across 1 directory with 27 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-29T07:41:10.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-24T07:30:19.000Z","updated_at":"2025-09-29T07:41:10.000Z","time_to_close":432651,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-deps","update_count":27,"packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"asgiref","old_version":"3.9.1","new_version":"3.9.2","repository_url":"https://github.com/django/asgiref"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"attrs","old_version":"23.1.0","new_version":"25.3.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.6.1","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"flask-cors","old_version":"6.0.0","new_version":"6.0.1","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"importlib-metadata","old_version":"6.8.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"nest-asyncio","old_version":"1.5.8","new_version":"1.6.0","repository_url":"https://github.com/erdewit/nest_asyncio"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.15.1","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"python-engineio","old_version":"4.9.0","new_version":"4.12.2","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-socketio","old_version":"5.11.2","new_version":"5.13.0","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"simple-websocket","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/miguelgrinberg/simple-websocket"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"werkzeug","old_version":"3.0.6","new_version":"3.1.3","repository_url":"https://github.com/pallets/werkzeug"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.183.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"selenium","old_version":"4.32.0","new_version":"4.35.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"cryptography","old_version":"45.0.6","new_version":"46.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"notion-client","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-genai","old_version":"1.30.0","new_version":"1.38.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"anthropic","old_version":"0.64.0","new_version":"0.68.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"1.102.0","new_version":"1.109.0","repository_url":"https://github.com/openai/openai-python"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.9.2` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `23.1.0` | `25.3.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.6.1` | `2.8.0` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.0` | `6.0.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.8.0` | `8.7.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [nest-asyncio](https://github.com/erdewit/nest_asyncio) | `1.5.8` | `1.6.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.15.1` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.9.0` | `4.12.2` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.11.2` | `5.13.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [simple-websocket](https://github.com/miguelgrinberg/simple-websocket) | `1.0.0` | `1.1.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.0.6` | `3.1.3` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.183.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.32.0` | `4.35.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.6` | `46.0.1` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `2.4.0` | `2.5.0` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.30.0` | `1.38.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.64.0` | `0.68.0` |\n| [openai](https://github.com/openai/openai-python) | `1.102.0` | `1.109.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.9.1 to 3.9.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.9.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-timeout` from 4.0.3 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/releases\"\u003easync-timeout's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst\"\u003easync-timeout's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.1 (2024-11-06)\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.0.0 (2024-10-31)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/cc52d410e733b302873e6e52db9a9b6578d053a4\"\u003e\u003ccode\u003ecc52d41\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/1af7d7165d598af03e51952a679c690690dc7f8e\"\u003e\u003ccode\u003e1af7d71\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3bf26d96e3d1830a0e72ddab9c6a2c87e1f4380a\"\u003e\u003ccode\u003e3bf26d9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/423\"\u003e#423\u003c/a\u003e: add requirements.txt to sdist package (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/380e8ba5bf77e3cd184df8a5f51dc929d93d8553\"\u003e\u003ccode\u003e380e8ba\u003c/code\u003e\u003c/a\u003e Mention condition import of asyncio.timeout / async_timeout.timeout in README...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/8a232d0f7fc1af88c8d921500d78bbefc2bc545c\"\u003e\u003ccode\u003e8a232d0\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3d3e3e45420ac6ea0ef77c9e32388e252e12ac4d\"\u003e\u003ccode\u003e3d3e3e4\u003c/code\u003e\u003c/a\u003e Bump to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/d5c21f3dee7eeb06823af77284ad2a899611b28e\"\u003e\u003ccode\u003ed5c21f3\u003c/code\u003e\u003c/a\u003e Mimic asyncio.Timeout behavior (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/a1111c2597b9ce8d34b823c1b993689339ea9fd6\"\u003e\u003ccode\u003ea1111c2\u003c/code\u003e\u003c/a\u003e Drop deprecated sync context manager support (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/00fd343ce6ba2ccc291c0f6e09fea8998cbfe3a1\"\u003e\u003ccode\u003e00fd343\u003c/code\u003e\u003c/a\u003e Imports cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/7b61b33ae0ecee0e0bb0e09f2e5787c647d4ffb8\"\u003e\u003ccode\u003e7b61b33\u003c/code\u003e\u003c/a\u003e Update CI config file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-timeout/compare/v4.0.3...v5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 23.1.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003cp\u003eIt leverages charset-normalizer in a better way! Check it out, you will gain up to being 3X faster and get a real/respectable support with it.\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebuild-requirements.txt\u003c/code\u003e as per using \u003ccode\u003epyproject.toml\u003c/code\u003e native build configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/integration.py\u003c/code\u003e and \u003ccode\u003ebin/serve.py\u003c/code\u003e in favor of downstream integration test (see noxfile).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e in favor of \u003ccode\u003epyproject.toml\u003c/code\u003e metadata configuration.\u003c/li\u003e\n\u003cli\u003eUnused \u003ccode\u003eutils.range_scan\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConverting content to Unicode bytes may insert \u003ccode\u003eutf_8\u003c/code\u003e instead of preferred \u003ccode\u003eutf-8\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning \u0026quot;'count' is passed as positional argument\u0026quot; when converting to Unicode bytes on Python 3.13+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0\"\u003e3.4.0\u003c/a\u003e (2024-10-08)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.6.1 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.8.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.10.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release. Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003cp\u003eThis release was published to PyPI using Trusted Publishing.\u003c/p\u003e\n\u003ch2\u003ednspython 2.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.9.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release.  Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns/btreezone.py provides another zone versioned implementation built on top of a\nB-tree.  It maintains DNSSEC sort order, labels nodes as delegation points or glue,\nand can find the \u0026quot;bounds\u0026quot; of a name (useful for DNSSEC responses).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/query.py now provides make_socket(), make_ssl_socket(), and make_ssl_context()\nto make using persistent connections with the query code easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/win32util.py now supports explicitly setting the configuration method used to get\nsystem dns info, using the set_config_method() function.   There is a new configuration\nmethod that uses the Win32 API, which can be set using\nset_config_method(ConfigMethod.Win32).  We are considering making the Win32 API\nthe default in the future as we believe it to be the most accurate.  Any feedback on\nit compared to the other methods is welcome.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe DSYNC record is now supported.  This type is still in draft stage at the IETF\nand is subject to change.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns.query.https() and dns.asyncquery.https() now support HTTP/3 and the http_version\nparameter may be used to specify which version to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the cryptography module is installed, then dnspython will now create deterministic\nECDSA signatures by default.  Cryptography, if installed, must be at least version 43.\nThanks to Jakob Schlyter for adding the feature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe RESINFO and WALLET RdataTypes are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe COOKIE and Report-Channel EDNS0 options are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAll supported RdataTypes can now be imported at a single time rather than lazily on\nfirst use by calling dns.rdata.load_all_types().\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe SVCB and HTTPS records now support the ohttp parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003exfr() and inbound_xfr() now share a common implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTokens are now supported for QUIC and HTTP/3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.from_wire() now saves the input wire format in the Message's \u0026quot;wire\u0026quot;\nattribute.  Likewise, dns.message.Message.to_wire() now records the generated\nwire format in that attribute.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe dns.message.Message object now has a get_options() helper to retrieve EDNS0\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/77fd94cd9716faf23e0a6e333f6568fc24284402\"\u003e\u003ccode\u003e77fd94c\u003c/code\u003e\u003c/a\u003e 2.8.0 versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/884f38345a8152342fe8ab5da8db9aab654051ba\"\u003e\u003ccode\u003e884f383\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/1938fe331f97376bf91c028fbfb8c7588c1b84f4\"\u003e\u003ccode\u003e1938fe3\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a35d6925efe20744e8cf7545d19d03ba06e7ab6f\"\u003e\u003ccode\u003ea35d692\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/c862baaf0d0aa36d2e7003dfe226cd6ad4d827c4\"\u003e\u003ccode\u003ec862baa\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/0945d5923d58048c17325975f70f0738c87570b4\"\u003e\u003ccode\u003e0945d59\u003c/code\u003e\u003c/a\u003e more lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8fa6766d2f7a2431372fc912fb334e752290ebf2\"\u003e\u003ccode\u003e8fa6766\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/641633503ee6b07bf382594ac04707072b90de18\"\u003e\u003ccode\u003e6416335\u003c/code\u003e\u003c/a\u003e Type syntax (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a4591447b7d6e38479bcddb14de3b69f314e7009\"\u003e\u003ccode\u003ea459144\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a0d5f172e89f30709b47b59fb0919d8cf137f611\"\u003e\u003ccode\u003ea0d5f17\u003c/code\u003e\u003c/a\u003e fix the all entries\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.6.1...v2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-cors` from 6.0.0 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/corydolphin/flask-cors/releases\"\u003eflask-cors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInvert regex sorting to make it correctly match the intent (sorting by specificity descending) \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1.dev\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/a5003f391e56f74f11a3e509cd180787c75eb6b0\"\u003e\u003ccode\u003ea5003f3\u003c/code\u003e\u003c/a\u003e Fix README file extension in pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/4ad56d6c20252d36031c74ba8386a81e94286f40\"\u003e\u003ccode\u003e4ad56d6\u003c/code\u003e\u003c/a\u003e Fix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 6.8.0 to 8.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev8.7.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.metadata()\u003c/code\u003e (and \u003ccode\u003eDistribution.metadata\u003c/code\u003e) can now return \u003ccode\u003eNone\u003c/code\u003e if the metadata directory exists but not metadata file is present. (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise consistent ValueError for invalid EntryPoint.value (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed indentation logic to also honor blank lines.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#119650\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeferred import of zipfile.Path (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeferred import of json (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRely on zipp overlay for zipfile.Path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.4.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/708dff4f1ab89bdd126e3e8c56098d04282c5809\"\u003e\u003ccode\u003e708dff4\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b3065f03cc3395f46ed575e612e213f92a064879\"\u003e\u003ccode\u003eb3065f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/519\"\u003e#519\u003c/a\u003e from python/bugfix/493-metadata-missing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/e4351c226765f53a40316fa6aab50488aee8a90f\"\u003e\u003ccode\u003ee4351c2\u003c/code\u003e\u003c/a\u003e Add a new test capturing the new expectation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/5a657051f7386de6f0560c200d78e941be2c8058\"\u003e\u003ccode\u003e5a65705\u003c/code\u003e\u003c/a\u003e Refactor the casting into a wrapper for brevity and to document its purpose.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0830c39b8a23e48024365120c0e97a6f7c36c5ec\"\u003e\u003ccode\u003e0830c39\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/22bb567692d8e7bd216f864a9d8dee1272ee8674\"\u003e\u003ccode\u003e22bb567\u003c/code\u003e\u003c/a\u003e Fix type errors where metadata could be None.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/57f31d77e18fef11dfadfd44775f253971c36920\"\u003e\u003ccode\u003e57f31d7\u003c/code\u003e\u003c/a\u003e Allow metadata to return None when there is no metadata present.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b9c4be4253250ad604610db66204e5fa70fa2455\"\u003e\u003ccode\u003eb9c4be4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e from python/bugfix/488-bad-ep-value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9f8af013635833cf3ac348413c9ac63b37caa3dd\"\u003e\u003ccode\u003e9f8af01\u003c/code\u003e\u003c/a\u003e Prefer a cached property, as the property is likely to be retrieved at least ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/f179e28888b2c6caf12baaf5449ff1cd82513dfe\"\u003e\u003ccode\u003ef179e28\u003c/code\u003e\u003c/a\u003e Also raise ValueError on construction if the value is invalid.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v6.8.0...v8.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `itsdangerous` from 2.1.2 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/releases\"\u003eitsdangerous's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003cp\u003eThis is a feature release, which includes new features, removes previously deprecated code, and adds new deprecations. The 2.2.x branch is now the supported fix branch, the 2.1.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003eChanges: \u003ca href=\"https://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\"\u003ehttps://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/itsdangerous/milestone/8?closed=1\"\u003ehttps://github.com/pallets/itsdangerous/milestone/8?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking. By default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a different \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return type of its \u003ccode\u003edumps\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/blob/main/CHANGES.rst\"\u003eitsdangerous's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-16\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7. :pr:\u003ccode\u003e372\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e326\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e371\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking.\nBy default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a\ndifferent \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return\ntype of its \u003ccode\u003edumps\u003c/code\u003e method. :issue:\u003ccode\u003e347\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e375\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/096c8d42545d3b68ea21a4f890fb2b2d8979c0bd\"\u003e\u003ccode\u003e096c8d4\u003c/code\u003e\u003c/a\u003e release version 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/7f4dcf83a07bb3d53f4e0e65ef1b43327b4cca90\"\u003e\u003ccode\u003e7f4dcf8\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/93ae366874bbd4f69d90495c45b2cd336387496c\"\u003e\u003ccode\u003e93ae366\u003c/code\u003e\u003c/a\u003e change entry for generic serializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/135eb234ed4a07520779ffb679407b7d27c8ffe6\"\u003e\u003ccode\u003e135eb23\u003c/code\u003e\u003c/a\u003e Generic serializer (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/999ce7af1f0502a224d33338e6ded8bc1e81cb2f\"\u003e\u003ccode\u003e999ce7a\u003c/code\u003e\u003c/a\u003e Improve generic typing further\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/52890d78bb6d92eac4d8d84f33f61be8bd803da7\"\u003e\u003ccode\u003e52890d7\u003c/code\u003e\u003c/a\u003e improve generic typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/385c0eb7501b121b1fddafe19c547073f5a458a0\"\u003e\u003ccode\u003e385c0eb\u003c/code\u003e\u003c/a\u003e type \u003ccode\u003eSerializer\u003c/code\u003e as generic (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/01001c63af4a1c58b65328b2aad3df75a6edc843\"\u003e\u003ccode\u003e01001c6\u003c/code\u003e\u003c/a\u003e type Serializer as generic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/bc88e945d31c407e16c3f4e1c713c12dd598e58d\"\u003e\u003ccode\u003ebc88e94\u003c/code\u003e\u003c/a\u003e improve typing (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/69a3bca7582859bc8ce83ccc28b0cf33f7909388\"\u003e\u003ccode\u003e69a3bca\u003c/code\u003e\u003c/a\u003e improve typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/itsdangerous/compare/2.1.2...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nest-asyncio` from 1.5.8 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/erdewit/nest_asyncio/releases\"\u003enest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev1.6.0\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/19f396f9396bfd34b1b0caeb9b4c631ee3d7eb21\"\u003e\u003ccode\u003e19f396f\u003c/code\u003e\u003c/a\u003e Remove redundant blank line.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c31e7c44f063819ea2d0738e3c72c25458d3fd1b\"\u003e\u003ccode\u003ec31e7c4\u003c/code\u003e\u003c/a\u003e Pre-empt current task before running handle, allowing unpatched tasks, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/80\"\u003e#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/35618de086e8844d24039d2fcd090b8f1647c743\"\u003e\u003ccode\u003e35618de\u003c/code\u003e\u003c/a\u003e v1.5.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c4b8289fe4f4a3192fd1d501e74df08fd93ed348\"\u003e\u003ccode\u003ec4b8289\u003c/code\u003e\u003c/a\u003e Fix patching an already running Proactor loop, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/87\"\u003e#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/d5a13b0d5f156ac9076fbc244f49fb9d48af9bbc\"\u003e\u003ccode\u003ed5a13b0\u003c/code\u003e\u003c/a\u003e Update link to build icon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/a48a68a47e182bd7e1f86c60dfc07d7b8509508b\"\u003e\u003ccode\u003ea48a68a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/84\"\u003e#84\u003c/a\u003e from 5j9/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c20e77426bfb9be50d514a850bc4cabbbc69f114\"\u003e\u003ccode\u003ec20e774\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/f7ce59048cdaace5a1a82c78ef476c3bbb3b664a\"\u003e\u003ccode\u003ef7ce590\u003c/code\u003e\u003c/a\u003e v1.5.8\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/erdewit/nest_asyncio/compare/v1.5.8...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.8.0 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent partial matching of \u003ccode\u003eiss\u003c/code\u003e claim. Thanks \u003ca href=\"https://github.com/fabianbadoi\"\u003e\u003ccode\u003e@​fabianbadoi\u003c/code\u003e\u003c/a\u003e! (See: \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\"\u003ehttps://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: use sequence for typing rather than list by \u003ca href=\"https://github.com/imnotjames\"\u003e\u003ccode\u003e@​imnotjames\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/970\"\u003ejpadilla/pyjwt#970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/972\"\u003ejpadilla/pyjwt#972\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/971\"\u003ejpadilla/pyjwt#971\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an RTD config file to resolve RTD build failures by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/977\"\u003ejpadilla/pyjwt#977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update \u003ccode\u003eiat\u003c/code\u003e exception docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/974\"\u003ejpadilla/pyjwt#974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove algorithm requirement for JWT API by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/975\"\u003ejpadilla/pyjwt#975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/978\"\u003ejpadilla/pyjwt#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate SECURITY.md by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/973\"\u003ejpadilla/pyjwt#973\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs fix: decode_complete scope and algorithms by \u003ca href=\"https://github.com/RbnRncn\"\u003e\u003ccode\u003e@​RbnRncn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/982\"\u003ejpadilla/pyjwt#982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix doctest for docs/usage.rst by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/986\"\u003ejpadilla/pyjwt#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix test_utils.py not to xfail by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/987\"\u003ejpadilla/pyjwt#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect jwt.decode audience param doc expression by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/994\"\u003ejpadilla/pyjwt#994\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PS256 encoding and decoding usage by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/992\"\u003ejpadilla/pyjwt#992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd API docs for PyJWK by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/980\"\u003ejpadilla/pyjwt#980\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor project configuration files from setup.cfg to pyproject.toml PEP-518 by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/995\"\u003ejpadilla/pyjwt#995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd JWK support to JWT encode by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/979\"\u003ejpadilla/pyjwt#979\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit hooks to lint pyproject.toml by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1002\"\u003ejpadilla/pyjwt#1002\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd EdDSA algorithm encoding/decoding usage by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/993\"\u003ejpadilla/pyjwt#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRuff linter and formatter changes by \u003ca href=\"https://github.com/gagandeepp\"\u003e\u003ccode\u003e@​gagandeepp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1001\"\u003ejpadilla/pyjwt#1001\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate \u003ccode\u003esub\u003c/code\u003e and \u003ccode\u003ejti\u003c/code\u003e claims for the token by \u003ca href=\"https://github.com/Divan009\"\u003e\u003ccode\u003e@​Divan009\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1005\"\u003ejpadilla/pyjwt#1005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ES256 usage  by \u003ca href=\"https://github.com/Gautam-Hegde\"\u003e\u003ccode\u003e@​Gautam-Hegde\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1003\"\u003ejpadilla/pyjwt#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEncode EC keys with a fixed bit length by \u003ca href=\"https://github.com/way-dave\"\u003e\u003ccode\u003e@​way-dave\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/990\"\u003ejpadilla/pyjwt#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1000\"\u003ejpadilla/pyjwt#1000\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8 by \u003ca href=\"https://github.com/kkirsche\"\u003e\u003ccode\u003e@​kkirsche\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1007\"\u003ejpadilla/pyjwt#1007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare 2.10.0 release by \u003ca href=\"https://github.com/benvdh\"\u003e\u003ccode\u003e@​benvdh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1011\"\u003ejpadilla/pyjwt#1011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump codecov/codecov-action from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1014\"\u003ejpadilla/pyjwt#1014\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1006\"\u003ejpadilla/pyjwt#1006\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imnotjames\"\u003e\u003ccode\u003e@​imnotjames\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/970\"\u003ejpadilla/pyjwt#970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/977\"\u003ejpadilla/pyjwt#977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/974\"\u003ejpadilla/pyjwt#974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RbnRncn\"\u003e\u003ccode\u003e@​RbnRncn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/982\"\u003ejpadilla/pyjwt#982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/994\"\u003ejpadilla/pyjwt#994\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/995\"\u003ejpadilla/pyjwt#995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gagandeepp\"\u003e\u003ccode\u003e@​gagandeepp\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1001\"\u003ejpadilla/pyjwt#1001\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Divan009\"\u003e\u003ccode\u003e@​Divan009\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1005\"\u003ejpadilla/pyjwt#1005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Gautam-Hegde\"\u003e\u003ccode\u003e@​Gautam-Hegde\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1003\"\u003ejpadilla/pyjwt#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/way-dave\"\u003e\u003ccode\u003e@​way-dave\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/990\"\u003ejpadilla/pyjwt#990\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.9.0...2.10.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.9.0...2.10.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.10.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Prevent partial matching of `iss` claim by @fabianbadoi in `GHSA-75c5-xw7c-p5pm \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\u0026gt;`__\n\u003ch2\u003e\u003ccode\u003ev2.1...\n\n_Description has been truncated_","html_url":"https://github.com/asusoda/platform/pull/83","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asusoda%2Fplatform/issues/83","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/83/packages"},{"uuid":"2838734795","node_id":"PR_kwDOBS0x486pM6fL","number":294,"state":"closed","title":"Bump aiosignal from 1.2.0 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-18T10:29:20.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-18T05:02:09.000Z","updated_at":"2025-09-18T10:29:20.000Z","time_to_close":19631,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"aiosignal","old_version":"1.2.0","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"}],"path":null,"ecosystem":"pip"},"body":"Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.2.0 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.1\u003c/h2\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved stray quote and comma from setup.cfg preventing PyPI from accepting a\nrelease. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.1 (2022-11-08)\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.2.0...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal\u0026package-manager=pip\u0026previous-version=1.2.0\u0026new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/closeio/socketshark/pull/294","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/closeio%2Fsocketshark/issues/294","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/294/packages"},{"uuid":"3420991517","node_id":"PR_kwDOAVZQxs6ozCw7","number":736,"state":"open","title":"chore(deps): bump aiosignal from 1.3.2 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-16T08:05:14.000Z","updated_at":"2025-09-16T10:48:20.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"aiosignal","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"}],"path":null,"ecosystem":"pip"},"body":"Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.2 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.2...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal\u0026package-manager=pip\u0026previous-version=1.3.2\u0026new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/auth0/auth0-python/pull/736","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/auth0%2Fauth0-python/issues/736","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/736/packages"},{"uuid":"3414506495","node_id":"PR_kwDOHR9vV86odUR6","number":475,"state":"open","title":"chore(deps): bump the dependencies group across 1 directory with 100 updates","user":"dependabot[bot]","labels":["skip-changelog","major"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-14T03:19:21.000Z","updated_at":"2025-09-14T04:07:50.844Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"dependencies","update_count":100,"packages":[{"name":"aiohappyeyeballs","old_version":"2.4.0","new_version":"2.6.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"aiokafka","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/aio-libs/aiokafka"},{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"ansible-compat","old_version":"24.8.0","new_version":"24.10.0","repository_url":"https://github.com/ansible/ansible-compat"},{"name":"ansible-pygments","old_version":"0.1.1","new_version":"0.1.2","repository_url":"https://github.com/ansible-community/ansible-pygments"},{"name":"ansible-runner","old_version":"2.4.0","new_version":"2.4.1","repository_url":"https://github.com/ansible/ansible-runner"},{"name":"antsibull-changelog","old_version":"0.29.0","new_version":"0.34.0","repository_url":"https://github.com/ansible-community/antsibull-changelog"},{"name":"antsibull-core","old_version":"3.0.2","new_version":"3.4.0","repository_url":"https://github.com/ansible-community/antsibull-core"},{"name":"antsibull-docs","old_version":"2.13.1","new_version":"2.21.0","repository_url":"https://github.com/ansible-community/antsibull-docs"},{"name":"antsibull-docs-parser","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/ansible-community/antsibull-docs-parser"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"azure-core","old_version":"1.30.2","new_version":"1.35.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"babel","old_version":"2.16.0","new_version":"2.17.0","repository_url":"https://github.com/python-babel/babel"},{"name":"bindep","old_version":"2.11.0","new_version":"2.13.0"},{"name":"black","old_version":"24.8.0","new_version":"25.1.0","repository_url":"https://github.com/psf/black"},{"name":"botocore","old_version":"1.35.7","new_version":"1.40.30","repository_url":"https://github.com/boto/botocore"},{"name":"bracex","old_version":"2.5","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"build","old_version":"1.2.1","new_version":"1.3.0","repository_url":"https://github.com/pypa/build"},{"name":"cachetools","old_version":"5.5.0","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2024.8.30","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.0","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/pallets/click"},{"name":"cryptography","old_version":"43.0.1","new_version":"45.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.8","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"docutils","old_version":"0.20.1","new_version":"0.22","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"drools-jpy","old_version":"0.3.9","new_version":"0.3.14","repository_url":"https://github.com/ansible/drools_jpy"},{"name":"exceptiongroup","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.15.4","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"frozenlist","old_version":"1.4.1","new_version":"1.7.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"galaxy-importer","old_version":"0.4.24","new_version":"0.4.33","repository_url":"https://github.com/ansible/galaxy-importer"},{"name":"gitdb","old_version":"4.0.11","new_version":"4.0.12","repository_url":"https://github.com/gitpython-developers/gitdb"},{"name":"gitpython","old_version":"3.1.43","new_version":"3.1.45","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"idna","old_version":"3.8","new_version":"3.10","repository_url":"https://github.com/kjd/idna"},{"name":"importlib-metadata","old_version":"6.2.1","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"isodate","old_version":"0.6.1","new_version":"0.7.2","repository_url":"https://github.com/gweis/isodate"},{"name":"janus","old_version":"1.0.0","new_version":"2.0.0","repository_url":"https://github.com/aio-libs/janus"},{"name":"jaraco-functools","old_version":"4.0.2","new_version":"4.3.0","repository_url":"https://github.com/jaraco/jaraco.functools"},{"name":"jinja2","old_version":"3.1.4","new_version":"3.1.6","repository_url":"https://github.com/pallets/jinja"},{"name":"jpy","old_version":"0.18.0","new_version":"1.1.0","repository_url":"https://github.com/jpy-consortium/jpy"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.25.1","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"jsonschema-specifications","old_version":"2023.12.1","new_version":"2025.9.1","repository_url":"https://github.com/python-jsonschema/jsonschema-specifications"},{"name":"keyring","old_version":"25.3.0","new_version":"25.6.0","repository_url":"https://github.com/jaraco/keyring"},{"name":"markdown","old_version":"3.7","new_version":"3.9","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"markupsafe","old_version":"2.1.5","new_version":"3.0.2","repository_url":"https://github.com/pallets/markupsafe"},{"name":"mdit-py-plugins","old_version":"0.4.1","new_version":"0.4.2","repository_url":"https://github.com/executablebooks/mdit-py-plugins"},{"name":"mock","old_version":"5.1.0","new_version":"5.2.0","repository_url":"https://github.com/testing-cabal/mock"},{"name":"more-itertools","old_version":"10.4.0","new_version":"10.8.0","repository_url":"https://github.com/more-itertools/more-itertools"},{"name":"multidict","old_version":"6.0.5","new_version":"6.6.4","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"nh3","old_version":"0.2.18","new_version":"0.3.0","repository_url":"https://github.com/messense/nh3"},{"name":"packaging","old_version":"24.1","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pbr","old_version":"6.1.0","new_version":"7.0.1"},{"name":"perky","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/larryhastings/perky"},{"name":"pip","old_version":"24.2","new_version":"25.2","repository_url":"https://github.com/pypa/pip"},{"name":"pkginfo","old_version":"1.10.0","new_version":"1.12.1.2"},{"name":"platformdirs","old_version":"4.2.2","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"psycopg","old_version":"3.1.18","new_version":"3.2.10","repository_url":"https://github.com/psycopg/psycopg"},{"name":"psycopg-binary","old_version":"3.1.18","new_version":"3.2.10","repository_url":"https://github.com/psycopg/psycopg"},{"name":"psycopg-pool","old_version":"3.2.2","new_version":"3.2.6","repository_url":"https://github.com/psycopg/psycopg"},{"name":"pycodestyle","old_version":"2.11.1","new_version":"2.14.0","repository_url":"https://github.com/PyCQA/pycodestyle"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pydantic","old_version":"2.8.2","new_version":"2.11.9","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-core","old_version":"2.20.1","new_version":"2.39.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pyflakes","old_version":"3.1.0","new_version":"3.4.0","repository_url":"https://github.com/PyCQA/pyflakes"},{"name":"pygments","old_version":"2.18.0","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pyparsing","old_version":"3.1.4","new_version":"3.2.4","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyproject-api","old_version":"1.7.1","new_version":"1.9.1","repository_url":"https://github.com/tox-dev/pyproject-api"},{"name":"pyproject-hooks","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/pypa/pyproject-hooks"},{"name":"python-daemon","old_version":"3.0.1","new_version":"3.1.2"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"readme-renderer","old_version":"43.0","new_version":"44.0","repository_url":"https://github.com/pypa/readme_renderer"},{"name":"referencing","old_version":"0.35.1","new_version":"0.36.2","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"resolvelib","old_version":"1.0.1","new_version":"1.2.0","repository_url":"https://github.com/sarugaku/resolvelib"},{"name":"rich","old_version":"13.8.0","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.20.0","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"rstcheck","old_version":"6.2.4","new_version":"6.2.5","repository_url":"https://github.com/rstcheck/rstcheck"},{"name":"rstcheck-core","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/rstcheck/rstcheck-core"},{"name":"ruamel-yaml","old_version":"0.18.6","new_version":"0.18.15"},{"name":"ruamel-yaml-clib","old_version":"0.2.8","new_version":"0.2.12"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smmap","old_version":"5.0.1","new_version":"5.0.2","repository_url":"https://github.com/gitpython-developers/smmap"},{"name":"snowballstemmer","old_version":"2.2.0","new_version":"3.0.1","repository_url":"https://github.com/snowballstem/snowball"},{"name":"sphinx-rtd-theme","old_version":"2.0.0","new_version":"3.0.2","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"tomli","old_version":"2.0.1","new_version":"2.2.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"twine","old_version":"5.1.1","new_version":"6.2.0","repository_url":"https://github.com/pypa/twine"},{"name":"typer","old_version":"0.12.5","new_version":"0.17.4","repository_url":"https://github.com/fastapi/typer"},{"name":"typer-config","old_version":"1.4.0","new_version":"1.4.2","repository_url":"https://github.com/maxb2/typer-config"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"1.26.20","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"virtualenv","old_version":"20.26.3","new_version":"20.34.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"wcmatch","old_version":"9.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"},{"name":"websockets","old_version":"13.0.1","new_version":"15.0.1","repository_url":"https://github.com/python-websockets/websockets"},{"name":"wrapt","old_version":"1.16.0","new_version":"1.17.3","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"yamllint","old_version":"1.35.1","new_version":"1.37.1","repository_url":"https://github.com/adrienverge/yamllint"},{"name":"yarl","old_version":"1.9.8","new_version":"1.20.1","repository_url":"https://github.com/aio-libs/yarl"},{"name":"zipp","old_version":"3.20.1","new_version":"3.23.0","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 100 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.4.0` | `2.6.1` |\n| [aiokafka](https://github.com/aio-libs/aiokafka) | `0.11.0` | `0.12.0` |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [ansible-compat](https://github.com/ansible/ansible-compat) | `24.8.0` | `24.10.0` |\n| [ansible-pygments](https://github.com/ansible-community/ansible-pygments) | `0.1.1` | `0.1.2` |\n| [ansible-runner](https://github.com/ansible/ansible-runner) | `2.4.0` | `2.4.1` |\n| [antsibull-changelog](https://github.com/ansible-community/antsibull-changelog) | `0.29.0` | `0.34.0` |\n| [antsibull-core](https://github.com/ansible-community/antsibull-core) | `3.0.2` | `3.4.0` |\n| [antsibull-docs](https://github.com/ansible-community/antsibull-docs) | `2.13.1` | `2.21.0` |\n| [antsibull-docs-parser](https://github.com/ansible-community/antsibull-docs-parser) | `1.1.0` | `1.2.1` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.30.2` | `1.35.1` |\n| [babel](https://github.com/python-babel/babel) | `2.16.0` | `2.17.0` |\n| bindep | `2.11.0` | `2.13.0` |\n| [black](https://github.com/psf/black) | `24.8.0` | `25.1.0` |\n| [botocore](https://github.com/boto/botocore) | `1.35.7` | `1.40.30` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5` | `2.6` |\n| [build](https://github.com/pypa/build) | `1.2.1` | `1.3.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.5.0` | `6.2.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.8.30` | `2025.8.3` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.0` | `2.0.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.1.8` |\n| [cryptography](https://github.com/pyca/cryptography) | `43.0.1` | `45.0.7` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.8` | `0.4.0` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.20.1` | `0.22` |\n| [drools-jpy](https://github.com/ansible/drools_jpy) | `0.3.9` | `0.3.14` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.2.2` | `1.3.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.15.4` | `3.19.1` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.4.1` | `1.7.0` |\n| [galaxy-importer](https://github.com/ansible/galaxy-importer) | `0.4.24` | `0.4.33` |\n| [gitdb](https://github.com/gitpython-developers/gitdb) | `4.0.11` | `4.0.12` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.43` | `3.1.45` |\n| [idna](https://github.com/kjd/idna) | `3.8` | `3.10` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.2.1` | `8.7.0` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.1.0` |\n| [isodate](https://github.com/gweis/isodate) | `0.6.1` | `0.7.2` |\n| [janus](https://github.com/aio-libs/janus) | `1.0.0` | `2.0.0` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) | `4.0.2` | `4.3.0` |\n| [jinja2](https://github.com/pallets/jinja) | `3.1.4` | `3.1.6` |\n| [jpy](https://github.com/jpy-consortium/jpy) | `0.18.0` | `1.1.0` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2023.12.1` | `2025.9.1` |\n| [keyring](https://github.com/jaraco/keyring) | `25.3.0` | `25.6.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.7` | `3.9` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `2.1.5` | `3.0.2` |\n| [mdit-py-plugins](https://github.com/executablebooks/mdit-py-plugins) | `0.4.1` | `0.4.2` |\n| [mock](https://github.com/testing-cabal/mock) | `5.1.0` | `5.2.0` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.4.0` | `10.8.0` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.0.5` | `6.6.4` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [nh3](https://github.com/messense/nh3) | `0.2.18` | `0.3.0` |\n| [packaging](https://github.com/pypa/packaging) | `24.1` | `25.0` |\n| [pbr](https://docs.openstack.org/pbr/latest/) | `6.1.0` | `7.0.1` |\n| [perky](https://github.com/larryhastings/perky) | `0.9.2` | `0.9.3` |\n| [pip](https://github.com/pypa/pip) | `24.2` | `25.2` |\n| [pkginfo](https://code.launchpad.net/~tseaver/pkginfo/trunk) | `1.10.0` | `1.12.1.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.2.2` | `4.4.0` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.1.18` | `3.2.10` |\n| [psycopg-binary](https://github.com/psycopg/psycopg) | `3.1.18` | `3.2.10` |\n| [psycopg-pool](https://github.com/psycopg/psycopg) | `3.2.2` | `3.2.6` |\n| [pycodestyle](https://github.com/PyCQA/pycodestyle) | `2.11.1` | `2.14.0` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.8.2` | `2.11.9` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.20.1` | `2.39.0` |\n| [pyflakes](https://github.com/PyCQA/pyflakes) | `3.1.0` | `3.4.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.19.2` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.1.4` | `3.2.4` |\n| [pyproject-api](https://github.com/tox-dev/pyproject-api) | `1.7.1` | `1.9.1` |\n| [pyproject-hooks](https://github.com/pypa/pyproject-hooks) | `1.1.0` | `1.2.0` |\n| python-daemon | `3.0.1` | `3.1.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.1.1` |\n| [readme-renderer](https://github.com/pypa/readme_renderer) | `43.0` | `44.0` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.36.2` |\n| [resolvelib](https://github.com/sarugaku/resolvelib) | `1.0.1` | `1.2.0` |\n| [rich](https://github.com/Textualize/rich) | `13.8.0` | `14.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.0` | `0.27.1` |\n| [rstcheck](https://github.com/rstcheck/rstcheck) | `6.2.4` | `6.2.5` |\n| [rstcheck-core](https://github.com/rstcheck/rstcheck-core) | `1.2.1` | `1.2.2` |\n| ruamel-yaml | `0.18.6` | `0.18.15` |\n| ruamel-yaml-clib | `0.2.8` | `0.2.12` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smmap](https://github.com/gitpython-developers/smmap) | `5.0.1` | `5.0.2` |\n| [snowballstemmer](https://github.com/snowballstem/snowball) | `2.2.0` | `3.0.1` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `2.0.0` | `3.0.2` |\n| [tomli](https://github.com/hukkin/tomli) | `2.0.1` | `2.2.1` |\n| [twine](https://github.com/pypa/twine) | `5.1.1` | `6.2.0` |\n| [typer](https://github.com/fastapi/typer) | `0.12.5` | `0.17.4` |\n| [typer-config](https://github.com/maxb2/typer-config) | `1.4.0` | `1.4.2` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `1.26.20` | `2.5.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.26.3` | `20.34.0` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `9.0` | `10.1` |\n| [websockets](https://github.com/python-websockets/websockets) | `13.0.1` | `15.0.1` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.16.0` | `1.17.3` |\n| [yamllint](https://github.com/adrienverge/yamllint) | `1.35.1` | `1.37.1` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.9.8` | `1.20.1` |\n| [zipp](https://github.com/jaraco/zipp) | `3.20.1` | `3.23.0` |\n\n\nUpdates `aiohappyeyeballs` from 2.4.0 to 2.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/releases\"\u003eaiohappyeyeballs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.6.1 (2025-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve TypeError on import for Python \u0026lt; 3.9.2 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/151\"\u003e#151\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/2042c82f9978f41c31b58aa4e3d8fc3b9c3ec2ec\"\u003e\u003ccode\u003e2042c82\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.6.0...v2.6.1\"\u003ev2.6.0...v2.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.6.0 (2025-03-11)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edocs\u003c/strong\u003e: Publish documentation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/149\"\u003e#149\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/42352736d12c60d500c63b9598ffab05ef5e8829\"\u003e\u003ccode\u003e4235273\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCreates an api_reference.rst file to expose the existing documentation for the few functions that have docstrings, as well as add documentation for AddrInfoType and SocketFactoryType. Now, these can be properly pointed to by other projects' documentation.\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.5.0...v2.6.0\"\u003ev2.5.0...v2.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.5.0 (2025-03-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd callback for users to customize socket creation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/147\"\u003e#147\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/8e1bc6a4bc6282ccf29db441c33dd8d806003ffd\"\u003e\u003ccode\u003e8e1bc6a\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCo-authored-by: Kieren \u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.4.8...v2.5.0\"\u003ev2.4.8...v2.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.4.8 (2025-03-04)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClose runner up sockets in the event there are multiple winners (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/143\"\u003e#143\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/476a05b956627700baa84eb6aac28c395da92a9f\"\u003e\u003ccode\u003e476a05b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe first attempt to fix this was to use the cpython staggered race updates in \u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/142\"\u003e#142\u003c/a\u003e but there is still a race there where there can be multiple winners. Instead we now accept that we will not be able to cancel all coros in time and there will always be a risk of multiple winners. We store all sockets in a set that were not already cleaned up and we close all but the first winner after the staggered race finishes.\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.4.7...v2.4.8\"\u003ev2.4.7...v2.4.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.4.7 (2025-03-04)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/blob/main/CHANGELOG.md\"\u003eaiohappyeyeballs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.6.1 (2025-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve typeerror on import for python \u0026lt; 3.9.2 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/151\"\u003e#151\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/2042c82f9978f41c31b58aa4e3d8fc3b9c3ec2ec\"\u003e\u003ccode\u003e2042c82\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.6.0 (2025-03-11)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish documentation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/149\"\u003e#149\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/42352736d12c60d500c63b9598ffab05ef5e8829\"\u003e\u003ccode\u003e4235273\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.0 (2025-03-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd callback for users to customize socket creation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/147\"\u003e#147\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/8e1bc6a4bc6282ccf29db441c33dd8d806003ffd\"\u003e\u003ccode\u003e8e1bc6a\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.8 (2025-03-04)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClose runner up sockets in the event there are multiple winners (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/143\"\u003e#143\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/476a05b956627700baa84eb6aac28c395da92a9f\"\u003e\u003ccode\u003e476a05b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.7 (2025-03-04)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve warnings when running tests (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/144\"\u003e#144\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/e96264aec89b9bd34d37413f610d039c56393a48\"\u003e\u003ccode\u003ee96264a\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.6 (2025-02-07)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure all timers are cancelled when after staggered race finishes (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/136\"\u003e#136\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/f75891d8974693b24af9789a8981ed7f6bc55c5c\"\u003e\u003ccode\u003ef75891d\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.5 (2025-02-07)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKeep classifiers in project to avoid automatic enrichment (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/134\"\u003e#134\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/99edb20e9d3e53ead65b55cb3e93c22c03d06599\"\u003e\u003ccode\u003e99edb20\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove classifiers to prevent recalculation by poetry (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/131\"\u003e#131\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/66e1c90ae81f71c7039cd62c60417a96202d906c\"\u003e\u003ccode\u003e66e1c90\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.4 (2024-11-30)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle oserror on failure to close socket instead of raising indexerror (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/114\"\u003e#114\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/c542f684d329fed04093caa2b31d8f7f6e0e0949\"\u003e\u003ccode\u003ec542f68\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.3 (2024-09-30)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/e3bd5bdf44f5d187802de6dcb08d27e1ca6da048\"\u003e\u003ccode\u003ee3bd5bd\u003c/code\u003e\u003c/a\u003e 2.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/2042c82f9978f41c31b58aa4e3d8fc3b9c3ec2ec\"\u003e\u003ccode\u003e2042c82\u003c/code\u003e\u003c/a\u003e fix: resolve TypeError on import for Python \u0026lt; 3.9.2 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/b23d9194d6db1c4d237da0da623a081573385915\"\u003e\u003ccode\u003eb23d919\u003c/code\u003e\u003c/a\u003e chore: remove unused CI exclude for Python 3.8.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/36149e7194d9a24fc8109265dee80fecd362f449\"\u003e\u003ccode\u003e36149e7\u003c/code\u003e\u003c/a\u003e 2.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/42352736d12c60d500c63b9598ffab05ef5e8829\"\u003e\u003ccode\u003e4235273\u003c/code\u003e\u003c/a\u003e feat(docs): publish documentation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/17d5e48488f7b533efea33ebb89c25e7b4eda7ad\"\u003e\u003ccode\u003e17d5e48\u003c/code\u003e\u003c/a\u003e chore(pre-commit.ci): pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/148\"\u003e#148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/3fed4432036740392483608a9da86637cf1bd64b\"\u003e\u003ccode\u003e3fed443\u003c/code\u003e\u003c/a\u003e 2.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/8e1bc6a4bc6282ccf29db441c33dd8d806003ffd\"\u003e\u003ccode\u003e8e1bc6a\u003c/code\u003e\u003c/a\u003e feat: add callback for users to customize socket creation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/c4ab1e5409fe086c12932e47dc4a305eb15b4091\"\u003e\u003ccode\u003ec4ab1e5\u003c/code\u003e\u003c/a\u003e 2.4.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/476a05b956627700baa84eb6aac28c395da92a9f\"\u003e\u003ccode\u003e476a05b\u003c/code\u003e\u003c/a\u003e fix: close runner up sockets in the event there are multiple winners (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.4.0...v2.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiokafka` from 0.11.0 to 0.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiokafka/releases\"\u003eaiokafka's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.12.0\u003c/h2\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBuild mac x86_64 wheels (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1029\"\u003e#1029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13, drop support for Python 3.8 due to end of life (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove duplicate error logging during rebalance (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1025\"\u003e#1025\u003c/a\u003e by \u003ca href=\"https://github.com/y4n9squared\"\u003e\u003ccode\u003e@​y4n9squared\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eQuote username in SCRAM auth (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1043\"\u003e#1043\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eImproved Documentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix building of readthedocs documentation (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1034\"\u003e#1034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo in producer documentation (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1036\"\u003e#1036\u003c/a\u003e by \u003ca href=\"https://github.com/lgo\"\u003e\u003ccode\u003e@​lgo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiokafka/blob/master/CHANGES.rst\"\u003eaiokafka's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.12.0 (2024-10-26)\u003c/h1\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBuild mac x86_64 wheels (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1029\"\u003e#1029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13, drop support for Python 3.8 due to end of life (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove duplicate error logging during rebalance (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1025\"\u003e#1025\u003c/a\u003e by \u003ca href=\"https://github.com/y4n9squared\"\u003e\u003ccode\u003e@​y4n9squared\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eQuote username in SCRAM auth (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1043\"\u003e#1043\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eImproved Documentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix building of readthedocs documentation (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1034\"\u003e#1034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo in producer documentation (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1036\"\u003e#1036\u003c/a\u003e by \u003ca href=\"https://github.com/lgo\"\u003e\u003ccode\u003e@​lgo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/f6c79a086f1d5cf2b6e94e65db05970c4729c7a0\"\u003e\u003ccode\u003ef6c79a0\u003c/code\u003e\u003c/a\u003e Update actions, fix publishing (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/71335629d503cb3ad260de662e23c32402c8368b\"\u003e\u003ccode\u003e7133562\u003c/code\u003e\u003c/a\u003e Prepare 0.12.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/f7861f682c9b5cd78411e7fd6ea0fc4bf92ded33\"\u003e\u003ccode\u003ef7861f6\u003c/code\u003e\u003c/a\u003e Remove duplicate error log during rebalance (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/e7c9033b7d44c691073e9e25438f2c8ec523a14f\"\u003e\u003ccode\u003ee7c9033\u003c/code\u003e\u003c/a\u003e Add Python 3.13, remove 3.8 (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/608ab2443510c92226de0eb3fc2065f5d1307e12\"\u003e\u003ccode\u003e608ab24\u003c/code\u003e\u003c/a\u003e Fix ClusterMetadata request_update() (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/4cff9d77014e922c6e458224ed6abbae4fa07c4d\"\u003e\u003ccode\u003e4cff9d7\u003c/code\u003e\u003c/a\u003e Made classes enum.IntEnums where appropriate. (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/01c60cd9c45e975aee8d4932247108a9e639d026\"\u003e\u003ccode\u003e01c60cd\u003c/code\u003e\u003c/a\u003e Quote username in SCRAM auth (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1043\"\u003e#1043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/e2afc034b59626242b51b06b30a62c565ef491d9\"\u003e\u003ccode\u003ee2afc03\u003c/code\u003e\u003c/a\u003e fix type on producer docs (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1036\"\u003e#1036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/f9dbed1a00337971e6569c6611a98c1ab294fe98\"\u003e\u003ccode\u003ef9dbed1\u003c/code\u003e\u003c/a\u003e Add readthedocs config (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1034\"\u003e#1034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/2f976d0301682f0fe631c04c08d653be0d20ccb1\"\u003e\u003ccode\u003e2f976d0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1030\"\u003e#1030\u003c/a\u003e from webknjaz/maintenance/gha-pypi-tokenless-publishing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiokafka/compare/v0.11.0...v0.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ansible-compat` from 24.8.0 to 24.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible/ansible-compat/releases\"\u003eansible-compat's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev24.10.0\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for py313 (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/416\"\u003e#416\u003c/a\u003e) \u003ca href=\"https://github.com/ssbarnea\"\u003e\u003ccode\u003e@​ssbarnea\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRe-init plugin loader after collections installation (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/411\"\u003e#411\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/412\"\u003e#412\u003c/a\u003e) \u003ca href=\"https://github.com/irozet12\"\u003e\u003ccode\u003e@​irozet12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev24.9.1\u003c/h2\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid running prepare ansible paths twice (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/409\"\u003e#409\u003c/a\u003e) \u003ca href=\"https://github.com/ssbarnea\"\u003e\u003ccode\u003e@​ssbarnea\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid duplicate paths when path injection (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/407\"\u003e#407\u003c/a\u003e) \u003ca href=\"https://github.com/ssbarnea\"\u003e\u003ccode\u003e@​ssbarnea\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eProvide more detail on multiple collection installs (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/405\"\u003e#405\u003c/a\u003e) \u003ca href=\"https://github.com/mrgum\"\u003e\u003ccode\u003e@​mrgum\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev24.9.0\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd communication details (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/400\"\u003e#400\u003c/a\u003e) \u003ca href=\"https://github.com/oraNod\"\u003e\u003ccode\u003e@​oraNod\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix upload-artifact action to work with v4.4 and newer (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/403\"\u003e#403\u003c/a\u003e) \u003ca href=\"https://github.com/alisonlhart\"\u003e\u003ccode\u003e@​alisonlhart\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/ba624e9511a76f29fd12cff3e01feef1458d3acf\"\u003e\u003ccode\u003eba624e9\u003c/code\u003e\u003c/a\u003e Bump the dependencies group in /.config with 5 updates (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/6d9524e282a0f5078dfdaf9d01e620493076496d\"\u003e\u003ccode\u003e6d9524e\u003c/code\u003e\u003c/a\u003e Add support for py313 (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/416\"\u003e#416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/264a2785eb278406a5b93b9c5a8a1979eee5cc11\"\u003e\u003ccode\u003e264a278\u003c/code\u003e\u003c/a\u003e chore: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/415\"\u003e#415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/1f01f448542e4c258dfa1ed5ea84eab655ddc43b\"\u003e\u003ccode\u003e1f01f44\u003c/code\u003e\u003c/a\u003e Replace pip-compile with uv pip compile (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/419\"\u003e#419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/43f75ebf417fa914da59f12781aecea6566822ed\"\u003e\u003ccode\u003e43f75eb\u003c/code\u003e\u003c/a\u003e Fix tests (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/420\"\u003e#420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/29430b1fe77b02e4c7a5073cefb2a04a67fec338\"\u003e\u003ccode\u003e29430b1\u003c/code\u003e\u003c/a\u003e Tune dependabot config (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/417\"\u003e#417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/e247f3fab0400f97df08498c9e2cdf34025f1ba8\"\u003e\u003ccode\u003ee247f3f\u003c/code\u003e\u003c/a\u003e Re-init plugin loader after collections installation (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/411\"\u003e#411\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/18c671e23c1d4fa91fd372fca24474b89e31832c\"\u003e\u003ccode\u003e18c671e\u003c/code\u003e\u003c/a\u003e Bump coactions/dynamic-matrix from 3 to 4 (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/414\"\u003e#414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/ebe0b2c89717cf7567071b540461f878cefa8185\"\u003e\u003ccode\u003eebe0b2c\u003c/code\u003e\u003c/a\u003e chore: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/413\"\u003e#413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/16538ab64884462d8afdf35b97cb1f02299cef69\"\u003e\u003ccode\u003e16538ab\u003c/code\u003e\u003c/a\u003e Add template for bug reports (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible/ansible-compat/compare/v24.8.0...v24.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ansible-pygments` from 0.1.1 to 0.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/ansible-pygments/releases\"\u003eansible-pygments's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.2\u003c/h2\u003e\n\u003cp\u003eMaintenance release to ensure that releasing still works.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/cb4a39bef9e4a4169dce502f2f198016967506bb\"\u003e\u003ccode\u003ecb4a39b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/70\"\u003e#70\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/be3cc3b5e5d7264e842938197acca8d6434ec49f\"\u003e\u003ccode\u003ebe3cc3b\u003c/code\u003e\u003c/a\u003e Bump the ci group with 5 updates (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/73\"\u003e#73\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/2e506fd496d33cc3a34673555c5bb18e357d6214\"\u003e\u003ccode\u003e2e506fd\u003c/code\u003e\u003c/a\u003e Fix dependabot config. (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/72\"\u003e#72\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/5f5bc32fb5f6c8c96c1b13660365fee67f90f7b2\"\u003e\u003ccode\u003e5f5bc32\u003c/code\u003e\u003c/a\u003e Add dependabot config (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/60\"\u003e#60\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/73fac92d94987a1ab87ec5aa85db1a117a7785a8\"\u003e\u003ccode\u003e73fac92\u003c/code\u003e\u003c/a\u003e Fix CI: avoid deprecated poetry section, drop macOS and Windows from CI matri...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/149a793087a789e6a1905716f69ebec77e610b25\"\u003e\u003ccode\u003e149a793\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/69\"\u003e#69\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/bc64e01b0c536ec2cc03ffc470d65eae088632c0\"\u003e\u003ccode\u003ebc64e01\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/68\"\u003e#68\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/709e4e3109a0fc6eabcea757686d0d4635e1f549\"\u003e\u003ccode\u003e709e4e3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/67\"\u003e#67\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/dec1d0799c1f029532faefed2e1b25cb55d6aed8\"\u003e\u003ccode\u003edec1d07\u003c/code\u003e\u003c/a\u003e Require Python 3.9+; add Python 3.12 and 3.13 to CI (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/64\"\u003e#64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/c50df0f4486185b463a78fd4ad8d4cb68f1bac1f\"\u003e\u003ccode\u003ec50df0f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/66\"\u003e#66\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible-community/ansible-pygments/compare/0.1.1...0.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ansible-runner` from 2.4.0 to 2.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible/ansible-runner/releases\"\u003eansible-runner's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eModify volume mount behavior when source does not exist (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1408\"\u003e#1408\u003c/a\u003e). Volumes specified using the \u003ccode\u003econtainer-volume-mount\u003c/code\u003e option will now be passed through to the underlying container engine unverified and unmodified. This now allows you to mount individual files (vs. the parent directory) and non-existing source volumes. The behavior encountered with a non-existing source volume depends on which container engine is in use (\u003ccode\u003edocker\u003c/code\u003e creates the volume, \u003ccode\u003epodman\u003c/code\u003e will error).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVarious documentation updates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ansible/ansible-runner/compare/2.4.0...2.4.1\"\u003ehttps://github.com/ansible/ansible-runner/compare/2.4.0...2.4.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/ac1a759d95e1953549bc9af46bf46285bec99b70\"\u003e\u003ccode\u003eac1a759\u003c/code\u003e\u003c/a\u003e Bump core integration tests for core 2.18 release (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/4ff8ce3af4ace1fb1dc488bfe93e1257deedacf4\"\u003e\u003ccode\u003e4ff8ce3\u003c/code\u003e\u003c/a\u003e Modify volume mount behavior when source does not exist (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1408\"\u003e#1408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/ab8ca8876ea1a13e108063776a4815736a6c3bd9\"\u003e\u003ccode\u003eab8ca88\u003c/code\u003e\u003c/a\u003e Bump cryptography from 43.0.1 to 44.0.1 in /docs (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1412\"\u003e#1412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/d4ea51538e4aaa50b84f47ec1183804620d3c1b5\"\u003e\u003ccode\u003ed4ea515\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.4 to 3.1.5 in /docs (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/d335d8c23dd1986b234b57cb687c551318ad552c\"\u003e\u003ccode\u003ed335d8c\u003c/code\u003e\u003c/a\u003e Upgrade documentation requirements (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/e541a37912f1da94c6dc05ff5546ea2a34d11f34\"\u003e\u003ccode\u003ee541a37\u003c/code\u003e\u003c/a\u003e Docs: change Getting started EE guide reference to point to the relevant loca...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/9199f4cef4f09faabe238200187b9c6fbbb39464\"\u003e\u003ccode\u003e9199f4c\u003c/code\u003e\u003c/a\u003e Docs: remove IRC remnants (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1393\"\u003e#1393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/7ee1d19b2628fb3c8200db22acdf3083b3891166\"\u003e\u003ccode\u003e7ee1d19\u003c/code\u003e\u003c/a\u003e Update community comms info (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1392\"\u003e#1392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/1191a0c455ec5871d108966bf72dbc4ae78f402c\"\u003e\u003ccode\u003e1191a0c\u003c/code\u003e\u003c/a\u003e Update external_interface.rst (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1353\"\u003e#1353\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1376\"\u003e#1376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/41e5cd17864af469dc086e5f10c0ec287aa17e2d\"\u003e\u003ccode\u003e41e5cd1\u003c/code\u003e\u003c/a\u003e Fix roles_path type in docstring (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1373\"\u003e#1373\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1375\"\u003e#1375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible/ansible-runner/compare/2.4.0...2.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `antsibull-changelog` from 0.29.0 to 0.34.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/releases\"\u003eantsibull-changelog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.34.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release for antsibull-build.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003c!-- raw HTML omitted --\u003eRSTDocumentRenderer\u003c!-- raw HTML omitted --\u003e API now allows to configure section underlines. This is needed to fix the Ansible 12 porting guide (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/203\"\u003eansible-community/antsibull-changelog#203\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.33.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eMaintenance release for fixing / deprecating certain boolean options.\u003c/p\u003e\n\u003ch3\u003eBreaking Changes / Porting Guide\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003c!-- raw HTML omitted --\u003e--strict\u003c!-- raw HTML omitted --\u003e option of the \u003c!-- raw HTML omitted --\u003elint-changelog-yaml\u003c!-- raw HTML omitted --\u003e subcommand no longer expects a parameter. It now matches what was documented (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/195\"\u003eansible-community/antsibull-changelog#195\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/196\"\u003eansible-community/antsibull-changelog#196\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe boolean valued options \u003c!-- raw HTML omitted --\u003e--is-collection\u003c!-- raw HTML omitted --\u003e and \u003c!-- raw HTML omitted --\u003e--collection-flatmap\u003c!-- raw HTML omitted --\u003e will likely change to proper flags (\u003c!-- raw HTML omitted --\u003e--flag\u003c!-- raw HTML omitted --\u003e and \u003c!-- raw HTML omitted --\u003e--no-flag`\u003c!-- raw HTML omitted --\u003e instead of \u003c!-- raw HTML omitted --\u003e--flag true\u003c!-- raw HTML omitted --\u003e/\u003c!-- raw HTML omitted --\u003e--flag false\u003c!-- raw HTML omitted --\u003e) in the near future. If you are using these options and want them to not change, or have other suggestions, please \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/issues/new\"\u003ecreate an issue in the antsibull-changelog repository\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/199\"\u003eansible-community/antsibull-changelog#199\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.32.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch3\u003eMajor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe new configuration setting \u003c!-- raw HTML omitted --\u003eoutput\u003c!-- raw HTML omitted --\u003e allows to configure more precisely which changelog files are generated and how they are formatted (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/190\"\u003eansible-community/antsibull-changelog#190\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/194\"\u003eansible-community/antsibull-changelog#194\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAntsibull-changelog now depends on Pydantic 2 (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/193\"\u003eansible-community/antsibull-changelog#193\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAntsibull-changelog now uses Pydantic to parse and validate the config. This means that validation is more strict than before and might reject configs that were incorrect, but still got accepted somehow (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/193\"\u003eansible-community/antsibull-changelog#193\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes / Porting Guide\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWhen using antsibull-changelog as a library, \u003c!-- raw HTML omitted --\u003eChangelogConfig\u003c!-- raw HTML omitted --\u003e's constructor should no longer be called directly. Instead, use the class method \u003c!-- raw HTML omitted --\u003eChangelogConfig.parse()\u003c!-- raw HTML omitted --\u003e, which has the same signature than the previous constructor, except that \u003c!-- raw HTML omitted --\u003eignore_is_other_project\u003c!-- raw HTML omitted --\u003e now must be a keyword parameter (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/193\"\u003eansible-community/antsibull-changelog#193\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eWhen using antsibull-changelog as a library, \u003c!-- raw HTML omitted --\u003erendering.changelog.generate_changelog()\u003c!-- raw HTML omitted --\u003e now needs a \u003c!-- raw HTML omitted --\u003eChangelogOutput\u003c!-- raw HTML omitted --\u003e object instead of the \u003c!-- raw HTML omitted --\u003edocument_format: TextFormat\u003c!-- raw HTML omitted --\u003e parameter, and the \u003c!-- raw HTML omitted --\u003econfig\u003c!-- raw HTML omitted --\u003e and \u003c!-- raw HTML omitted --\u003echangelog_path\u003c!-- raw HTML omitted --\u003e parameters have been removed (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/194\"\u003eansible-community/antsibull-changelog#194\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eWhen using the \u003c!-- raw HTML omitted --\u003e--output\u003c!-- raw HTML omitted --\u003e argument for \u003c!-- raw HTML omitted --\u003eantsibull-changelog generate\u003c!-- raw HTML omitted --\u003e, the generated changelog's title will not contain any parts of the version number. If you need this, \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/issues/new\"\u003eplease create an issue\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/194\"\u003eansible-community/antsibull-changelog#194\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe configuration settings \u003c!-- raw HTML omitted --\u003echangelog_filename_template\u003c!-- raw HTML omitted --\u003e, \u003c!-- raw HTML omitted --\u003echangelog_filename_version_depth\u003c!-- raw HTML omitted --\u003e, and \u003c!-- raw HTML omitted --\u003eoutput_formats\u003c!-- raw HTML omitted --\u003e are deprecated and will eventually be removed. Use the new setting \u003c!-- raw HTML omitted --\u003eoutput\u003c!-- raw HTML omitted --\u003e instead. Note that there are no runtime warnings right now. If the time to remove them comes nearer, there will be runtime warnings for a longer time first before they are actually removed (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/194\"\u003eansible-community/antsibull-changelog#194\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved Features (previously deprecated)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython API: remove \u003c!-- raw HTML omitted --\u003eantsibull_changelog.rst\u003c!-- raw HTML omitted --\u003e module (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/183\"\u003eansible-community/antsibull-changelog#183\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003ePython API: remove constructor arguments \u003c!-- raw HTML omitted --\u003eplugins\u003c!-- raw HTML omitted --\u003e and \u003c!-- raw HTML omitted --\u003efragments\u003c!-- raw HTML omitted --\u003e from class \u003c!-- raw HTML omitted --\u003eChangelogGenerator\u003c!-- raw HTML omitted --\u003e in \u003c!-- raw HTML omitted --\u003eantsibull_changelog.rendering.changelog\u003c!-- raw HTML omitted --\u003e (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/183\"\u003eansible-community/antsibull-changelog#183\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/blob/main/CHANGELOG.rst\"\u003eantsibull-changelog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev0.34.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eFeature release for antsibull-build.\u003c/p\u003e\n\u003ch2\u003eMinor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eRSTDocumentRenderer\u003c/code\u003e API now allows to configure section underlines. This is needed to fix the Ansible 12 porting guide (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/203\"\u003eansible-community/antsibull-changelog#203\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev0.33.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eMaintenance release for fixing / deprecating certain boolean options.\u003c/p\u003e\n\u003ch2\u003eBreaking Changes / Porting Guide\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003e--strict\u003c/code\u003e option of the \u003ccode\u003elint-changelog-yaml\u003c/code\u003e subcommand no longer expects a parameter. It now matches what was documented (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/195\"\u003eansible-community/antsibull-changelog#195\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/196\"\u003eansible-community/antsibull-changelog#196\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecated Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe boolean valued options \u003ccode\u003e--is-collection\u003c/code\u003e and \u003ccode\u003e--collection-flatmap\u003c/code\u003e will likely change to proper flags (\u003ccode\u003e--flag\u003c/code\u003e and \u003ccode\u003e--no-flag`` instead of ``--flag true``/``--flag false``) in the near future. If you are using these options and want them to not change, or have other suggestions, please \u003c/code\u003ecreate an issue in the antsibull-changelog repository \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/issues/new\"\u003ehttps://github.com/ansible-community/antsibull-changelog/issues/new\u003c/a\u003e`__ (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/199\"\u003eansible-community/antsibull-changelog#199\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev0.32.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch2\u003eMajor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe new configuration setting \u003ccode\u003eoutput\u003c/code\u003e allows to configure more precisely which changelog files are generated and how they are formatted (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/190\"\u003eansible-community/antsibull-changelog#190\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/194\"\u003eansible-community/antsibull-changelog#194\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMinor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAntsibull-changelog now depends on Pydantic 2 (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/193\"\u003eansible-community/antsibull-changelog#193\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAntsibull-changelog now uses Pydantic to parse and validate the config. This means that validation is more strict than before and might reject configs that were incorrect, but still got accepted somehow (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/193\"\u003eansible-community/antsibull-changelog#193\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/bfc0f285ff2533d90a4d895cb35d6129d60f5d5b\"\u003e\u003ccode\u003ebfc0f28\u003c/code\u003e\u003c/a\u003e Release 0.34.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/42b56c7c9b13c332e68f1aba9c67f9561b100ac7\"\u003e\u003ccode\u003e42b56c7\u003c/code\u003e\u003c/a\u003e Prepare 0.34.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/b4db3fa5a6c3da089c76a36e65d2707a54af65ac\"\u003e\u003ccode\u003eb4db3fa\u003c/code\u003e\u003c/a\u003e Allow to configure section underlines (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/203\"\u003e#203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/9d8652db1ce9051644590fc3817c47fcf74388e8\"\u003e\u003ccode\u003e9d8652d\u003c/code\u003e\u003c/a\u003e Bump wntrblm/nox from 2025.02.09 to 2025.05.01 in the ci group (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/202\"\u003e#202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/4368df589ed775e9e51746c50ca8070e1fb32272\"\u003e\u003ccode\u003e4368df5\u003c/code\u003e\u003c/a\u003e Use new run-nox action. (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/201\"\u003e#201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/e523a6d4751c69a23a1b5fda77bd35755b1b00b2\"\u003e\u003ccode\u003ee523a6d\u003c/code\u003e\u003c/a\u003e Improve README.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/57d0dc8ca5addad3d3cf8e1ee94143dce11539a9\"\u003e\u003ccode\u003e57d0dc8\u003c/code\u003e\u003c/a\u003e Post-release version bump.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/2574c00bdb23c778a784c5b892c452c714a659b6\"\u003e\u003ccode\u003e2574c00\u003c/code\u003e\u003c/a\u003e Release 0.33.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/b37b06c357251f8fa12042a1c9f9ca918ecd6b71\"\u003e\u003ccode\u003eb37b06c\u003c/code\u003e\u003c/a\u003e Prepare 0.33.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/89ed5da87b4f6d88f464cc20dad9be6fcca3e5f9\"\u003e\u003ccode\u003e89ed5da\u003c/code\u003e\u003c/a\u003e Announce deprecation of boolean valued options. (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/compare/0.29.0...0.34.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `antsibull-core` from 3.0.2 to 3.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/antsibull-core/releases\"\u003eantsibull-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.4.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow information on removed or deprecated collections to be updated. This is needed to generate a consistent changelog (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/177\"\u003eansible-community/antsibull-core#177\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.13 (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/176\"\u003eansible-community/antsibull-core#176\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow information on removed collections from previous major releases in collection metadata schema (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/174\"\u003eansible-community/antsibull-core#174\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.2.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature and bugfix release.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pydantic helper for strict linting (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/169\"\u003eansible-community/antsibull-core#169\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow information on removed collections in collection metadata schema (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/173\"\u003eansible-community/antsibull-core#173\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCollection metadata removal schema valiation: remove bad check that deprecated redirect replacement major version must be in the future (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/172\"\u003eansible-community/antsibull-core#172\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release adding a new dependency.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd schema and validation helper for ansible-build-data's collection meta (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-build-data/pull/450\"\u003eansible-community/ansible-build-data#450\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/168\"\u003eansible-community/antsibull-core#168\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAntsibull-core now depends on the new project antsibull-fileutils. Some code has been moved to that library; that code is re-imported to avoid breaking changes for users of antsibull-core (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/166\"\u003eansible-community/antsibull-core#166\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/antsibull-core/blob/main/CHANGELOG.rst\"\u003eantsibull-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev3.4.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch2\u003eMinor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow information on removed or deprecated collections to be updated. This is needed to generate a consistent changelog (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/177\"\u003eansible-community/antsibull-core#177\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.13 (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/176\"\u003eansible-community/antsibull-core#176\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.3.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch2\u003eMinor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow information on removed collections from previous major releases in collection metadata schema (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/174\"\u003eansible-community/antsibull-core#174\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.2.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eFeature and bugfix release.\u003c/p\u003e\n\u003ch2\u003eMinor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pydantic helper for strict linting (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/169\"\u003eansible-community/antsibull-core#169\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow information on removed collections in collection metadata schema (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/173\"\u003eansible-community/antsibull-core#173\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCollection metadata removal schema valiation: remove bad check that deprecated redirect replacement major version must be in the future (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/172\"\u003eansible-community/antsibull-core#172\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.1.0\u003c/h1\u003e\n\u003cp\u003eRelease Summary\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/0c7b4b179156c88598ebf48aa4b650bfd1f0032b\"\u003e\u003ccode\u003e0c7b4b1\u003c/code\u003e\u003c/a\u003e Release 3.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/a0d135b4ac281faa1d0f588a4d0f62babde7560e\"\u003e\u003ccode\u003ea0d135b\u003c/code\u003e\u003c/a\u003e Prepare 3.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/6d814fb619bccf6437f816204fecd11069b4d8c1\"\u003e\u003ccode\u003e6d814fb\u003c/code\u003e\u003c/a\u003e Allow to update deprecations/removals (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/issues/177\"\u003e#177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/24131a38919c5d9e183e9b9a45fe481102808a29\"\u003e\u003ccode\u003e24131a3\u003c/code\u003e\u003c/a\u003e Restrict pyre version. (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/dcda2276bed0ebe1a8bef24adf91e34b6fa4dcdf\"\u003e\u003ccode\u003edcda227\u003c/code\u003e\u003c/a\u003e Add Python 3.13 to CI and supported Python versions. (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/issues/176\"\u003e#176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/f1d7f606a9b5c6941f944ce9f979a99ba59025be\"\u003e\u003ccode\u003ef1d7f60\u003c/code\u003e\u003c/a\u003e Bump wntrblm/nox from 2024.04.15 to 2024.10.09 (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/issues/175\"\u003e#175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/cda100c5f9c6fd21362a7e1fbe08d3d30e5eb078\"\u003e\u003ccode\u003ecda100c\u003c/code\u003e\u003c/a\u003e Post-release version bump.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/c7b34d2fe34e7eb1102e1ff2874bdce2affeae9e\"\u003e\u003ccode\u003ec7b34d2\u003c/code\u003e\u003c/a\u003e Release 3.3.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/28c89049a6173b74a10272a6acaae195a8c6cd19\"\u003e\u003ccode\u003e28c8904\u003c/code\u003e\u003c/a\u003e Prepare 3.3.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/4f65622163840cedb6eb4282b84230fc600f829d\"\u003e\u003ccode\u003e4f65622\u003c/code\u003e\u003c/a\u003e Allow removed collection information from previous major releases. (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/issues/174\"\u003e#174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible-community/antsibull-core/compare/3.0.2...3.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `antsibull-docs` from 2.13.1 to 2.21.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/antsibull-docs/releases\"\u003eantsibull-docs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.21.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an index for all deprecated collections (official docsite only) and plugins (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/413\"\u003eansible-community/antsibull-docs#413\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.20.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eBugfix and feature release.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003c!-- raw HTML omitted --\u003e--config\u003c!-- raw HTML omitted --\u003e parameter to the \u003c!-- raw HTML omitted --\u003eansible-output\u003c!-- raw HTML omitted --\u003e subcommand to allow specifying a config file when not in collection mode (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/410\"\u003eansible-community/antsibull-docs#410\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003c!-- raw HTML omitted --\u003eansible-output-meta\u003c!-- raw HTML omitted --\u003e directive that allows to apply meta actions, like resetting previous code blocks for variable references, or defining templates for \u003c!-- raw HTML omitted --\u003eansible-output-data\u003c!-- raw HTML omitted --\u003e (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/409\"\u003eansible-community/antsibull-docs#409\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow to specify YAML inventory for \u003c!-- raw HTML omitted --\u003eansible-output\u003c!-- raw HTML omitted --\u003e subcommand code blocks (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/411\"\u003eansible-community/antsibull-docs#411\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eLet \u003c!-- raw HTML omitted --\u003eansible-output\u003c!-- raw HTML omitted --\u003e subcommand run \u003c!-- raw HTML omitted --\u003eansible-playbook\u003c!-- raw HTML omitted --\u003e instances in parallel (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/407\"\u003eansible-community/antsibull-docs#407\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/408\"\u003eansible-community/antsibull-docs#408\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun the post-processors in the \u003c!-- raw HTML omitted --\u003eansible-output\u003c!-- raw HTML omitted --\u003e subcommand from the current working directory, and not from the temporary playbook directory. This allows post-processors to have relative paths from where \u003c!-- raw HTML omitted --\u003eantsibull-docs ansible-output\u003c!-- raw HTML omitted --\u003e is called (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/406\"\u003eansible-community/antsibull-docs#406\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.19.1\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eBugfix release for official docsite build.\u003c/p\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003c!-- raw HTML omitted --\u003eansible._protomatter\u003c!-- raw HTML omitted --\u003e from the collection list if no plugins are found for it and it has not been explicitly added to the collection list (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/405\"\u003eansible-community/antsibull-docs#405\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRemove old hint on configuration settings precedence. The new note makes this one superfluous (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/404\"\u003eansible-community/antsibull-docs#404\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.19.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eBugfix and feature release.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a new subcommand \u003c!-- raw HTML omitted --\u003eansible-output\u003c!-- raw HTML omitted --\u003e which allows to render Ansible output into RST code blocks (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/397\"\u003eansible-community/antsibull-docs#397\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/401\"\u003eansible-community/antsibull-docs#401\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/402\"\u003eansible-community/antsibull-docs#402\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAntsibull-docutils 1.3.0+ is now an explicit dependency (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/395\"\u003eansible-community/antsibull-docs#395\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFor plugin options that can be configured through other means (Ansible variables, INI entries, environment variables, keywords, CLI arguments), show a notice on precedence below the plugin's parameters if more than one such way is present for an option (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/400\"\u003eansible-community/antsibull-docs#400\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/403\"\u003eansible-community/antsibull-docs#403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eWhen linting extra docs, verify that files referenced in toctrees exist (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/issues/398\"\u003eansible-community/antsibull-docs#398\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/395\"\u003eansible-community/antsibull-docs#395\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug that hid keyword config for plugin options for options that are only configurable this way (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/403\"\u003eansible-community/antsibull-docs#403\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/antsibull-docs/blob/main/CHANGELOG.rst\"\u003eantsibull-docs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev2.21.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch2\u003eMinor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an index for all deprecated collections (official docsite only) and plugins (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/413\"\u003eansible-community/antsibull-docs#413\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev2.20.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eBugfix and feature release.\u003c/p\u003e\n\u003ch2\u003eMinor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--config\u003c/code\u003e parameter to the \u003ccode\u003eansible-output\u003c/code\u003e subcomma...\n\n_Description has been truncated_","html_url":"https://github.com/ansible/event-driven-ansible/pull/475","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansible%2Fevent-driven-ansible/issues/475","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/475/packages"},{"uuid":"3386569021","node_id":"PR_kwDOKXLyYM6m_ytg","number":78,"state":"open","title":"Bump the python-deps group across 1 directory with 26 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-05T07:28:30.000Z","updated_at":"2025-09-16T09:11:29.702Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-deps","update_count":26,"packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"attrs","old_version":"23.1.0","new_version":"25.3.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.2.1","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.6.1","new_version":"2.7.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"flask-cors","old_version":"6.0.0","new_version":"6.0.1","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"importlib-metadata","old_version":"6.8.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"nest-asyncio","old_version":"1.5.8","new_version":"1.6.0","repository_url":"https://github.com/erdewit/nest_asyncio"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.14.1","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"python-engineio","old_version":"4.9.0","new_version":"4.12.2","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-socketio","old_version":"5.11.2","new_version":"5.13.0","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"simple-websocket","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/miguelgrinberg/simple-websocket"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"werkzeug","old_version":"3.0.6","new_version":"3.1.3","repository_url":"https://github.com/pallets/werkzeug"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.181.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"selenium","old_version":"4.32.0","new_version":"4.35.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"cryptography","old_version":"45.0.6","new_version":"45.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"notion-client","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-genai","old_version":"1.30.0","new_version":"1.33.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"anthropic","old_version":"0.64.0","new_version":"0.66.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"1.102.0","new_version":"1.106.1","repository_url":"https://github.com/openai/openai-python"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 26 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `23.1.0` | `25.3.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.2.1` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.6.1` | `2.7.0` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.0` | `6.0.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.8.0` | `8.7.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [nest-asyncio](https://github.com/erdewit/nest_asyncio) | `1.5.8` | `1.6.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.14.1` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.9.0` | `4.12.2` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.11.2` | `5.13.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [simple-websocket](https://github.com/miguelgrinberg/simple-websocket) | `1.0.0` | `1.1.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.0.6` | `3.1.3` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.181.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.32.0` | `4.35.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.6` | `45.0.7` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `2.4.0` | `2.5.0` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.30.0` | `1.33.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.64.0` | `0.66.0` |\n| [openai](https://github.com/openai/openai-python) | `1.102.0` | `1.106.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-timeout` from 4.0.3 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/releases\"\u003easync-timeout's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst\"\u003easync-timeout's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.1 (2024-11-06)\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.0.0 (2024-10-31)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/cc52d410e733b302873e6e52db9a9b6578d053a4\"\u003e\u003ccode\u003ecc52d41\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/1af7d7165d598af03e51952a679c690690dc7f8e\"\u003e\u003ccode\u003e1af7d71\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3bf26d96e3d1830a0e72ddab9c6a2c87e1f4380a\"\u003e\u003ccode\u003e3bf26d9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/423\"\u003e#423\u003c/a\u003e: add requirements.txt to sdist package (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/380e8ba5bf77e3cd184df8a5f51dc929d93d8553\"\u003e\u003ccode\u003e380e8ba\u003c/code\u003e\u003c/a\u003e Mention condition import of asyncio.timeout / async_timeout.timeout in README...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/8a232d0f7fc1af88c8d921500d78bbefc2bc545c\"\u003e\u003ccode\u003e8a232d0\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3d3e3e45420ac6ea0ef77c9e32388e252e12ac4d\"\u003e\u003ccode\u003e3d3e3e4\u003c/code\u003e\u003c/a\u003e Bump to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/d5c21f3dee7eeb06823af77284ad2a899611b28e\"\u003e\u003ccode\u003ed5c21f3\u003c/code\u003e\u003c/a\u003e Mimic asyncio.Timeout behavior (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/a1111c2597b9ce8d34b823c1b993689339ea9fd6\"\u003e\u003ccode\u003ea1111c2\u003c/code\u003e\u003c/a\u003e Drop deprecated sync context manager support (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/00fd343ce6ba2ccc291c0f6e09fea8998cbfe3a1\"\u003e\u003ccode\u003e00fd343\u003c/code\u003e\u003c/a\u003e Imports cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/7b61b33ae0ecee0e0bb0e09f2e5787c647d4ffb8\"\u003e\u003ccode\u003e7b61b33\u003c/code\u003e\u003c/a\u003e Update CI config file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-timeout/compare/v4.0.3...v5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 23.1.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003cp\u003eIt leverages charset-normalizer in a better way! Check it out, you will gain up to being 3X faster and get a real/respectable support with it.\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebuild-requirements.txt\u003c/code\u003e as per using \u003ccode\u003epyproject.toml\u003c/code\u003e native build configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/integration.py\u003c/code\u003e and \u003ccode\u003ebin/serve.py\u003c/code\u003e in favor of downstream integration test (see noxfile).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e in favor of \u003ccode\u003epyproject.toml\u003c/code\u003e metadata configuration.\u003c/li\u003e\n\u003cli\u003eUnused \u003ccode\u003eutils.range_scan\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConverting content to Unicode bytes may insert \u003ccode\u003eutf_8\u003c/code\u003e instead of preferred \u003ccode\u003eutf-8\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning \u0026quot;'count' is passed as positional argument\u0026quot; when converting to Unicode bytes on Python 3.13+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0\"\u003e3.4.0\u003c/a\u003e (2024-10-08)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.1/\"\u003ehttps://pypi.org/project/click/8.2.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/24?closed=1\"\u003ehttps://github.com/pallets/click/milestone/24?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2894\"\u003e#2894\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2897\"\u003e#2897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2906\"\u003e#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2682\"\u003e#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2787\"\u003e#2787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.0/\"\u003ehttps://pypi.org/project/click/8.2.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/en/stable/changes/\"\u003ehttps://click.palletsprojects.com/en/stable/changes/\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/15\"\u003ehttps://github.com/pallets/click/milestone/15\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8,and 3.9. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2588\"\u003e#2588\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pallets/click/issues/2893\"\u003e#2893\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2438\"\u003e#2438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2543\"\u003e#2543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2598\"\u003e#2598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2589\"\u003e#2589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2590\"\u003e#2590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe current parser and related classes and methods, are deprecated.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2205\"\u003e#2205\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of \u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any remaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is unneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable deferred evaluation of annotations with \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2270\"\u003e#2270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen generating a command's name from a decorated function's name, the suffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2322\"\u003e#2322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within \u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2356\"\u003e#2356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is \u003ccode\u003eFalse\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2509\"\u003e#2509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra items used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2516\"\u003e#2516\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2517\"\u003e#2517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep stdout and stderr streams independent in \u003ccode\u003eCliRunner\u003c/code\u003e. Always collect stderr output and never raise an exception. Add a new output stream to simulate what the user sees in its terminal. Removes the \u003ccode\u003emix_stderr\u003c/code\u003e parameter in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2522\"\u003e#2522\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2523\"\u003e#2523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eOption.show_envvar\u003c/code\u003e now also shows environment variable in error messages. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2695\"\u003e#2695\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2696\"\u003e#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.close\u003c/code\u003e will be called on exit. This results in all \u003ccode\u003eContext.call_on_close\u003c/code\u003e callbacks and context managers added via \u003ccode\u003eContext.with_resource\u003c/code\u003e to be closed on exit as well. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2680\"\u003e#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eProgressBar(hidden: bool)\u003c/code\u003e to allow hiding the progressbar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2609\"\u003e#2609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eUserWarning\u003c/code\u003e will be shown when multiple parameters attempt to use the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eOption.envvar\u003c/code\u003e with \u003ccode\u003eOption.flag_value\u003c/code\u003e, the \u003ccode\u003eflag_value\u003c/code\u003e will always be used instead of the value of the environment variable. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2746\"\u003e#2746\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2788\"\u003e#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eChoice.get_invalid_choice_message\u003c/code\u003e method for customizing the invalid choice message. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2621\"\u003e#2621\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2622\"\u003e#2622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf help is shown because \u003ccode\u003eno_args_is_help\u003c/code\u003e is enabled (defaults to \u003ccode\u003eTrue\u003c/code\u003e for groups, \u003ccode\u003eFalse\u003c/code\u003e for commands), the exit code is 2 instead of 0. \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContexts created during shell completion are closed properly, fixing a \u003ccode\u003eResourceWarning\u003c/code\u003e when using \u003ccode\u003eclick.File\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2644\"\u003e#2644\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2800\"\u003e#2800\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2767\"\u003e#2767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eclick.edit(filename)\u003c/code\u003e now supports passing an iterable of filenames in case the editor supports editing multiple files at once. Its return type is now also typed: \u003ccode\u003eAnyStr\u003c/code\u003e if \u003ccode\u003etext\u003c/code\u003e is passed, otherwise \u003ccode\u003eNone\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2067\"\u003e#2067\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2068\"\u003e#2068\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. :issue:\u003ccode\u003e2894\u003c/code\u003e\n:issue:\u003ccode\u003e2897\u003c/code\u003e :pr:\u003ccode\u003e2930\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. :issue:\u003ccode\u003e2906\u003c/code\u003e :pr:\u003ccode\u003e2907\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. :issue:\u003ccode\u003e2682\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in CliRunner. :issue:\u003ccode\u003e2787\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.7, 3.8, and 3.9. :pr:\u003ccode\u003e2588\u003c/code\u003e :pr:\u003ccode\u003e2893\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e2438\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. :pr:\u003ccode\u003e2543\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e2598\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all\ncommands. :issue:\u003ccode\u003e2589\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group\ncommands. :issue:\u003ccode\u003e2590\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe current parser and related classes and methods, are deprecated.\n:issue:\u003ccode\u003e2205\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of\n\u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any\nremaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is\nunneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable deferred evaluation of annotations with\n\u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. :pr:\u003ccode\u003e2270\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen generating a command's name from a decorated function's name, the\nsuffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed.\n:issue:\u003ccode\u003e2322\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within\n\u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified.\n:issue:\u003ccode\u003e2356\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is\n\u003ccode\u003eFalse\u003c/code\u003e. :pr:\u003ccode\u003e2509\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra\nitems used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. :issue:\u003ccode\u003e2516\u003c/code\u003e\n:pr:\u003ccode\u003e2517\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/fd183b2ced1cb5857784fe7fb22f4982f671f098\"\u003e\u003ccode\u003efd183b2\u003c/code\u003e\u003c/a\u003e release version 8.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/262bdf02288daf9a37b9e815b44acafd62b5c6fe\"\u003e\u003ccode\u003e262bdf0\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/80efdf6c10c51884416d11b3b575f61157af77fa\"\u003e\u003ccode\u003e80efdf6\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/cfa6f4ad3e0078db43f866246b483544afa33ed3\"\u003e\u003ccode\u003ecfa6f4a\u003c/code\u003e\u003c/a\u003e Flush sys.stderr when CliRunner finalizes (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f3a4363d1e8383df496adb31f2a6ed037f85380c\"\u003e\u003ccode\u003ef3a4363\u003c/code\u003e\u003c/a\u003e flush sys.stderr when CliRunner.invoke finalizes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b7cf06970e40a3144eb963ff34ed7c38934afb40\"\u003e\u003ccode\u003eb7cf069\u003c/code\u003e\u003c/a\u003e fix shell completion for nested groups (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c575d6b466a1e594d5d6df8f0a1c11d7359a821\"\u003e\u003ccode\u003e7c575d6\u003c/code\u003e\u003c/a\u003e parametrize test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ac6a2acfdb4550c35ce69ce54db502ba96c96324\"\u003e\u003ccode\u003eac6a2ac\u003c/code\u003e\u003c/a\u003e Fix shell completion for nested groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/884af5c20fdc95c9c7352df35c37273391464fb9\"\u003e\u003ccode\u003e884af5c\u003c/code\u003e\u003c/a\u003e Fix flag value set when is_flag=True and type is provided (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2930\"\u003e#2930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4fd2fea0db423d242aedcae0a5f664efe0a93484\"\u003e\u003ccode\u003e4fd2fea\u003c/code\u003e\u003c/a\u003e Fix condition for setting flag value when type is provided\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.6.1 to 2.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.9.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release.  Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns.query.https() and dns.asyncquery.https() now support HTTP/3 and the http_version\nparameter may be used to specify which version to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the cryptography module is installed, then dnspython will now create deterministic\nECDSA signatures by default.  Cryptography, if installed, must be at least version 43.\nThanks to Jakob Schlyter for adding the feature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe RESINFO and WALLET RdataTypes are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe COOKIE and Report-Channel EDNS0 options are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAll supported RdataTypes can now be imported at a single time rather than lazily on\nfirst use by calling dns.rdata.load_all_types().\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe SVCB and HTTPS records now support the ohttp parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003exfr() and inbound_xfr() now share a common implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTokens are now supported for QUIC and HTTP/3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.from_wire() now saves the input wire format in the Message's \u0026quot;wire\u0026quot;\nattribute.  Likewise, dns.message.Message.to_wire() now records the generated\nwire format in that attribute.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe dns.message.Message object now has a get_options() helper to retrieve EDNS0\noptions of a specified type, and an extended_errors() helper to retrieve the list\nof EDE options in a message (if any).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.make_response() now has a copy mode which controls how sections are\ncopied.  By default, a copy mode appropriate for the opcode is used.  This is\ncurrently dns.message.CopyMode.QUESTION for all opcodes.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf an IP address is used as the hostname in a URL, the https query code now passes\nthe sni_hostname to httpx as this is required to get httpx to validate the certificate\nand check for an IP subject alternative name.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported aioquic version is now 1.0.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.9.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/889385e71021f53e1dc4f117d92aed66bb90d087\"\u003e\u003ccode\u003e889385e\u003c/code\u003e\u003c/a\u003e 2.7.0 release prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/bb4bc91f3143a89f8e12941bd8404908f9eb5a09\"\u003e\u003ccode\u003ebb4bc91\u003c/code\u003e\u003c/a\u003e fix(answer): add typing to range (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/4eaf0e25b511bd48586022baa805329bdf304653\"\u003e\u003ccode\u003e4eaf0e2\u003c/code\u003e\u003c/a\u003e Use the port from the URL if provided for H3 \u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1139\"\u003e#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a287921934b1b0fa521ae181da0b017180ee2907\"\u003e\u003ccode\u003ea287921\u003c/code\u003e\u003c/a\u003e fix doco typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/142f7ba586922ae5e036ed54793145b8fc4b4882\"\u003e\u003ccode\u003e142f7ba\u003c/code\u003e\u003c/a\u003e fix typo (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8ce60d2e9758c040fbe981cfdc14e42d7073f2b0\"\u003e\u003ccode\u003e8ce60d2\u003c/code\u003e\u003c/a\u003e CI 2.7 testing and also remove python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/4e15806137974775c8bb5a47b828b42f15656382\"\u003e\u003ccode\u003e4e15806\u003c/code\u003e\u003c/a\u003e 2.7.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/2d6e17c0393343c0e022fa9ab1a00c2d5c6a3736\"\u003e\u003ccode\u003e2d6e17c\u003c/code\u003e\u003c/a\u003e fix typing after reorganization\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/ab59c9a339237b99869fd3a4b0492ddf1a8146ce\"\u003e\u003ccode\u003eab59c9a\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/2b763dc130b400cfa7b01c74cfd72e3c5a1554d4\"\u003e\u003ccode\u003e2b763dc\u003c/code\u003e\u003c/a\u003e linting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.6.1...v2.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-cors` from 6.0.0 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/corydolphin/flask-cors/releases\"\u003eflask-cors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInvert regex sorting to make it correctly match the intent (sorting by specificity descending) \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1.dev\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/a5003f391e56f74f11a3e509cd180787c75eb6b0\"\u003e\u003ccode\u003ea5003f3\u003c/code\u003e\u003c/a\u003e Fix README file extension in pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/4ad56d6c20252d36031c74ba8386a81e94286f40\"\u003e\u003ccode\u003e4ad56d6\u003c/code\u003e\u003c/a\u003e Fix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 6.8.0 to 8.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev8.7.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.metadata()\u003c/code\u003e (and \u003ccode\u003eDistribution.metadata\u003c/code\u003e) can now return \u003ccode\u003eNone\u003c/code\u003e if the metadata directory exists but not metadata file is present. (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise consistent ValueError for invalid EntryPoint.value (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed indentation logic to also honor blank lines.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#119650\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeferred import of zipfile.Path (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeferred import of json (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRely on zipp overlay for zipfile.Path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.4.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/708dff4f1ab89bdd126e3e8c56098d04282c5809\"\u003e\u003ccode\u003e708dff4\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b3065f03cc3395f46ed575e612e213f92a064879\"\u003e\u003ccode\u003eb3065f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/519\"\u003e#519\u003c/a\u003e from python/bugfix/493-metadata-missing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/e4351c226765f53a40316fa6aab50488aee8a90f\"\u003e\u003ccode\u003ee4351c2\u003c/code\u003e\u003c/a\u003e Add a new test capturing the new expectation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/5a657051f7386de6f0560c200d78e941be2c8058\"\u003e\u003ccode\u003e5a65705\u003c/code\u003e\u003c/a\u003e Refactor the casting into a wrapper for brevity and to document its purpose.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0830c39b8a23e48024365120c0e97a6f7c36c5ec\"\u003e\u003ccode\u003e0830c39\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/22bb567692d8e7bd216f864a9d8dee1272ee8674\"\u003e\u003ccode\u003e22bb567\u003c/code\u003e\u003c/a\u003e Fix type errors where metadata could be None.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/57f31d77e18fef11dfadfd44775f253971c36920\"\u003e\u003ccode\u003e57f31d7\u003c/code\u003e\u003c/a\u003e Allow metadata to return None when there is no metadata present.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b9c4be4253250ad604610db66204e5fa70fa2455\"\u003e\u003ccode\u003eb9c4be4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e from python/bugfix/488-bad-ep-value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9f8af013635833cf3ac348413c9ac63b37caa3dd\"\u003e\u003ccode\u003e9f8af01\u003c/code\u003e\u003c/a\u003e Prefer a cached property, as the property is likely to be retrieved at least ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/f179e28888b2c6caf12baaf5449ff1cd82513dfe\"\u003e\u003ccode\u003ef179e28\u003c/code\u003e\u003c/a\u003e Also raise ValueError on construction if the value is invalid.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v6.8.0...v8.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `itsdangerous` from 2.1.2 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/releases\"\u003eitsdangerous's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003cp\u003eThis is a feature release, which includes new features, removes previously deprecated code, and adds new deprecations. The 2.2.x branch is now the supported fix branch, the 2.1.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003eChanges: \u003ca href=\"https://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\"\u003ehttps://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/itsdangerous/milestone/8?closed=1\"\u003ehttps://github.com/pallets/itsdangerous/milestone/8?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking. By default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a different \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return type of its \u003ccode\u003edumps\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/blob/main/CHANGES.rst\"\u003eitsdangerous's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-16\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7. :pr:\u003ccode\u003e372\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e326\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e371\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking.\nBy default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a\ndifferent \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return\ntype of its \u003ccode\u003edumps\u003c/code\u003e method. :issue:\u003ccode\u003e347\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e375\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/096c8d42545d3b68ea21a4f890fb2b2d8979c0bd\"\u003e\u003ccode\u003e096c8d4\u003c/code\u003e\u003c/a\u003e release version 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/7f4dcf83a07bb3d53f4e0e65ef1b43327b4cca90\"\u003e\u003ccode\u003e7f4dcf8\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/93ae366874bbd4f69d90495c45b2cd336387496c\"\u003e\u003ccode\u003e93ae366\u003c/code\u003e\u003c/a\u003e change entry for generic serializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/135eb234ed4a07520779ffb679407b7d27c8ffe6\"\u003e\u003ccode\u003e135eb23\u003c/code\u003e\u003c/a\u003e Generic serializer (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/999ce7af1f0502a224d33338e6ded8bc1e81cb2f\"\u003e\u003ccode\u003e999ce7a\u003c/code\u003e\u003c/a\u003e Improve generic typing further\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/52890d78bb6d92eac4d8d84f33f61be8bd803da7\"\u003e\u003ccode\u003e52890d7\u003c/code\u003e\u003c/a\u003e improve generic typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/385c0eb7501b121b1fddafe19c547073f5a458a0\"\u003e\u003ccode\u003e385c0eb\u003c/code\u003e\u003c/a\u003e type \u003ccode\u003eSerializer\u003c/code\u003e as generic (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/01001c63af4a1c58b65328b2aad3df75a6edc843\"\u003e\u003ccode\u003e01001c6\u003c/code\u003e\u003c/a\u003e type Serializer as generic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/bc88e945d31c407e16c3f4e1c713c12dd598e58d\"\u003e\u003ccode\u003ebc88e94\u003c/code\u003e\u003c/a\u003e improve typing (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/69a3bca7582859bc8ce83ccc28b0cf33f7909388\"\u003e\u003ccode\u003e69a3bca\u003c/code\u003e\u003c/a\u003e improve typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/itsdangerous/compare/2.1.2...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nest-asyncio` from 1.5.8 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/erdewit/nest_asyncio/releases\"\u003enest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev1.6.0\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/19f396f9396bfd34b1b0caeb9b4c631ee3d7eb21\"\u003e\u003ccode\u003e19f396f\u003c/code\u003e\u003c/a\u003e Remove redundant blank line.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c31e7c44f063819ea2d0738e3c72c25458d3fd1b\"\u003e\u003ccode\u003ec31e7c4\u003c/code\u003e\u003c/a\u003e Pre-empt current task before running handle, allowing unpatched tasks, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/80\"\u003e#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/35618de086e8844d24039d2fcd090b8f1647c743\"\u003e\u003ccode\u003e35618de\u003c/code\u003e\u003c/a\u003e v1.5.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c4b8289fe4f4a3192fd1d501e74df08fd93ed348\"\u003e\u003ccode\u003ec4b8289\u003c/code\u003e\u003c/a\u003e Fix patching an already running Proactor loop, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/87\"\u003e#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/d5a13b0d5f156ac9076fbc244f49fb9d48af9bbc\"\u003e\u003ccode\u003ed5a13b0\u003c/code\u003e\u003c/a\u003e Update link to build icon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/a48a68a47e182bd7e1f86c60dfc07d7b8509508b\"\u003e\u003ccode\u003ea48a68a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/84\"\u003e#84\u003c/a\u003e from 5j9/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c20e77426bfb9be50d514a850bc4cabbbc69f114\"\u003e\u003ccode\u003ec20e774\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/f7ce59048cdaace5a1a82c78ef476c3bbb3b664a\"\u003e\u003ccode\u003ef7ce590\u003c/code\u003e\u003c/a\u003e v1.5.8\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/erdewit/nest_asyncio/compare/v1.5.8...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.8.0 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent partial matching of \u003ccode\u003eiss\u003c/code\u003e claim. Thanks \u003ca href=\"https://github.com/fabianbadoi\"\u003e\u003ccode\u003e@​fabianbadoi\u003c/code\u003e\u003c/a\u003e! (See: \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\"\u003ehttps://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: use sequence for typing rather than list by \u003ca href=\"https://github.com/imnotjames\"\u003e\u003ccode\u003e@​imnotjames\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/970\"\u003ejpadilla/pyjwt#970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/972\"\u003ejpadilla/pyjwt#972\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/971\"\u003ejpadilla/pyjwt#971\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an RTD config file to resolve RTD build failures by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/977\"\u003ejpadilla/pyjwt#977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update \u003ccode\u003eiat\u003c/code\u003e exception docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/974\"\u003ejpadilla/pyjwt#974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove algorithm requirement for JWT API by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/975\"\u003ejpadilla/pyjwt#975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/978\"\u003ejpadilla/pyjwt#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate SECURITY.md by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/973\"\u003ejpadilla/pyjwt#973\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs fix: decode_complete scope and algorithms by \u003ca href=\"https://github.com/RbnRncn\"\u003e\u003ccode\u003e@​RbnRncn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/982\"\u003ejpadilla/pyjwt#982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix doctest for docs/usage.rst by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/986\"\u003ejpadilla/pyjwt#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix test_utils.py not to xfail by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/987\"\u003ejpadilla/pyjwt#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect jwt.decode audience param doc expression by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/994\"\u003ejpadilla/pyjwt#994\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PS256 encoding and decoding usage by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/992\"\u003ejpadilla/pyjwt#992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd API docs for PyJWK by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/980\"\u003ejpadilla/pyjwt#980\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor project configuration files from setup.cfg to pyproject.toml PEP-518 by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/995\"\u003ejpadilla/pyjwt#995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd JWK support to JWT encode by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/979\"\u003ejpadilla/pyjwt#979\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit hooks to lint pyproject.toml by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1002\"\u003ejpadilla/pyjwt#1002\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd EdDSA algorithm encoding/decoding usage by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/993\"\u003ejpadilla/pyjwt#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRuff linter and formatter changes by \u003ca href=\"https://github.com/gagandeepp\"\u003e\u003ccode\u003e@​gagandeepp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1001\"\u003ejpadilla/pyjwt#1001\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate \u003ccode\u003esub\u003c/code\u003e and \u003ccode\u003ejti\u003c/code\u003e claims for the token by \u003ca href=\"https://github.com/Divan009\"\u003e\u003ccode\u003e@​Divan009\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1005\"\u003ejpadilla/pyjwt#1005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ES256 usage  by \u003ca href=\"https://github.com/Gautam-Hegde\"\u003e\u003ccode\u003e@​Gautam-Hegde\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1003\"\u003ejpadilla/pyjwt#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEncode EC keys with a fixed bit length by \u003ca href=\"https://github.com/way-dave\"\u003e\u003ccode\u003e@​way-dave\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/990\"\u003ejpadilla/pyjwt#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1000\"\u003ejpadilla/pyjwt#1000\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8 by \u003ca href=\"https://github.com/kkirsche\"\u003e\u003ccode\u003e@​kkirsche\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1007\"\u003ejpadilla/pyjwt#1007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare 2.10.0 release by \u003ca href=\"https://github.com/benvdh\"\u003e\u003ccode\u003e@​benvdh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1011\"\u003ejpadilla/pyjwt#1011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump codecov/codecov-action from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1014\"\u003ejpadilla/pyjwt#1014\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1006\"\u003ejpadilla/pyjwt#1006\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imnotjames\"\u003e\u003ccode\u003e@​imnotjames\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/970\"\u003ejpadilla/pyjwt#970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/977\"\u003ejpadilla/pyjwt#977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/974\"\u003ejpadilla/pyjwt#974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RbnRncn\"\u003e\u003ccode\u003e@​RbnRncn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/982\"\u003ejpadilla/pyjwt#982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/994\"\u003ejpadilla/pyjwt#994\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/995\"\u003ejpadilla/pyjwt#995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gagandeepp\"\u003e\u003ccode\u003e@​gagandeepp\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1001\"\u003ejpadilla/pyjwt#1001\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Divan009\"\u003e\u003ccode\u003e@​Divan009\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1005\"\u003ejpadilla/pyjwt#1005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Gautam-Hegde\"\u003e\u003ccode\u003e@​Gautam-Hegde\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1003\"\u003ejpadilla/pyjwt#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/way-dave\"\u003e\u003ccode\u003e@​way-dave\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/990\"\u003ejpadilla/pyjwt#990\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.9.0...2.10.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.9.0...2.10.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.10.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.10.0.....\n\n_Description has been truncated_","html_url":"https://github.com/asusoda/platform/pull/78","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asusoda%2Fplatform/issues/78","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/78/packages"},{"uuid":"2799610803","node_id":"PR_kwDOOwBP6c6m3quz","number":16,"state":"closed","title":"deps(deps): bump aiosignal from 1.3.1 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["Wk4021"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-04T14:06:57.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-04T14:04:30.000Z","updated_at":"2025-09-04T14:06:58.000Z","time_to_close":147,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps)","packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"}],"path":null,"ecosystem":"pip"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal\u0026package-manager=pip\u0026previous-version=1.3.1\u0026new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Wk4021/Discord-Reputation-Bot/pull/16","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wk4021%2FDiscord-Reputation-Bot/issues/16","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/16/packages"},{"uuid":"2797549848","node_id":"PR_kwDOKXLyYM6mvzkY","number":76,"state":"closed","title":"Bump the python-deps group across 1 directory with 25 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-09-05T07:27:35.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-03T23:46:33.000Z","updated_at":"2025-09-05T07:27:35.000Z","time_to_close":114062,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-deps","update_count":25,"packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"attrs","old_version":"23.1.0","new_version":"25.3.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.2.1","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.6.1","new_version":"2.7.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"flask-cors","old_version":"6.0.0","new_version":"6.0.1","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"importlib-metadata","old_version":"6.8.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"nest-asyncio","old_version":"1.5.8","new_version":"1.6.0","repository_url":"https://github.com/erdewit/nest_asyncio"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.14.1","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"python-engineio","old_version":"4.9.0","new_version":"4.12.2","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-socketio","old_version":"5.11.2","new_version":"5.13.0","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"simple-websocket","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/miguelgrinberg/simple-websocket"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"werkzeug","old_version":"3.0.6","new_version":"3.1.3","repository_url":"https://github.com/pallets/werkzeug"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.181.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"selenium","old_version":"4.32.0","new_version":"4.35.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"cryptography","old_version":"45.0.6","new_version":"45.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"notion-client","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-genai","old_version":"1.30.0","new_version":"1.32.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"anthropic","old_version":"0.64.0","new_version":"0.65.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"1.102.0","new_version":"1.104.2","repository_url":"https://github.com/openai/openai-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 25 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `23.1.0` | `25.3.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.2.1` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.6.1` | `2.7.0` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.0` | `6.0.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.8.0` | `8.7.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [nest-asyncio](https://github.com/erdewit/nest_asyncio) | `1.5.8` | `1.6.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.14.1` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.9.0` | `4.12.2` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.11.2` | `5.13.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [simple-websocket](https://github.com/miguelgrinberg/simple-websocket) | `1.0.0` | `1.1.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.0.6` | `3.1.3` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.181.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.32.0` | `4.35.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.6` | `45.0.7` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `2.4.0` | `2.5.0` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.30.0` | `1.32.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.64.0` | `0.65.0` |\n| [openai](https://github.com/openai/openai-python) | `1.102.0` | `1.104.2` |\n\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-timeout` from 4.0.3 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/releases\"\u003easync-timeout's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst\"\u003easync-timeout's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.1 (2024-11-06)\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.0.0 (2024-10-31)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/cc52d410e733b302873e6e52db9a9b6578d053a4\"\u003e\u003ccode\u003ecc52d41\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/1af7d7165d598af03e51952a679c690690dc7f8e\"\u003e\u003ccode\u003e1af7d71\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3bf26d96e3d1830a0e72ddab9c6a2c87e1f4380a\"\u003e\u003ccode\u003e3bf26d9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/423\"\u003e#423\u003c/a\u003e: add requirements.txt to sdist package (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/380e8ba5bf77e3cd184df8a5f51dc929d93d8553\"\u003e\u003ccode\u003e380e8ba\u003c/code\u003e\u003c/a\u003e Mention condition import of asyncio.timeout / async_timeout.timeout in README...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/8a232d0f7fc1af88c8d921500d78bbefc2bc545c\"\u003e\u003ccode\u003e8a232d0\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3d3e3e45420ac6ea0ef77c9e32388e252e12ac4d\"\u003e\u003ccode\u003e3d3e3e4\u003c/code\u003e\u003c/a\u003e Bump to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/d5c21f3dee7eeb06823af77284ad2a899611b28e\"\u003e\u003ccode\u003ed5c21f3\u003c/code\u003e\u003c/a\u003e Mimic asyncio.Timeout behavior (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/a1111c2597b9ce8d34b823c1b993689339ea9fd6\"\u003e\u003ccode\u003ea1111c2\u003c/code\u003e\u003c/a\u003e Drop deprecated sync context manager support (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/00fd343ce6ba2ccc291c0f6e09fea8998cbfe3a1\"\u003e\u003ccode\u003e00fd343\u003c/code\u003e\u003c/a\u003e Imports cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/7b61b33ae0ecee0e0bb0e09f2e5787c647d4ffb8\"\u003e\u003ccode\u003e7b61b33\u003c/code\u003e\u003c/a\u003e Update CI config file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-timeout/compare/v4.0.3...v5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 23.1.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003cp\u003eIt leverages charset-normalizer in a better way! Check it out, you will gain up to being 3X faster and get a real/respectable support with it.\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebuild-requirements.txt\u003c/code\u003e as per using \u003ccode\u003epyproject.toml\u003c/code\u003e native build configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/integration.py\u003c/code\u003e and \u003ccode\u003ebin/serve.py\u003c/code\u003e in favor of downstream integration test (see noxfile).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e in favor of \u003ccode\u003epyproject.toml\u003c/code\u003e metadata configuration.\u003c/li\u003e\n\u003cli\u003eUnused \u003ccode\u003eutils.range_scan\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConverting content to Unicode bytes may insert \u003ccode\u003eutf_8\u003c/code\u003e instead of preferred \u003ccode\u003eutf-8\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning \u0026quot;'count' is passed as positional argument\u0026quot; when converting to Unicode bytes on Python 3.13+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0\"\u003e3.4.0\u003c/a\u003e (2024-10-08)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.1/\"\u003ehttps://pypi.org/project/click/8.2.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/24?closed=1\"\u003ehttps://github.com/pallets/click/milestone/24?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2894\"\u003e#2894\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2897\"\u003e#2897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2906\"\u003e#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2682\"\u003e#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2787\"\u003e#2787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.0/\"\u003ehttps://pypi.org/project/click/8.2.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/en/stable/changes/\"\u003ehttps://click.palletsprojects.com/en/stable/changes/\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/15\"\u003ehttps://github.com/pallets/click/milestone/15\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8,and 3.9. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2588\"\u003e#2588\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pallets/click/issues/2893\"\u003e#2893\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2438\"\u003e#2438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2543\"\u003e#2543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2598\"\u003e#2598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2589\"\u003e#2589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2590\"\u003e#2590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe current parser and related classes and methods, are deprecated.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2205\"\u003e#2205\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of \u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any remaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is unneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable deferred evaluation of annotations with \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2270\"\u003e#2270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen generating a command's name from a decorated function's name, the suffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2322\"\u003e#2322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within \u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2356\"\u003e#2356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is \u003ccode\u003eFalse\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2509\"\u003e#2509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra items used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2516\"\u003e#2516\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2517\"\u003e#2517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep stdout and stderr streams independent in \u003ccode\u003eCliRunner\u003c/code\u003e. Always collect stderr output and never raise an exception. Add a new output stream to simulate what the user sees in its terminal. Removes the \u003ccode\u003emix_stderr\u003c/code\u003e parameter in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2522\"\u003e#2522\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2523\"\u003e#2523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eOption.show_envvar\u003c/code\u003e now also shows environment variable in error messages. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2695\"\u003e#2695\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2696\"\u003e#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.close\u003c/code\u003e will be called on exit. This results in all \u003ccode\u003eContext.call_on_close\u003c/code\u003e callbacks and context managers added via \u003ccode\u003eContext.with_resource\u003c/code\u003e to be closed on exit as well. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2680\"\u003e#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eProgressBar(hidden: bool)\u003c/code\u003e to allow hiding the progressbar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2609\"\u003e#2609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eUserWarning\u003c/code\u003e will be shown when multiple parameters attempt to use the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eOption.envvar\u003c/code\u003e with \u003ccode\u003eOption.flag_value\u003c/code\u003e, the \u003ccode\u003eflag_value\u003c/code\u003e will always be used instead of the value of the environment variable. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2746\"\u003e#2746\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2788\"\u003e#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eChoice.get_invalid_choice_message\u003c/code\u003e method for customizing the invalid choice message. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2621\"\u003e#2621\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2622\"\u003e#2622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf help is shown because \u003ccode\u003eno_args_is_help\u003c/code\u003e is enabled (defaults to \u003ccode\u003eTrue\u003c/code\u003e for groups, \u003ccode\u003eFalse\u003c/code\u003e for commands), the exit code is 2 instead of 0. \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContexts created during shell completion are closed properly, fixing a \u003ccode\u003eResourceWarning\u003c/code\u003e when using \u003ccode\u003eclick.File\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2644\"\u003e#2644\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2800\"\u003e#2800\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2767\"\u003e#2767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eclick.edit(filename)\u003c/code\u003e now supports passing an iterable of filenames in case the editor supports editing multiple files at once. Its return type is now also typed: \u003ccode\u003eAnyStr\u003c/code\u003e if \u003ccode\u003etext\u003c/code\u003e is passed, otherwise \u003ccode\u003eNone\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2067\"\u003e#2067\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2068\"\u003e#2068\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. :issue:\u003ccode\u003e2894\u003c/code\u003e\n:issue:\u003ccode\u003e2897\u003c/code\u003e :pr:\u003ccode\u003e2930\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. :issue:\u003ccode\u003e2906\u003c/code\u003e :pr:\u003ccode\u003e2907\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. :issue:\u003ccode\u003e2682\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in CliRunner. :issue:\u003ccode\u003e2787\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.7, 3.8, and 3.9. :pr:\u003ccode\u003e2588\u003c/code\u003e :pr:\u003ccode\u003e2893\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e2438\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. :pr:\u003ccode\u003e2543\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e2598\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all\ncommands. :issue:\u003ccode\u003e2589\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group\ncommands. :issue:\u003ccode\u003e2590\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe current parser and related classes and methods, are deprecated.\n:issue:\u003ccode\u003e2205\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of\n\u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any\nremaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is\nunneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable deferred evaluation of annotations with\n\u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. :pr:\u003ccode\u003e2270\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen generating a command's name from a decorated function's name, the\nsuffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed.\n:issue:\u003ccode\u003e2322\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within\n\u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified.\n:issue:\u003ccode\u003e2356\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is\n\u003ccode\u003eFalse\u003c/code\u003e. :pr:\u003ccode\u003e2509\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra\nitems used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. :issue:\u003ccode\u003e2516\u003c/code\u003e\n:pr:\u003ccode\u003e2517\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/fd183b2ced1cb5857784fe7fb22f4982f671f098\"\u003e\u003ccode\u003efd183b2\u003c/code\u003e\u003c/a\u003e release version 8.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/262bdf02288daf9a37b9e815b44acafd62b5c6fe\"\u003e\u003ccode\u003e262bdf0\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/80efdf6c10c51884416d11b3b575f61157af77fa\"\u003e\u003ccode\u003e80efdf6\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/cfa6f4ad3e0078db43f866246b483544afa33ed3\"\u003e\u003ccode\u003ecfa6f4a\u003c/code\u003e\u003c/a\u003e Flush sys.stderr when CliRunner finalizes (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f3a4363d1e8383df496adb31f2a6ed037f85380c\"\u003e\u003ccode\u003ef3a4363\u003c/code\u003e\u003c/a\u003e flush sys.stderr when CliRunner.invoke finalizes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b7cf06970e40a3144eb963ff34ed7c38934afb40\"\u003e\u003ccode\u003eb7cf069\u003c/code\u003e\u003c/a\u003e fix shell completion for nested groups (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c575d6b466a1e594d5d6df8f0a1c11d7359a821\"\u003e\u003ccode\u003e7c575d6\u003c/code\u003e\u003c/a\u003e parametrize test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ac6a2acfdb4550c35ce69ce54db502ba96c96324\"\u003e\u003ccode\u003eac6a2ac\u003c/code\u003e\u003c/a\u003e Fix shell completion for nested groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/884af5c20fdc95c9c7352df35c37273391464fb9\"\u003e\u003ccode\u003e884af5c\u003c/code\u003e\u003c/a\u003e Fix flag value set when is_flag=True and type is provided (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2930\"\u003e#2930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4fd2fea0db423d242aedcae0a5f664efe0a93484\"\u003e\u003ccode\u003e4fd2fea\u003c/code\u003e\u003c/a\u003e Fix condition for setting flag value when type is provided\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.6.1 to 2.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.9.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release.  Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns.query.https() and dns.asyncquery.https() now support HTTP/3 and the http_version\nparameter may be used to specify which version to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the cryptography module is installed, then dnspython will now create deterministic\nECDSA signatures by default.  Cryptography, if installed, must be at least version 43.\nThanks to Jakob Schlyter for adding the feature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe RESINFO and WALLET RdataTypes are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe COOKIE and Report-Channel EDNS0 options are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAll supported RdataTypes can now be imported at a single time rather than lazily on\nfirst use by calling dns.rdata.load_all_types().\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe SVCB and HTTPS records now support the ohttp parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003exfr() and inbound_xfr() now share a common implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTokens are now supported for QUIC and HTTP/3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.from_wire() now saves the input wire format in the Message's \u0026quot;wire\u0026quot;\nattribute.  Likewise, dns.message.Message.to_wire() now records the generated\nwire format in that attribute.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe dns.message.Message object now has a get_options() helper to retrieve EDNS0\noptions of a specified type, and an extended_errors() helper to retrieve the list\nof EDE options in a message (if any).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.make_response() now has a copy mode which controls how sections are\ncopied.  By default, a copy mode appropriate for the opcode is used.  This is\ncurrently dns.message.CopyMode.QUESTION for all opcodes.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf an IP address is used as the hostname in a URL, the https query code now passes\nthe sni_hostname to httpx as this is required to get httpx to validate the certificate\nand check for an IP subject alternative name.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported aioquic version is now 1.0.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.9.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/889385e71021f53e1dc4f117d92aed66bb90d087\"\u003e\u003ccode\u003e889385e\u003c/code\u003e\u003c/a\u003e 2.7.0 release prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/bb4bc91f3143a89f8e12941bd8404908f9eb5a09\"\u003e\u003ccode\u003ebb4bc91\u003c/code\u003e\u003c/a\u003e fix(answer): add typing to range (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/4eaf0e25b511bd48586022baa805329bdf304653\"\u003e\u003ccode\u003e4eaf0e2\u003c/code\u003e\u003c/a\u003e Use the port from the URL if provided for H3 \u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1139\"\u003e#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a287921934b1b0fa521ae181da0b017180ee2907\"\u003e\u003ccode\u003ea287921\u003c/code\u003e\u003c/a\u003e fix doco typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/142f7ba586922ae5e036ed54793145b8fc4b4882\"\u003e\u003ccode\u003e142f7ba\u003c/code\u003e\u003c/a\u003e fix typo (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8ce60d2e9758c040fbe981cfdc14e42d7073f2b0\"\u003e\u003ccode\u003e8ce60d2\u003c/code\u003e\u003c/a\u003e CI 2.7 testing and also remove python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/4e15806137974775c8bb5a47b828b42f15656382\"\u003e\u003ccode\u003e4e15806\u003c/code\u003e\u003c/a\u003e 2.7.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/2d6e17c0393343c0e022fa9ab1a00c2d5c6a3736\"\u003e\u003ccode\u003e2d6e17c\u003c/code\u003e\u003c/a\u003e fix typing after reorganization\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/ab59c9a339237b99869fd3a4b0492ddf1a8146ce\"\u003e\u003ccode\u003eab59c9a\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/2b763dc130b400cfa7b01c74cfd72e3c5a1554d4\"\u003e\u003ccode\u003e2b763dc\u003c/code\u003e\u003c/a\u003e linting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.6.1...v2.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-cors` from 6.0.0 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/corydolphin/flask-cors/releases\"\u003eflask-cors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInvert regex sorting to make it correctly match the intent (sorting by specificity descending) \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1.dev\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/a5003f391e56f74f11a3e509cd180787c75eb6b0\"\u003e\u003ccode\u003ea5003f3\u003c/code\u003e\u003c/a\u003e Fix README file extension in pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/4ad56d6c20252d36031c74ba8386a81e94286f40\"\u003e\u003ccode\u003e4ad56d6\u003c/code\u003e\u003c/a\u003e Fix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 6.8.0 to 8.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev8.7.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.metadata()\u003c/code\u003e (and \u003ccode\u003eDistribution.metadata\u003c/code\u003e) can now return \u003ccode\u003eNone\u003c/code\u003e if the metadata directory exists but not metadata file is present. (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise consistent ValueError for invalid EntryPoint.value (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed indentation logic to also honor blank lines.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#119650\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeferred import of zipfile.Path (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeferred import of json (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRely on zipp overlay for zipfile.Path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.4.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/708dff4f1ab89bdd126e3e8c56098d04282c5809\"\u003e\u003ccode\u003e708dff4\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b3065f03cc3395f46ed575e612e213f92a064879\"\u003e\u003ccode\u003eb3065f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/519\"\u003e#519\u003c/a\u003e from python/bugfix/493-metadata-missing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/e4351c226765f53a40316fa6aab50488aee8a90f\"\u003e\u003ccode\u003ee4351c2\u003c/code\u003e\u003c/a\u003e Add a new test capturing the new expectation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/5a657051f7386de6f0560c200d78e941be2c8058\"\u003e\u003ccode\u003e5a65705\u003c/code\u003e\u003c/a\u003e Refactor the casting into a wrapper for brevity and to document its purpose.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0830c39b8a23e48024365120c0e97a6f7c36c5ec\"\u003e\u003ccode\u003e0830c39\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/22bb567692d8e7bd216f864a9d8dee1272ee8674\"\u003e\u003ccode\u003e22bb567\u003c/code\u003e\u003c/a\u003e Fix type errors where metadata could be None.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/57f31d77e18fef11dfadfd44775f253971c36920\"\u003e\u003ccode\u003e57f31d7\u003c/code\u003e\u003c/a\u003e Allow metadata to return None when there is no metadata present.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b9c4be4253250ad604610db66204e5fa70fa2455\"\u003e\u003ccode\u003eb9c4be4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e from python/bugfix/488-bad-ep-value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9f8af013635833cf3ac348413c9ac63b37caa3dd\"\u003e\u003ccode\u003e9f8af01\u003c/code\u003e\u003c/a\u003e Prefer a cached property, as the property is likely to be retrieved at least ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/f179e28888b2c6caf12baaf5449ff1cd82513dfe\"\u003e\u003ccode\u003ef179e28\u003c/code\u003e\u003c/a\u003e Also raise ValueError on construction if the value is invalid.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v6.8.0...v8.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `itsdangerous` from 2.1.2 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/releases\"\u003eitsdangerous's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003cp\u003eThis is a feature release, which includes new features, removes previously deprecated code, and adds new deprecations. The 2.2.x branch is now the supported fix branch, the 2.1.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003eChanges: \u003ca href=\"https://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\"\u003ehttps://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/itsdangerous/milestone/8?closed=1\"\u003ehttps://github.com/pallets/itsdangerous/milestone/8?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking. By default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a different \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return type of its \u003ccode\u003edumps\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/blob/main/CHANGES.rst\"\u003eitsdangerous's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-16\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7. :pr:\u003ccode\u003e372\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e326\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e371\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking.\nBy default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a\ndifferent \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return\ntype of its \u003ccode\u003edumps\u003c/code\u003e method. :issue:\u003ccode\u003e347\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e375\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/096c8d42545d3b68ea21a4f890fb2b2d8979c0bd\"\u003e\u003ccode\u003e096c8d4\u003c/code\u003e\u003c/a\u003e release version 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/7f4dcf83a07bb3d53f4e0e65ef1b43327b4cca90\"\u003e\u003ccode\u003e7f4dcf8\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/93ae366874bbd4f69d90495c45b2cd336387496c\"\u003e\u003ccode\u003e93ae366\u003c/code\u003e\u003c/a\u003e change entry for generic serializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/135eb234ed4a07520779ffb679407b7d27c8ffe6\"\u003e\u003ccode\u003e135eb23\u003c/code\u003e\u003c/a\u003e Generic serializer (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/999ce7af1f0502a224d33338e6ded8bc1e81cb2f\"\u003e\u003ccode\u003e999ce7a\u003c/code\u003e\u003c/a\u003e Improve generic typing further\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/52890d78bb6d92eac4d8d84f33f61be8bd803da7\"\u003e\u003ccode\u003e52890d7\u003c/code\u003e\u003c/a\u003e improve generic typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/385c0eb7501b121b1fddafe19c547073f5a458a0\"\u003e\u003ccode\u003e385c0eb\u003c/code\u003e\u003c/a\u003e type \u003ccode\u003eSerializer\u003c/code\u003e as generic (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/01001c63af4a1c58b65328b2aad3df75a6edc843\"\u003e\u003ccode\u003e01001c6\u003c/code\u003e\u003c/a\u003e type Serializer as generic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/bc88e945d31c407e16c3f4e1c713c12dd598e58d\"\u003e\u003ccode\u003ebc88e94\u003c/code\u003e\u003c/a\u003e improve typing (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/69a3bca7582859bc8ce83ccc28b0cf33f7909388\"\u003e\u003ccode\u003e69a3bca\u003c/code\u003e\u003c/a\u003e improve typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/itsdangerous/compare/2.1.2...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nest-asyncio` from 1.5.8 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/erdewit/nest_asyncio/releases\"\u003enest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev1.6.0\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/19f396f9396bfd34b1b0caeb9b4c631ee3d7eb21\"\u003e\u003ccode\u003e19f396f\u003c/code\u003e\u003c/a\u003e Remove redundant blank line.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c31e7c44f063819ea2d0738e3c72c25458d3fd1b\"\u003e\u003ccode\u003ec31e7c4\u003c/code\u003e\u003c/a\u003e Pre-empt current task before running handle, allowing unpatched tasks, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/80\"\u003e#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/35618de086e8844d24039d2fcd090b8f1647c743\"\u003e\u003ccode\u003e35618de\u003c/code\u003e\u003c/a\u003e v1.5.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c4b8289fe4f4a3192fd1d501e74df08fd93ed348\"\u003e\u003ccode\u003ec4b8289\u003c/code\u003e\u003c/a\u003e Fix patching an already running Proactor loop, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/87\"\u003e#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/d5a13b0d5f156ac9076fbc244f49fb9d48af9bbc\"\u003e\u003ccode\u003ed5a13b0\u003c/code\u003e\u003c/a\u003e Update link to build icon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/a48a68a47e182bd7e1f86c60dfc07d7b8509508b\"\u003e\u003ccode\u003ea48a68a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/84\"\u003e#84\u003c/a\u003e from 5j9/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c20e77426bfb9be50d514a850bc4cabbbc69f114\"\u003e\u003ccode\u003ec20e774\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/f7ce59048cdaace5a1a82c78ef476c3bbb3b664a\"\u003e\u003ccode\u003ef7ce590\u003c/code\u003e\u003c/a\u003e v1.5.8\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/erdewit/nest_asyncio/compare/v1.5.8...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.8.0 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent partial matching of \u003ccode\u003eiss\u003c/code\u003e claim. Thanks \u003ca href=\"https://github.com/fabianbadoi\"\u003e\u003ccode\u003e@​fabianbadoi\u003c/code\u003e\u003c/a\u003e! (See: \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\"\u003ehttps://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: use sequence for typing rather than list by \u003ca href=\"https://github.com/imnotjames\"\u003e\u003ccode\u003e@​imnotjames\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/970\"\u003ejpadilla/pyjwt#970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/972\"\u003ejpadilla/pyjwt#972\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/971\"\u003ejpadilla/pyjwt#971\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an RTD config file to resolve RTD build failures by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/977\"\u003ejpadilla/pyjwt#977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update \u003ccode\u003eiat\u003c/code\u003e exception docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/974\"\u003ejpadilla/pyjwt#974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove algorithm requirement for JWT API by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/975\"\u003ejpadilla/pyjwt#975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/978\"\u003ejpadilla/pyjwt#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate SECURITY.md by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/973\"\u003ejpadilla/pyjwt#973\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs fix: decode_complete scope and algorithms by \u003ca href=\"https://github.com/RbnRncn\"\u003e\u003ccode\u003e@​RbnRncn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/982\"\u003ejpadilla/pyjwt#982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix doctest for docs/usage.rst by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/986\"\u003ejpadilla/pyjwt#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix test_utils.py not to xfail by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/987\"\u003ejpadilla/pyjwt#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect jwt.decode audience param doc expression by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/994\"\u003ejpadilla/pyjwt#994\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PS256 encoding and decoding usage by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/992\"\u003ejpadilla/pyjwt#992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd API docs for PyJWK by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/980\"\u003ejpadilla/pyjwt#980\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor project configuration files from setup.cfg to pyproject.toml PEP-518 by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/995\"\u003ejpadilla/pyjwt#995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd JWK support to JWT encode by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/979\"\u003ejpadilla/pyjwt#979\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit hooks to lint pyproject.toml by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1002\"\u003ejpadilla/pyjwt#1002\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd EdDSA algorithm encoding/decoding usage by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/993\"\u003ejpadilla/pyjwt#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRuff linter and formatter changes by \u003ca href=\"https://github.com/gagandeepp\"\u003e\u003ccode\u003e@​gagandeepp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1001\"\u003ejpadilla/pyjwt#1001\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate \u003ccode\u003esub\u003c/code\u003e and \u003ccode\u003ejti\u003c/code\u003e claims for the token by \u003ca href=\"https://github.com/Divan009\"\u003e\u003ccode\u003e@​Divan009\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1005\"\u003ejpadilla/pyjwt#1005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ES256 usage  by \u003ca href=\"https://github.com/Gautam-Hegde\"\u003e\u003ccode\u003e@​Gautam-Hegde\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1003\"\u003ejpadilla/pyjwt#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEncode EC keys with a fixed bit length by \u003ca href=\"https://github.com/way-dave\"\u003e\u003ccode\u003e@​way-dave\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/990\"\u003ejpadilla/pyjwt#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1000\"\u003ejpadilla/pyjwt#1000\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8 by \u003ca href=\"https://github.com/kkirsche\"\u003e\u003ccode\u003e@​kkirsche\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1007\"\u003ejpadilla/pyjwt#1007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare 2.10.0 release by \u003ca href=\"https://github.com/benvdh\"\u003e\u003ccode\u003e@​benvdh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1011\"\u003ejpadilla/pyjwt#1011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump codecov/codecov-action from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1014\"\u003ejpadilla/pyjwt#1014\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1006\"\u003ejpadilla/pyjwt#1006\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imnotjames\"\u003e\u003ccode\u003e@​imnotjames\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/970\"\u003ejpadilla/pyjwt#970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/977\"\u003ejpadilla/pyjwt#977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/974\"\u003ejpadilla/pyjwt#974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RbnRncn\"\u003e\u003ccode\u003e@​RbnRncn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/982\"\u003ejpadilla/pyjwt#982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/994\"\u003ejpadilla/pyjwt#994\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/995\"\u003ejpadilla/pyjwt#995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gagandeepp\"\u003e\u003ccode\u003e@​gagandeepp\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1001\"\u003ejpadilla/pyjwt#1001\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Divan009\"\u003e\u003ccode\u003e@​Divan009\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1005\"\u003ejpadilla/pyjwt#1005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Gautam-Hegde\"\u003e\u003ccode\u003e@​Gautam-Hegde\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1003\"\u003ejpadilla/pyjwt#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/way-dave\"\u003e\u003ccode\u003e@​way-dave\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/990\"\u003ejpadilla/pyjwt#990\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.9.0...2.10.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.9.0...2.10.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.10.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Prevent partial ma...\n\n_Description has been truncated_","html_url":"https://github.com/asusoda/platform/pull/76","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asusoda%2Fplatform/issues/76","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/76/packages"}],"issue_packages":[{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-06-08T00:17:37.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"4609193755","node_id":"PR_kwDOJowhis7jtpDF","number":21,"state":"open","title":"Bump aiosignal from 1.3.1 to 1.4.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-08T00:17:37.000Z","updated_at":"2026-06-08T00:18:05.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"}],"path":null,"ecosystem":"pip"},"body":"Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal\u0026package-manager=pip\u0026previous-version=1.3.1\u0026new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/reitosu/ano_video_post/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/reitosu%2Fano_video_post/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"}},{"old_version":"\u003e=1.3.0","new_version":"\u003e=1.4.0","update_type":"minor","path":"/PYTHON","pr_created_at":"2026-05-25T08:47:23.000Z","version_change":"\u003e=1.3.0 → \u003e=1.4.0","issue":{"uuid":"4515611911","node_id":"PR_kwDOSlygv87e-PrI","number":23,"state":"open","title":"pip(deps): Update aiosignal requirement from \u003e=1.3.0 to \u003e=1.4.0 in /PYTHON","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-25T08:47:23.000Z","updated_at":"2026-05-25T08:47:24.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"pip(deps): Update","packages":[{"name":"aiosignal","old_version":"\u003e=1.3.0","new_version":"\u003e=1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"}],"path":"/PYTHON","ecosystem":"pip"},"body":"Updates the requirements on [aiosignal](https://github.com/aio-libs/aiosignal) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.1 (2022-11-08)\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.0...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/muhammedfeyzihan/AnatoliaX-Auto-Trader/pull/23","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/muhammedfeyzihan%2FAnatoliaX-Auto-Trader/issues/23","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/23/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-02-02T04:02:19.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"3883836862","node_id":"PR_kwDOKXLyYM7AzkpR","number":139,"state":"closed","title":"Bump the python-deps group across 1 directory with 47 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-03T05:32:23.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-02T04:02:19.000Z","updated_at":"2026-02-03T05:32:25.000Z","time_to_close":91804,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-deps","update_count":47,"packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"asgiref","old_version":"3.9.1","new_version":"3.11.0","repository_url":"https://github.com/django/asgiref"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"attrs","old_version":"23.1.0","new_version":"25.4.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"cachetools","old_version":"5.3.2","new_version":"7.0.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.8.3","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.6.1","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"flask-cors","old_version":"6.0.0","new_version":"6.0.2","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"frozenlist","old_version":"1.7.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"greenlet","old_version":"3.2.4","new_version":"3.3.1","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"importlib-metadata","old_version":"6.8.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"multidict","old_version":"6.6.4","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"nest-asyncio","old_version":"1.5.8","new_version":"1.6.0","repository_url":"https://github.com/erdewit/nest_asyncio"},{"name":"py-cord","old_version":"2.6.1","new_version":"2.7.0","repository_url":"https://github.com/Pycord-Development/pycord"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.16.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"python-engineio","old_version":"4.9.0","new_version":"4.13.0","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-socketio","old_version":"5.11.2","new_version":"5.16.0","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"simple-websocket","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/miguelgrinberg/simple-websocket"},{"name":"sqlalchemy","old_version":"2.0.30","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"werkzeug","old_version":"3.0.6","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"wsproto","old_version":"1.2.0","new_version":"1.3.2","repository_url":"https://github.com/python-hyper/wsproto"},{"name":"yarl","old_version":"1.20.1","new_version":"1.22.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"python-dotenv","old_version":"1.1.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.188.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"selenium","old_version":"4.32.0","new_version":"4.40.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"notion-client","old_version":"2.4.0","new_version":"2.7.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-auth-oauthlib","old_version":"1.2.2","new_version":"1.2.4","repository_url":"https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib"},{"name":"google-api-core","old_version":"2.25.1","new_version":"2.29.0","repository_url":"https://github.com/googleapis/python-api-core"},{"name":"apscheduler","old_version":"3.11.0","new_version":"3.11.2","repository_url":"https://github.com/agronholm/apscheduler"},{"name":"google-genai","old_version":"1.30.0","new_version":"1.61.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"google-generativeai","old_version":"0.8.5","new_version":"0.8.6","repository_url":"https://github.com/google/generative-ai-python"},{"name":"tzdata","old_version":"2025.2","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"colorlog","old_version":"6.9.0","new_version":"6.10.1","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"anthropic","old_version":"0.64.0","new_version":"0.77.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"1.102.0","new_version":"2.16.0","repository_url":"https://github.com/openai/openai-python"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 46 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.11.0` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `23.1.0` | `25.4.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.3.2` | `7.0.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `2026.1.4` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.1` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.6.1` | `2.8.0` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.0` | `6.0.2` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.7.0` | `1.8.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.4` | `3.3.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.8.0` | `8.7.1` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.6.4` | `6.7.1` |\n| [nest-asyncio](https://github.com/erdewit/nest_asyncio) | `1.5.8` | `1.6.0` |\n| [py-cord](https://github.com/Pycord-Development/pycord) | `2.6.1` | `2.7.0` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.16.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.9.0` | `4.13.0` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.11.2` | `5.16.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [simple-websocket](https://github.com/miguelgrinberg/simple-websocket) | `1.0.0` | `1.1.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.30` | `2.0.46` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.3` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.0.6` | `3.1.5` |\n| [wsproto](https://github.com/python-hyper/wsproto) | `1.2.0` | `1.3.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.20.1` | `1.22.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.1` | `1.2.1` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.188.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.32.0` | `4.40.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.0.0` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `2.4.0` | `2.7.0` |\n| [google-auth-oauthlib](https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib) | `1.2.2` | `1.2.4` |\n| [google-api-core](https://github.com/googleapis/python-api-core) | `2.25.1` | `2.29.0` |\n| [apscheduler](https://github.com/agronholm/apscheduler) | `3.11.0` | `3.11.2` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.30.0` | `1.61.0` |\n| [google-generativeai](https://github.com/google/generative-ai-python) | `0.8.5` | `0.8.6` |\n| [tzdata](https://github.com/python/tzdata) | `2025.2` | `2025.3` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.9.0` | `6.10.1` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.64.0` | `0.77.0` |\n| [openai](https://github.com/openai/openai-python) | `1.102.0` | `2.16.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `9.0.2` |\n\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.9.1 to 3.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.0 (2025-11-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003esync_to_async\u003c/code\u003e gains a \u003ccode\u003econtext\u003c/code\u003e parameter, similar to those for\n\u003ccode\u003easyncio.create_task\u003c/code\u003e, \u003ccode\u003eTaskGroup\u003c/code\u003e \u0026amp;co, that can be used on Python 3.11+ to\ncontrol the context used by the underlying task.\u003c/p\u003e\n\u003cp\u003eThe parent context is already propagated by default but the additional\ncontrol is useful if multiple \u003ccode\u003esync_to_async\u003c/code\u003e calls need to share the same\ncontext, e.g. when used with \u003ccode\u003easyncio.gather()\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.0 (2025-10-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded AsyncSingleThreadContext context manager to ensure multiple AsyncToSync\ninvocations use the same thread. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b7b15b20ddb51d1d8b6978165c0986686cd08c1d\"\u003e\u003ccode\u003eb7b15b2\u003c/code\u003e\u003c/a\u003e Releasing 3.11.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/901ee4f96db156f0b462690dd7c9f5aa99bcce03\"\u003e\u003ccode\u003e901ee4f\u003c/code\u003e\u003c/a\u003e Added a custom context parameter for the sync_to_async (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/2138f0317d79cedd065571447ae0a7571989550e\"\u003e\u003ccode\u003e2138f03\u003c/code\u003e\u003c/a\u003e Fixed typo in test file comment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/f587b122af17bdba5749c30b96d2237bc1c2dfdf\"\u003e\u003ccode\u003ef587b12\u003c/code\u003e\u003c/a\u003e Releasing 3.10.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b08087c3b6df811a0524585c4d4dafdc6b12c222\"\u003e\u003ccode\u003eb08087c\u003c/code\u003e\u003c/a\u003e Added AsyncSingleThreadContext (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-timeout` from 4.0.3 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/releases\"\u003easync-timeout's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst\"\u003easync-timeout's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.1 (2024-11-06)\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.0.0 (2024-10-31)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/cc52d410e733b302873e6e52db9a9b6578d053a4\"\u003e\u003ccode\u003ecc52d41\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/1af7d7165d598af03e51952a679c690690dc7f8e\"\u003e\u003ccode\u003e1af7d71\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3bf26d96e3d1830a0e72ddab9c6a2c87e1f4380a\"\u003e\u003ccode\u003e3bf26d9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/423\"\u003e#423\u003c/a\u003e: add requirements.txt to sdist package (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/380e8ba5bf77e3cd184df8a5f51dc929d93d8553\"\u003e\u003ccode\u003e380e8ba\u003c/code\u003e\u003c/a\u003e Mention condition import of asyncio.timeout / async_timeout.timeout in README...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/8a232d0f7fc1af88c8d921500d78bbefc2bc545c\"\u003e\u003ccode\u003e8a232d0\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3d3e3e45420ac6ea0ef77c9e32388e252e12ac4d\"\u003e\u003ccode\u003e3d3e3e4\u003c/code\u003e\u003c/a\u003e Bump to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/d5c21f3dee7eeb06823af77284ad2a899611b28e\"\u003e\u003ccode\u003ed5c21f3\u003c/code\u003e\u003c/a\u003e Mimic asyncio.Timeout behavior (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/a1111c2597b9ce8d34b823c1b993689339ea9fd6\"\u003e\u003ccode\u003ea1111c2\u003c/code\u003e\u003c/a\u003e Drop deprecated sync context manager support (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/00fd343ce6ba2ccc291c0f6e09fea8998cbfe3a1\"\u003e\u003ccode\u003e00fd343\u003c/code\u003e\u003c/a\u003e Imports cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/7b61b33ae0ecee0e0bb0e09f2e5787c647d4ffb8\"\u003e\u003ccode\u003e7b61b33\u003c/code\u003e\u003c/a\u003e Update CI config file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-timeout/compare/v4.0.3...v5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 23.1.0 to 25.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 5.3.2 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.0.0 (2026-02-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequire Python 3.10 or later (breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for passing \u003ccode\u003einfo\u003c/code\u003e as fourth positional parameter to\n\u003ccode\u003e@cached\u003c/code\u003e (breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for \u003ccode\u003ecache(self)\u003c/code\u003e returning \u003ccode\u003eNone\u003c/code\u003e with\n\u003ccode\u003e@cachedmethod\u003c/code\u003e (breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert the \u003ccode\u003e@cachedmethod\u003c/code\u003e wrappers to descriptors, deprecating\nits use with class methods and instances that do not provide a\nmutable \u003ccode\u003e__dict__\u003c/code\u003e attribute (potentially breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert the previously undocumented \u003ccode\u003e@cachedmethod\u003c/code\u003e attributes\n(\u003ccode\u003ecache\u003c/code\u003e, \u003ccode\u003ecache_lock\u003c/code\u003e, etc.) to properties for instance\nmethods, providing official support and documentation (potentially\nbreaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd an optional \u003ccode\u003einfo\u003c/code\u003e parameter to the \u003ccode\u003e@cachedmethod\u003c/code\u003e\ndecorator for reporting per-instance cache statistics.  Note that\nthis requires the instance's \u003ccode\u003e__dict__\u003c/code\u003e attribute to be a mutable\nmapping.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.6 (2026-01-27)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove typedkey performance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor documentation improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor testing improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor code readability improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.5 (2026-01-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation regarding \u003ccode\u003e@cachedmethod\u003c/code\u003e with \u003ccode\u003elock\u003c/code\u003e\nparameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd test cases for cache stampede scenarios.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ev6.2.4 (2025-12-15)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/28bbcba53fbd939858ed02f52579e362e3b4fce9\"\u003e\u003ccode\u003e28bbcba\u003c/code\u003e\u003c/a\u003e Release v7.0.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/45776b23b1bf33dbad62bd74290f64ed205ce669\"\u003e\u003ccode\u003e45776b2\u003c/code\u003e\u003c/a\u003e Minor code and documentation improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/51a70a9740981883c36bd1812b7cacd707ea264e\"\u003e\u003ccode\u003e51a70a9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/357\"\u003e#357\u003c/a\u003e: Update documentation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb72c21aab48bdd720fbe173ff1938bd5d923e43\"\u003e\u003ccode\u003ebb72c21\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/357\"\u003e#357\u003c/a\u003e: Add cache_info() support for \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/86352aed2bedb23aa0cc461a58e76bd667617eaa\"\u003e\u003ccode\u003e86352ae\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/357\"\u003e#357\u003c/a\u003e: Convert \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e decorators to descriptors.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/263cf3185fcec33aceb93704252e5f34e8f9d3e3\"\u003e\u003ccode\u003e263cf31\u003c/code\u003e\u003c/a\u003e Prepare v7.0.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/59d4db25cd7e75a49886bdf5e1a01665811b935f\"\u003e\u003ccode\u003e59d4db2\u003c/code\u003e\u003c/a\u003e Drop support for cache(self) returning None in \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/c933a9767348d43a570397de47455b98ecd6c191\"\u003e\u003ccode\u003ec933a97\u003c/code\u003e\u003c/a\u003e Drop support for passing \u0026quot;info\u0026quot; as fourth positional parameter of \u003ca href=\"https://github.com/cached\"\u003e\u003ccode\u003e@​cached\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/ae3d6bd7954ed14385501b40af6cfb486750f825\"\u003e\u003ccode\u003eae3d6bd\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a12c3b05a179f6d15e926784652935133d376755\"\u003e\u003ccode\u003ea12c3b0\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.1 to 6.0.2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.3.2...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.8.3 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.08.03...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.1/\"\u003ehttps://pypi.org/project/click/8.3.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/28\"\u003ehttps://github.com/pallets/click/milestone/28\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3039\"\u003e#3039\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3055\"\u003e#3055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through the \u003ccode\u003eContext.invoke()\u003c/code\u003e method. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3066\"\u003e#3066\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3068\"\u003e#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect behavior for multiple parameters using the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3071\"\u003e#3071\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3079\"\u003e#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is empty. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3019\"\u003e#3019\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3021\"\u003e#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to \u003ccode\u003etype_cast_value\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3069\"\u003e#3069\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3090\"\u003e#3090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters through the context inside parameter callbacks. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-11-15\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. :issue:\u003ccode\u003e3039\u003c/code\u003e\n:pr:\u003ccode\u003e3055\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through\nthe \u003ccode\u003eContext.invoke()\u003c/code\u003e method. :issue:\u003ccode\u003e3066\u003c/code\u003e :issue:\u003ccode\u003e3065\u003c/code\u003e :pr:\u003ccode\u003e3068\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect\nbehavior for multiple parameters using the same name. :issue:\u003ccode\u003e3071\u003c/code\u003e :pr:\u003ccode\u003e3079\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters\nthrough the context inside parameter callbacks. :issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3137\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is\nempty. :issue:\u003ccode\u003e3019\u003c/code\u003e :pr:\u003ccode\u003e3021\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to\n\u003ccode\u003etype_cast_value\u003c/code\u003e. :issue:\u003ccode\u003e3069\u003c/code\u003e :pr:\u003ccode\u003e3090\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in \u003ccode\u003eCliRunner\u003c/code\u003e. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1d038f270701498433cb432f54db89f95f07a845\"\u003e\u003ccode\u003e1d038f2\u003c/code\u003e\u003c/a\u003e release version 8.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/03f3889f505d0c9ca4f9d6810f9e4ba2799f2a66\"\u003e\u003ccode\u003e03f3889\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3141\"\u003e#3141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3867781222cb63693ca67df94352d29d8e6e2770\"\u003e\u003ccode\u003e3867781\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b91bb9548a5617b1197add95e084d569f57149c3\"\u003e\u003ccode\u003eb91bb95\u003c/code\u003e\u003c/a\u003e Provide altered context to callbacks to hide \u003ccode\u003eUNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/437e1e3295c7ec979fc1bf285bb402ca20d847e7\"\u003e\u003ccode\u003e437e1e3\u003c/code\u003e\u003c/a\u003e Temporarily provide a fake context to the callback to hide \u003ccode\u003eUNSET\u003c/code\u003e values as ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ea70da487b05d6bb758d472a3a9ffab4a5b7fcd5\"\u003e\u003ccode\u003eea70da4\u003c/code\u003e\u003c/a\u003e Don't test using a file in docs/ (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e27b307462b725722f620c69dd1d5509c032d18a\"\u003e\u003ccode\u003ee27b307\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003euv run --all-extras pyright --verifytypes click\u003c/code\u003e pass (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a92c573f3195c9da3058eadf1735d38af186d22c\"\u003e\u003ccode\u003ea92c573\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.6.1 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.8.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.10.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release. Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003cp\u003eThis release was published to PyPI using Trusted Publishing.\u003c/p\u003e\n\u003ch2\u003ednspython 2.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.9.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release.  Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns/btreezone.py provides another zone versioned implementation built on top of a\nB-tree.  It maintains DNSSEC sort order, labels nodes as delegation points or glue,\nand can find the \u0026quot;bounds\u0026quot; of a name (useful for DNSSEC responses).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/query.py now provides make_socket(), make_ssl_socket(), and make_ssl_context()\nto make using persistent connections with the query code easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/win32util.py now supports explicitly setting the configuration method used to get\nsystem dns info, using the set_config_method() function.   There is a new configuration\nmethod that uses the Win32 API, which can be set using\nset_config_method(ConfigMethod.Win32).  We are considering making the Win32 API\nthe default in the future as we believe it to be the most accurate.  Any feedback on\nit compared to the other methods is welcome.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe DSYNC record is now supported.  This type is still in draft stage at the IETF\nand is subject to change.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns.query.https() and dns.asyncquery.https() now support HTTP/3 and the http_version\nparameter may be used to specify which version to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the cryptography module is installed, then dnspython will now create deterministic\nECDSA signatures by default.  Cryptography, if installed, must be at least version 43.\nThanks to Jakob Schlyter for adding the feature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe RESINFO and WALLET RdataTypes are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe COOKIE and Report-Channel EDNS0 options are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAll supported RdataTypes can now be imported at a single time rather than lazily on\nfirst use by calling dns.rdata.load_all_types().\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe SVCB and HTTPS records now support the ohttp parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003exfr() and inbound_xfr() now share a common implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTokens are now supported for QUIC and HTTP/3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.from_wire() now saves the input wire format in the Message's \u0026quot;wire\u0026quot;\nattribute.  Likewise, dns.message.Message.to_wire() now records the generated\nwire format in that attribute.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe dns.message.Message object now has a get_options() helper to retrieve EDNS0\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/77fd94cd9716faf23e0a6e333f6568fc24284402\"\u003e\u003ccode\u003e77fd94c\u003c/code\u003e\u003c/a\u003e 2.8.0 versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/884f38345a8152342fe8ab5da8db9aab654051ba\"\u003e\u003ccode\u003e884f383\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/1938fe331f97376bf91c028fbfb8c7588c1b84f4\"\u003e\u003ccode\u003e1938fe3\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a35d6925efe20744e8cf7545d19d03ba06e7ab6f\"\u003e\u003ccode\u003ea35d692\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/c862baaf0d0aa36d2e7003dfe226cd6ad4d827c4\"\u003e\u003ccode\u003ec862baa\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/0945d5923d58048c17325975f70f0738c87570b4\"\u003e\u003ccode\u003e0945d59\u003c/code\u003e\u003c/a\u003e more lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8fa6766d2f7a2431372fc912fb334e752290ebf2\"\u003e\u003ccode\u003e8fa6766\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/641633503ee6b07bf382594ac04707072b90de18\"\u003e\u003ccode\u003e6416335\u003c/code\u003e\u003c/a\u003e Type syntax (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a4591447b7d6e38479bcddb14de3b69f314e7009\"\u003e\u003ccode\u003ea459144\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a0d5f172e89f30709b47b59fb0919d8cf137f611\"\u003e\u003ccode\u003ea0d5f17\u003c/code\u003e\u003c/a\u003e fix the all entries\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.6.1...v2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-cors` from 6.0.0 to 6.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/corydolphin/flask-cors/releases\"\u003eflask-cors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate license pyproject.toml by \u003ca href=\"https://github.com/wagenrace\"\u003e\u003ccode\u003e@​wagenrace\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/395\"\u003ecorydolphin/flask-cors#395\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wagenrace\"\u003e\u003ccode\u003e@​wagenrace\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/395\"\u003ecorydolphin/flask-cors#395\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.1...6.0.2\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.1...6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInvert regex sorting to make it correctly match the intent (sorting by specificity descending) \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1.dev\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/fa55dcbec68b3524a39e5057c35c29c221a27d64\"\u003e\u003ccode\u003efa55dcb\u003c/code\u003e\u003c/a\u003e Update license pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/a5003f391e56f74f11a3e509cd180787c75eb6b0\"\u003e\u003ccode\u003ea5003f3\u003c/code\u003e\u003c/a\u003e Fix README file extension in pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/4ad56d6c20252d36031c74ba8386a81e94286f40\"\u003e\u003ccode\u003e4ad56d6\u003c/code\u003e\u003c/a\u003e Fix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `frozenlist` from 1.7.0 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/frozenlist/releases\"\u003efrozenlist's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.0\u003c/h2\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe :file:\u003ccode\u003ereusable-cibuildwheel.yml\u003c/code\u003e workflow has been refactored to\nbe more generic and :file:\u003ccode\u003eci-cd.yml\u003c/code\u003e now holds all the configuration\ntoggles -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/668\"\u003e#668\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen building wheels, the source distribution is now passed directly\nto the \u003ccode\u003ecibuildwheel\u003c/code\u003e invocation -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/669\"\u003e#669\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBuilds and tests have been added to\n\u003ccode\u003eci-cd.yml\u003c/code\u003e for arm64 Windows wheels -- by :user:\u003ccode\u003efinnagin\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/677\"\u003e#677\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eStarted building wheels for CPython 3.14 -- by :user:\u003ccode\u003ekumaraditya303\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/681\"\u003e#681\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/682\"\u003e#682\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003e--config-settings=pure-python=false\u003c/code\u003e from :file:\u003ccode\u003erequirements/dev.txt\u003c/code\u003e.\nDevelopers on CPython still get accelerated builds by default. To explicitly build\na pure Python wheel, use \u003ccode\u003epip install -e . --config-settings=pure-python=true\u003c/code\u003e\n-- by :user:\u003ccode\u003ebdraco\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/687\"\u003e#687\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/frozenlist/blob/master/CHANGES.rst\"\u003efrozenlist's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev1.8.0\u003c/h1\u003e\n\u003cp\u003e\u003cem\u003e(2025-10-05)\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe :file:\u003ccode\u003ereusable-cibuildwheel.yml\u003c/code\u003e workflow has been refactored to\nbe more generic and :file:\u003ccode\u003eci-cd.yml\u003c/code\u003e now holds all the configuration\ntoggles -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e668\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen building wheels, the source distribution is now passed directly\nto the \u003ccode\u003ecibuildwheel\u003c/code\u003e invocation -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e669\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBuilds and tests have been added to\n\u003ccode\u003eci-cd.yml\u003c/code\u003e for arm64 Windows wheels -- by :user:\u003ccode\u003efinnagin\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e677\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eStarted building wheels for CPython 3.14 -- by :user:\u003ccode\u003ekumaraditya303\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e681\u003c/code\u003e, :issue:\u003ccode\u003e682\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003e--config-settings=pure-python=false\u003c/code\u003e from :file:\u003ccode\u003erequirements/dev.txt\u003c/code\u003e.\nDevelopers on CPython still get accelerated builds by default. To explicitly build\na pure Python wheel, use \u003ccode\u003epip install -e . --config-settings=pure-python=true\u003c/code\u003e\n-- by :user:\u003ccode\u003ebdraco\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e687\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/48324affeecc2fff8f84f38368f720426c0354cf\"\u003e\u003ccode\u003e48324af\u003c/code\u003e\u003c/a\u003e Release 1.8.0 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/698\"\u003e#698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/7e5eab0c6fef4898fe43827b68e2722a385a8383\"\u003e\u003ccode\u003e7e5eab0\u003c/code\u003e\u003c/a\u003e Add windows arm64 support (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/678\"\u003e#678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/a2c22c28622534e4d90abdd931acd9d9a2aaa457\"\u003e\u003ccode\u003ea2c22c2\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sphinx from 7.2.6 to 7.4.7 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/752b80a14924c53317b0b4cb4d8212a3daf06719\"\u003e\u003ccode\u003e752b80a\u003c/code\u003e\u003c/a\u003e Build(deps): Bump types-setuptools from 75.8.0.20250210 to 80.9.0.20250822 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/6b9d557b189dfc8f1f9afdfcc9b6ddd8ccfc9f76\"\u003e\u003ccode\u003e6b9d557\u003c/code\u003e\u003c/a\u003e Build(deps): Bump cython from 3.1.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/7c4ad20e8ef0e6dc7dc7bfa49067d30477401890\"\u003e\u003ccode\u003e7c4ad20\u003c/code\u003e\u003c/a\u003e Build(deps-dev): Bump tox from 4.11.4 to 4.30.3 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/65f35d660661309808804b119d8fedb950527dc4\"\u003e\u003ccode\u003e65f35d6\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pre-commit from 3.5.0 to 4.3.0 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/697\"\u003e#697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/1ad02630d8fabf2cc67c7b2549115440edbd1be9\"\u003e\u003ccode\u003e1ad0263\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 7.4.3 to 8.4.2 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/884ee492579139df7c634f20ee27133d06551935\"\u003e\u003ccode\u003e884ee49\u003c/code\u003e\u003c/a\u003e Build(deps): Bump aiohttp-theme from 0.1.6 to 0.1.7 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/689\"\u003e#689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/b2d618044281d0ef534253d8cf087f80569d492c\"\u003e\u003ccode\u003eb2d6180\u003c/code\u003e\u003c/a\u003e Fix dependabot updates (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/frozenlist/compare/v1.7.0...v1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `greenlet` from 3.2.4 to 3.3.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst\"\u003egreenlet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.3.1 (2026-01-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePublish Windows ARM binary wheels, where available.\u003c/li\u003e\n\u003cli\u003eFix compilation for 3.14t on Windows.\u003c/li\u003e\n\u003cli\u003ePublish Windows 3.14t binary wheels for Intel.\u003c/li\u003e\n\u003cli\u003eSwitch from Appveyor for Windows to Github Actions.\u003c/li\u003e\n\u003cli\u003eFix compilation on MIPS with GCC 15 and binutils 2.45. See \u003ccode\u003ePR 487 by Rosen Penev \u0026lt;https://github.com/python-greenlet/greenlet/pull/487\u0026gt;\u003c/code\u003e_. Note that\nthis is not a platform tested by this project's CI.\u003c/li\u003e\n\u003cli\u003eMove most project metadata into the static \u003ccode\u003epyproject.toml\u003c/code\u003e file.\nThis updates licensing information to use the modern\n\u003ccode\u003eLicense-Expression\u003c/code\u003e field. See \u003ccode\u003ePR 480 by mrbean-bremen \u0026lt;https://github.com/python-greenlet/greenlet/pull/480/\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e3.3.0 (2025-12-04)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.9.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitch to distributing manylinux_2_28 wheels instead of\nmanylinux2014 wheels. Likewise, switch from musllinux_1_1 to 1_2.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd initial support for free-threaded builds of CPython 3.14. Due to\nlimitations, we do not distribute binary wheels for free-threaded\nCPython on Windows. (Free-threaded CPython 3.13 may work, but is\nuntested and unsupported.)\u003c/p\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cp\u003eUnder some rare scenarios with free-threaded 3.14, the\ninterpreter may crash on accessing a variable or attribute or\nwhen shutting down. If this happens, try disabling the\nthread-local bytecode cache. See the greenlet documentation for\nmore details. See \u003ccode\u003ePR 472 by T. Wouters \u0026lt;https://github.com/python-greenl...\n\n_Description has been truncated_","html_url":"https://github.com/asusoda/platform/pull/139","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asusoda%2Fplatform/issues/139","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/139/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-01-25T03:57:14.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"3852512447","node_id":"PR_kwDOHR9vV86_Miyr","number":503,"state":"open","title":"chore(deps): bump the dependencies group across 1 directory with 107 updates","user":"dependabot[bot]","labels":["skip-changelog","major","chore"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-25T03:57:14.000Z","updated_at":"2026-02-12T14:02:23.388Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"dependencies","update_count":107,"packages":[{"name":"aiofiles","old_version":"24.1.0","new_version":"25.1.0","repository_url":"https://github.com/Tinche/aiofiles"},{"name":"aiohappyeyeballs","old_version":"2.4.0","new_version":"2.6.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"aioitertools","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/omnilib/aioitertools"},{"name":"aiokafka","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/aio-libs/aiokafka"},{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"ansible-builder","old_version":"3.1.0","new_version":"3.1.1","repository_url":"https://github.com/ansible/ansible-builder"},{"name":"ansible-compat","old_version":"24.8.0","new_version":"24.10.0","repository_url":"https://github.com/ansible/ansible-compat"},{"name":"ansible-pygments","old_version":"0.1.1","new_version":"0.1.2","repository_url":"https://github.com/ansible-community/ansible-pygments"},{"name":"ansible-runner","old_version":"2.4.0","new_version":"2.4.2","repository_url":"https://github.com/ansible/ansible-runner"},{"name":"antsibull-changelog","old_version":"0.29.0","new_version":"0.35.0","repository_url":"https://github.com/ansible-community/antsibull-changelog"},{"name":"antsibull-core","old_version":"3.0.2","new_version":"3.5.0","repository_url":"https://github.com/ansible-community/antsibull-core"},{"name":"antsibull-docs","old_version":"2.13.1","new_version":"2.24.0","repository_url":"https://github.com/ansible-community/antsibull-docs"},{"name":"antsibull-docs-parser","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/ansible-community/antsibull-docs-parser"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"azure-core","old_version":"1.30.2","new_version":"1.38.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"babel","old_version":"2.16.0","new_version":"2.17.0","repository_url":"https://github.com/python-babel/babel"},{"name":"bindep","old_version":"2.11.0","new_version":"2.13.0"},{"name":"black","old_version":"24.8.0","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"botocore","old_version":"1.35.7","new_version":"1.42.34","repository_url":"https://github.com/boto/botocore"},{"name":"bracex","old_version":"2.5","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"build","old_version":"1.2.1","new_version":"1.4.0","repository_url":"https://github.com/pypa/build"},{"name":"cachetools","old_version":"5.5.0","new_version":"6.2.4","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2024.8.30","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.0","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/pallets/click"},{"name":"cryptography","old_version":"43.0.1","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.8","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"docutils","old_version":"0.20.1","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"drools-jpy","old_version":"0.3.9","new_version":"0.3.14","repository_url":"https://github.com/ansible/drools_jpy"},{"name":"exceptiongroup","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.15.4","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"frozenlist","old_version":"1.4.1","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"galaxy-importer","old_version":"0.4.24","new_version":"0.4.37","repository_url":"https://github.com/ansible/galaxy-importer"},{"name":"gitdb","old_version":"4.0.11","new_version":"4.0.12","repository_url":"https://github.com/gitpython-developers/gitdb"},{"name":"gitpython","old_version":"3.1.43","new_version":"3.1.46","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"idna","old_version":"3.8","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"importlib-metadata","old_version":"6.2.1","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"isodate","old_version":"0.6.1","new_version":"0.7.2","repository_url":"https://github.com/gweis/isodate"},{"name":"janus","old_version":"1.0.0","new_version":"2.0.0","repository_url":"https://github.com/aio-libs/janus"},{"name":"jaraco-context","old_version":"6.0.1","new_version":"6.1.0","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"jaraco-functools","old_version":"4.0.2","new_version":"4.4.0","repository_url":"https://github.com/jaraco/jaraco.functools"},{"name":"jinja2","old_version":"3.1.4","new_version":"3.1.6","repository_url":"https://github.com/pallets/jinja"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"jpy","old_version":"0.18.0","new_version":"1.3.0","repository_url":"https://github.com/jpy-consortium/jpy"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.25.1","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"jsonschema-specifications","old_version":"2023.12.1","new_version":"2025.9.1","repository_url":"https://github.com/python-jsonschema/jsonschema-specifications"},{"name":"keyring","old_version":"25.3.0","new_version":"25.7.0","repository_url":"https://github.com/jaraco/keyring"},{"name":"markdown","old_version":"3.7","new_version":"3.9","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"markupsafe","old_version":"2.1.5","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"mdit-py-plugins","old_version":"0.4.1","new_version":"0.4.2","repository_url":"https://github.com/executablebooks/mdit-py-plugins"},{"name":"mock","old_version":"5.1.0","new_version":"5.2.0","repository_url":"https://github.com/testing-cabal/mock"},{"name":"more-itertools","old_version":"10.4.0","new_version":"10.8.0","repository_url":"https://github.com/more-itertools/more-itertools"},{"name":"multidict","old_version":"6.0.5","new_version":"6.7.0","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"nh3","old_version":"0.2.18","new_version":"0.3.2","repository_url":"https://github.com/messense/nh3"},{"name":"packaging","old_version":"24.1","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pathspec","old_version":"0.12.1","new_version":"1.0.3","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"pbr","old_version":"6.1.0","new_version":"7.0.3"},{"name":"perky","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/larryhastings/perky"},{"name":"pip","old_version":"24.2","new_version":"25.3","repository_url":"https://github.com/pypa/pip"},{"name":"pkginfo","old_version":"1.10.0","new_version":"1.12.1.2"},{"name":"platformdirs","old_version":"4.2.2","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"psycopg","old_version":"3.1.18","new_version":"3.2.13","repository_url":"https://github.com/psycopg/psycopg"},{"name":"psycopg-binary","old_version":"3.1.18","new_version":"3.2.13","repository_url":"https://github.com/psycopg/psycopg"},{"name":"psycopg-pool","old_version":"3.2.2","new_version":"3.2.8","repository_url":"https://github.com/psycopg/psycopg"},{"name":"pycodestyle","old_version":"2.11.1","new_version":"2.14.0","repository_url":"https://github.com/PyCQA/pycodestyle"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pydantic","old_version":"2.8.2","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-core","old_version":"2.20.1","new_version":"2.41.5","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pyflakes","old_version":"3.1.0","new_version":"3.4.0","repository_url":"https://github.com/PyCQA/pyflakes"},{"name":"pygments","old_version":"2.18.0","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pyparsing","old_version":"3.1.4","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyproject-api","old_version":"1.7.1","new_version":"1.9.1","repository_url":"https://github.com/tox-dev/pyproject-api"},{"name":"pyproject-hooks","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/pypa/pyproject-hooks"},{"name":"python-daemon","old_version":"3.0.1","new_version":"3.1.2"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"readme-renderer","old_version":"43.0","new_version":"44.0","repository_url":"https://github.com/pypa/readme_renderer"},{"name":"referencing","old_version":"0.35.1","new_version":"0.36.2","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"resolvelib","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/sarugaku/resolvelib"},{"name":"rich","old_version":"13.8.0","new_version":"14.3.1","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.20.0","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"rstcheck","old_version":"6.2.4","new_version":"6.2.5","repository_url":"https://github.com/rstcheck/rstcheck"},{"name":"rstcheck-core","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/rstcheck/rstcheck-core"},{"name":"ruamel-yaml","old_version":"0.18.6","new_version":"0.19.1"},{"name":"ruamel-yaml-clib","old_version":"0.2.8","new_version":"0.2.15"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smmap","old_version":"5.0.1","new_version":"5.0.2","repository_url":"https://github.com/gitpython-developers/smmap"},{"name":"snowballstemmer","old_version":"2.2.0","new_version":"3.0.1","repository_url":"https://github.com/snowballstem/snowball"},{"name":"sphinx-ansible-theme","old_version":"0.10.3","new_version":"0.10.4","repository_url":"https://github.com/ansible-community/sphinx_ansible_theme"},{"name":"sphinx-rtd-theme","old_version":"2.0.0","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"tomli","old_version":"2.0.1","new_version":"2.4.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"twine","old_version":"5.1.1","new_version":"6.2.0","repository_url":"https://github.com/pypa/twine"},{"name":"typer","old_version":"0.12.5","new_version":"0.21.1","repository_url":"https://github.com/fastapi/typer"},{"name":"typer-config","old_version":"1.4.0","new_version":"1.4.2","repository_url":"https://github.com/maxb2/typer-config"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"1.26.20","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"virtualenv","old_version":"20.26.3","new_version":"20.36.1","repository_url":"https://github.com/pypa/virtualenv"},{"name":"wcmatch","old_version":"9.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"},{"name":"websockets","old_version":"13.0.1","new_version":"15.0.1","repository_url":"https://github.com/python-websockets/websockets"},{"name":"wrapt","old_version":"1.16.0","new_version":"2.0.1","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"yamllint","old_version":"1.35.1","new_version":"1.37.1","repository_url":"https://github.com/adrienverge/yamllint"},{"name":"yarl","old_version":"1.9.8","new_version":"1.22.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"zipp","old_version":"3.20.1","new_version":"3.23.0","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 107 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.4.0` | `2.6.1` |\n| [aioitertools](https://github.com/omnilib/aioitertools) | `0.12.0` | `0.13.0` |\n| [aiokafka](https://github.com/aio-libs/aiokafka) | `0.11.0` | `0.12.0` |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [ansible-builder](https://github.com/ansible/ansible-builder) | `3.1.0` | `3.1.1` |\n| [ansible-compat](https://github.com/ansible/ansible-compat) | `24.8.0` | `24.10.0` |\n| [ansible-pygments](https://github.com/ansible-community/ansible-pygments) | `0.1.1` | `0.1.2` |\n| [ansible-runner](https://github.com/ansible/ansible-runner) | `2.4.0` | `2.4.2` |\n| [antsibull-changelog](https://github.com/ansible-community/antsibull-changelog) | `0.29.0` | `0.35.0` |\n| [antsibull-core](https://github.com/ansible-community/antsibull-core) | `3.0.2` | `3.5.0` |\n| [antsibull-docs](https://github.com/ansible-community/antsibull-docs) | `2.13.1` | `2.24.0` |\n| [antsibull-docs-parser](https://github.com/ansible-community/antsibull-docs-parser) | `1.1.0` | `1.2.2` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.30.2` | `1.38.0` |\n| [babel](https://github.com/python-babel/babel) | `2.16.0` | `2.17.0` |\n| bindep | `2.11.0` | `2.13.0` |\n| [black](https://github.com/psf/black) | `24.8.0` | `25.11.0` |\n| [botocore](https://github.com/boto/botocore) | `1.35.7` | `1.42.34` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5` | `2.6` |\n| [build](https://github.com/pypa/build) | `1.2.1` | `1.4.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.5.0` | `6.2.4` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.8.30` | `2026.1.4` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.0` | `2.0.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.1.8` |\n| [cryptography](https://github.com/pyca/cryptography) | `43.0.1` | `46.0.3` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.8` | `0.4.0` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.20.1` | `0.22.4` |\n| [drools-jpy](https://github.com/ansible/drools_jpy) | `0.3.9` | `0.3.14` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.15.4` | `3.19.1` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.4.1` | `1.8.0` |\n| [galaxy-importer](https://github.com/ansible/galaxy-importer) | `0.4.24` | `0.4.37` |\n| [gitdb](https://github.com/gitpython-developers/gitdb) | `4.0.11` | `4.0.12` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.43` | `3.1.46` |\n| [idna](https://github.com/kjd/idna) | `3.8` | `3.11` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.2.1` | `8.7.1` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.1.0` |\n| [isodate](https://github.com/gweis/isodate) | `0.6.1` | `0.7.2` |\n| [janus](https://github.com/aio-libs/janus) | `1.0.0` | `2.0.0` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.0.1` | `6.1.0` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) | `4.0.2` | `4.4.0` |\n| [jinja2](https://github.com/pallets/jinja) | `3.1.4` | `3.1.6` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [jpy](https://github.com/jpy-consortium/jpy) | `0.18.0` | `1.3.0` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2023.12.1` | `2025.9.1` |\n| [keyring](https://github.com/jaraco/keyring) | `25.3.0` | `25.7.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.7` | `3.9` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `2.1.5` | `3.0.3` |\n| [mdit-py-plugins](https://github.com/executablebooks/mdit-py-plugins) | `0.4.1` | `0.4.2` |\n| [mock](https://github.com/testing-cabal/mock) | `5.1.0` | `5.2.0` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.4.0` | `10.8.0` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.0.5` | `6.7.0` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [nh3](https://github.com/messense/nh3) | `0.2.18` | `0.3.2` |\n| [packaging](https://github.com/pypa/packaging) | `24.1` | `26.0` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `0.12.1` | `1.0.3` |\n| [pbr](https://docs.openstack.org/pbr/latest/) | `6.1.0` | `7.0.3` |\n| [perky](https://github.com/larryhastings/perky) | `0.9.2` | `0.9.3` |\n| [pip](https://github.com/pypa/pip) | `24.2` | `25.3` |\n| [pkginfo](https://code.launchpad.net/~tseaver/pkginfo/trunk) | `1.10.0` | `1.12.1.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.2.2` | `4.4.0` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.1.18` | `3.2.13` |\n| [psycopg-binary](https://github.com/psycopg/psycopg) | `3.1.18` | `3.2.13` |\n| [psycopg-pool](https://github.com/psycopg/psycopg) | `3.2.2` | `3.2.8` |\n| [pycodestyle](https://github.com/PyCQA/pycodestyle) | `2.11.1` | `2.14.0` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.8.2` | `2.12.5` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.20.1` | `2.41.5` |\n| [pyflakes](https://github.com/PyCQA/pyflakes) | `3.1.0` | `3.4.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.19.2` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.1.4` | `3.3.2` |\n| [pyproject-api](https://github.com/tox-dev/pyproject-api) | `1.7.1` | `1.9.1` |\n| [pyproject-hooks](https://github.com/pypa/pyproject-hooks) | `1.1.0` | `1.2.0` |\n| python-daemon | `3.0.1` | `3.1.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.1` |\n| [readme-renderer](https://github.com/pypa/readme_renderer) | `43.0` | `44.0` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.36.2` |\n| [resolvelib](https://github.com/sarugaku/resolvelib) | `1.0.1` | `1.2.1` |\n| [rich](https://github.com/Textualize/rich) | `13.8.0` | `14.3.1` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.0` | `0.27.1` |\n| [rstcheck](https://github.com/rstcheck/rstcheck) | `6.2.4` | `6.2.5` |\n| [rstcheck-core](https://github.com/rstcheck/rstcheck-core) | `1.2.1` | `1.2.2` |\n| ruamel-yaml | `0.18.6` | `0.19.1` |\n| ruamel-yaml-clib | `0.2.8` | `0.2.15` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smmap](https://github.com/gitpython-developers/smmap) | `5.0.1` | `5.0.2` |\n| [snowballstemmer](https://github.com/snowballstem/snowball) | `2.2.0` | `3.0.1` |\n| [sphinx-ansible-theme](https://github.com/ansible-community/sphinx_ansible_theme) | `0.10.3` | `0.10.4` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `2.0.0` | `3.1.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.0.1` | `2.4.0` |\n| [twine](https://github.com/pypa/twine) | `5.1.1` | `6.2.0` |\n| [typer](https://github.com/fastapi/typer) | `0.12.5` | `0.21.1` |\n| [typer-config](https://github.com/maxb2/typer-config) | `1.4.0` | `1.4.2` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `1.26.20` | `2.6.3` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.26.3` | `20.36.1` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `9.0` | `10.1` |\n| [websockets](https://github.com/python-websockets/websockets) | `13.0.1` | `15.0.1` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.16.0` | `2.0.1` |\n| [yamllint](https://github.com/adrienverge/yamllint) | `1.35.1` | `1.37.1` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.9.8` | `1.22.0` |\n| [zipp](https://github.com/jaraco/zipp) | `3.20.1` | `3.23.0` |\n\n\nUpdates `aiofiles` from 24.1.0 to 25.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Tinche/aiofiles/releases\"\u003eaiofiles's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev25.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to \u003ca href=\"https://docs.astral.sh/uv/\"\u003euv\u003c/a\u003e + add Python v3.14 support.  (\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eruff\u003c/code\u003e formatter and linter. \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/216\"\u003e#216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 support. If you require it, use version 24.1.0. \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/204\"\u003e#204\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danielsmyers\"\u003e\u003ccode\u003e@​danielsmyers\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/185\"\u003eTinche/aiofiles#185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stankudrow\"\u003e\u003ccode\u003e@​stankudrow\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/192\"\u003eTinche/aiofiles#192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/221\"\u003eTinche/aiofiles#221\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0\"\u003ehttps://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Tinche/aiofiles/blob/main/CHANGELOG.md\"\u003eaiofiles's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.1.0 (2025-10-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to \u003ca href=\"https://docs.astral.sh/uv/\"\u003euv\u003c/a\u003e + add Python v3.14 support.\n(\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eruff\u003c/code\u003e formatter and linter.\n\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/216\"\u003e#216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 support. If you require it, use version 24.1.0.\n\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/204\"\u003e#204\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/348f5ef6561c2b2c8a7497bd10487eab4102332f\"\u003e\u003ccode\u003e348f5ef\u003c/code\u003e\u003c/a\u003e v25.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/5e1bb8f12b09bce440cc9d1e28387d239cbc2577\"\u003e\u003ccode\u003e5e1bb8f\u003c/code\u003e\u003c/a\u003e docs: update readme to use ruff badge (\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/issues/221\"\u003e#221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/6fdc25c7812d6738ccf51c5e7d4cd68500053a52\"\u003e\u003ccode\u003e6fdc25c\u003c/code\u003e\u003c/a\u003e Move to uv. (\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/1989132423dc300c61e22434abd02725e922ddeb\"\u003e\u003ccode\u003e1989132\u003c/code\u003e\u003c/a\u003e set 'function' as a default fixture loop scope value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/8986452a1b28b109903078f8e9a805ec01e248a6\"\u003e\u003ccode\u003e8986452\u003c/code\u003e\u003c/a\u003e add the 'asyncio_default_fixture_loop_scope=session' option\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/ccab1ff77640c59b353046cb528c25ffa11caa73\"\u003e\u003ccode\u003eccab1ff\u003c/code\u003e\u003c/a\u003e update pytest-asyncio==1.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/8727c96f5be46235af412a9fe504ba7c149df7f3\"\u003e\u003ccode\u003e8727c96\u003c/code\u003e\u003c/a\u003e add PR \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/issues/216\"\u003e#216\u003c/a\u003e into the CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/a9388e5f8de9142c3e920917775e741bbf9f73b2\"\u003e\u003ccode\u003ea9388e5\u003c/code\u003e\u003c/a\u003e add TID and ignore TID252\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/760366489aed1fb041ef35652e2babb1870973d0\"\u003e\u003ccode\u003e7603664\u003c/code\u003e\u003c/a\u003e remove [ruff].exclude keyval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/7c49a5c5f2520233198487145423a7842805d740\"\u003e\u003ccode\u003e7c49a5c\u003c/code\u003e\u003c/a\u003e add final newlines\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiohappyeyeballs` from 2.4.0 to 2.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/releases\"\u003eaiohappyeyeballs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.6.1 (2025-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve TypeError on import for Python \u0026lt; 3.9.2 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/151\"\u003e#151\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/2042c82f9978f41c31b58aa4e3d8fc3b9c3ec2ec\"\u003e\u003ccode\u003e2042c82\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.6.0...v2.6.1\"\u003ev2.6.0...v2.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.6.0 (2025-03-11)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edocs\u003c/strong\u003e: Publish documentation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/149\"\u003e#149\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/42352736d12c60d500c63b9598ffab05ef5e8829\"\u003e\u003ccode\u003e4235273\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCreates an api_reference.rst file to expose the existing documentation for the few functions that have docstrings, as well as add documentation for AddrInfoType and SocketFactoryType. Now, these can be properly pointed to by other projects' documentation.\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.5.0...v2.6.0\"\u003ev2.5.0...v2.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.5.0 (2025-03-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd callback for users to customize socket creation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/147\"\u003e#147\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/8e1bc6a4bc6282ccf29db441c33dd8d806003ffd\"\u003e\u003ccode\u003e8e1bc6a\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCo-authored-by: Kieren \u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.4.8...v2.5.0\"\u003ev2.4.8...v2.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.4.8 (2025-03-04)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClose runner up sockets in the event there are multiple winners (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/143\"\u003e#143\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/476a05b956627700baa84eb6aac28c395da92a9f\"\u003e\u003ccode\u003e476a05b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe first attempt to fix this was to use the cpython staggered race updates in \u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/142\"\u003e#142\u003c/a\u003e but there is still a race there where there can be multiple winners. Instead we now accept that we will not be able to cancel all coros in time and there will always be a risk of multiple winners. We store all sockets in a set that were not already cleaned up and we close all but the first winner after the staggered race finishes.\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.4.7...v2.4.8\"\u003ev2.4.7...v2.4.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.4.7 (2025-03-04)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/blob/main/CHANGELOG.md\"\u003eaiohappyeyeballs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.6.1 (2025-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve typeerror on import for python \u0026lt; 3.9.2 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/151\"\u003e#151\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/2042c82f9978f41c31b58aa4e3d8fc3b9c3ec2ec\"\u003e\u003ccode\u003e2042c82\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.6.0 (2025-03-11)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish documentation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/149\"\u003e#149\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/42352736d12c60d500c63b9598ffab05ef5e8829\"\u003e\u003ccode\u003e4235273\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.0 (2025-03-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd callback for users to customize socket creation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/147\"\u003e#147\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/8e1bc6a4bc6282ccf29db441c33dd8d806003ffd\"\u003e\u003ccode\u003e8e1bc6a\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.8 (2025-03-04)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClose runner up sockets in the event there are multiple winners (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/143\"\u003e#143\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/476a05b956627700baa84eb6aac28c395da92a9f\"\u003e\u003ccode\u003e476a05b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.7 (2025-03-04)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve warnings when running tests (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/144\"\u003e#144\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/e96264aec89b9bd34d37413f610d039c56393a48\"\u003e\u003ccode\u003ee96264a\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.6 (2025-02-07)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure all timers are cancelled when after staggered race finishes (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/136\"\u003e#136\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/f75891d8974693b24af9789a8981ed7f6bc55c5c\"\u003e\u003ccode\u003ef75891d\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.5 (2025-02-07)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKeep classifiers in project to avoid automatic enrichment (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/134\"\u003e#134\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/99edb20e9d3e53ead65b55cb3e93c22c03d06599\"\u003e\u003ccode\u003e99edb20\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove classifiers to prevent recalculation by poetry (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/131\"\u003e#131\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/66e1c90ae81f71c7039cd62c60417a96202d906c\"\u003e\u003ccode\u003e66e1c90\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.4 (2024-11-30)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle oserror on failure to close socket instead of raising indexerror (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/114\"\u003e#114\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/c542f684d329fed04093caa2b31d8f7f6e0e0949\"\u003e\u003ccode\u003ec542f68\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.3 (2024-09-30)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/e3bd5bdf44f5d187802de6dcb08d27e1ca6da048\"\u003e\u003ccode\u003ee3bd5bd\u003c/code\u003e\u003c/a\u003e 2.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/2042c82f9978f41c31b58aa4e3d8fc3b9c3ec2ec\"\u003e\u003ccode\u003e2042c82\u003c/code\u003e\u003c/a\u003e fix: resolve TypeError on import for Python \u0026lt; 3.9.2 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/b23d9194d6db1c4d237da0da623a081573385915\"\u003e\u003ccode\u003eb23d919\u003c/code\u003e\u003c/a\u003e chore: remove unused CI exclude for Python 3.8.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/36149e7194d9a24fc8109265dee80fecd362f449\"\u003e\u003ccode\u003e36149e7\u003c/code\u003e\u003c/a\u003e 2.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/42352736d12c60d500c63b9598ffab05ef5e8829\"\u003e\u003ccode\u003e4235273\u003c/code\u003e\u003c/a\u003e feat(docs): publish documentation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/17d5e48488f7b533efea33ebb89c25e7b4eda7ad\"\u003e\u003ccode\u003e17d5e48\u003c/code\u003e\u003c/a\u003e chore(pre-commit.ci): pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/148\"\u003e#148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/3fed4432036740392483608a9da86637cf1bd64b\"\u003e\u003ccode\u003e3fed443\u003c/code\u003e\u003c/a\u003e 2.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/8e1bc6a4bc6282ccf29db441c33dd8d806003ffd\"\u003e\u003ccode\u003e8e1bc6a\u003c/code\u003e\u003c/a\u003e feat: add callback for users to customize socket creation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/c4ab1e5409fe086c12932e47dc4a305eb15b4091\"\u003e\u003ccode\u003ec4ab1e5\u003c/code\u003e\u003c/a\u003e 2.4.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/476a05b956627700baa84eb6aac28c395da92a9f\"\u003e\u003ccode\u003e476a05b\u003c/code\u003e\u003c/a\u003e fix: close runner up sockets in the event there are multiple winners (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.4.0...v2.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aioitertools` from 0.12.0 to 0.13.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aioitertools/blob/main/CHANGELOG.md\"\u003eaioitertools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.13.0\u003c/h2\u003e\n\u003cp\u003eMaintenance release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eModernized project metadata (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed references to old branch (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/209\"\u003e#209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTested up to Python 3.14 (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse modern type annotations, clean up lint (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/219\"\u003e#219\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/220\"\u003e#220\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/221\"\u003e#221\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.12.0...v0.13.0\n     1\tAlireza Ghasemi\n     6\tAmethyst Reese\n    10\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/47a2068abc2c7e34bff1a188cb5ce66fa24d9404\"\u003e\u003ccode\u003e47a2068\u003c/code\u003e\u003c/a\u003e Version bump v0.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/e1a9219e58fb948223c292715e83ec1281c3a5e2\"\u003e\u003ccode\u003ee1a9219\u003c/code\u003e\u003c/a\u003e Enable RUF rules (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/221\"\u003e#221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/a744b4a9951aaa92fabb85fc401a7c287755eeee\"\u003e\u003ccode\u003ea744b4a\u003c/code\u003e\u003c/a\u003e Ruff upgrade lint fixes (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/220\"\u003e#220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/3bcf4e9bef9154589ee90b0bf9185f0fe04e1c39\"\u003e\u003ccode\u003e3bcf4e9\u003c/code\u003e\u003c/a\u003e Switch from flake8 to ruff (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/1e3e55cd0fe6ee61064d2c325fb0617f08e83f4a\"\u003e\u003ccode\u003e1e3e55c\u003c/code\u003e\u003c/a\u003e Bump ufmt from 2.7.1 to 2.8.0 (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/198\"\u003e#198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/4c8b4f8a873cf66a4c729002ddc74b4bf32f03ab\"\u003e\u003ccode\u003e4c8b4f8\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.1.1 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/8524be5b77433e81eb6ecf8739ffe38844e6ca8f\"\u003e\u003ccode\u003e8524be5\u003c/code\u003e\u003c/a\u003e Bump black from 24.8.0 to 25.9.0 (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/218\"\u003e#218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/78e7205fb4d85686b5e459152ddc06fc1feee538\"\u003e\u003ccode\u003e78e7205\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.11.2 to 1.18.2 (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/eafa768f4274f922cfe74afaa1bfb5549f887fb6\"\u003e\u003ccode\u003eeafa768\u003c/code\u003e\u003c/a\u003e Bump coverage from 7.6.1 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/216\"\u003e#216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aioitertools/commit/15c764cfe45e9972e27bef5cb66a12fdf8a3f577\"\u003e\u003ccode\u003e15c764c\u003c/code\u003e\u003c/a\u003e Bump flit from 3.9.0 to 3.12.0 (\u003ca href=\"https://redirect.github.com/omnilib/aioitertools/issues/214\"\u003e#214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aioitertools/compare/v0.12.0...v0.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiokafka` from 0.11.0 to 0.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiokafka/releases\"\u003eaiokafka's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.12.0\u003c/h2\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBuild mac x86_64 wheels (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1029\"\u003e#1029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13, drop support for Python 3.8 due to end of life (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove duplicate error logging during rebalance (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1025\"\u003e#1025\u003c/a\u003e by \u003ca href=\"https://github.com/y4n9squared\"\u003e\u003ccode\u003e@​y4n9squared\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eQuote username in SCRAM auth (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1043\"\u003e#1043\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eImproved Documentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix building of readthedocs documentation (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1034\"\u003e#1034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo in producer documentation (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1036\"\u003e#1036\u003c/a\u003e by \u003ca href=\"https://github.com/lgo\"\u003e\u003ccode\u003e@​lgo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiokafka/blob/master/CHANGES.rst\"\u003eaiokafka's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.12.0 (2024-10-26)\u003c/h1\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBuild mac x86_64 wheels (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1029\"\u003e#1029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13, drop support for Python 3.8 due to end of life (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove duplicate error logging during rebalance (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1025\"\u003e#1025\u003c/a\u003e by \u003ca href=\"https://github.com/y4n9squared\"\u003e\u003ccode\u003e@​y4n9squared\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eQuote username in SCRAM auth (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1043\"\u003e#1043\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eImproved Documentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix building of readthedocs documentation (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1034\"\u003e#1034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo in producer documentation (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1036\"\u003e#1036\u003c/a\u003e by \u003ca href=\"https://github.com/lgo\"\u003e\u003ccode\u003e@​lgo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/f6c79a086f1d5cf2b6e94e65db05970c4729c7a0\"\u003e\u003ccode\u003ef6c79a0\u003c/code\u003e\u003c/a\u003e Update actions, fix publishing (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/71335629d503cb3ad260de662e23c32402c8368b\"\u003e\u003ccode\u003e7133562\u003c/code\u003e\u003c/a\u003e Prepare 0.12.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/f7861f682c9b5cd78411e7fd6ea0fc4bf92ded33\"\u003e\u003ccode\u003ef7861f6\u003c/code\u003e\u003c/a\u003e Remove duplicate error log during rebalance (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/e7c9033b7d44c691073e9e25438f2c8ec523a14f\"\u003e\u003ccode\u003ee7c9033\u003c/code\u003e\u003c/a\u003e Add Python 3.13, remove 3.8 (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/608ab2443510c92226de0eb3fc2065f5d1307e12\"\u003e\u003ccode\u003e608ab24\u003c/code\u003e\u003c/a\u003e Fix ClusterMetadata request_update() (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/4cff9d77014e922c6e458224ed6abbae4fa07c4d\"\u003e\u003ccode\u003e4cff9d7\u003c/code\u003e\u003c/a\u003e Made classes enum.IntEnums where appropriate. (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/01c60cd9c45e975aee8d4932247108a9e639d026\"\u003e\u003ccode\u003e01c60cd\u003c/code\u003e\u003c/a\u003e Quote username in SCRAM auth (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1043\"\u003e#1043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/e2afc034b59626242b51b06b30a62c565ef491d9\"\u003e\u003ccode\u003ee2afc03\u003c/code\u003e\u003c/a\u003e fix type on producer docs (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1036\"\u003e#1036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/f9dbed1a00337971e6569c6611a98c1ab294fe98\"\u003e\u003ccode\u003ef9dbed1\u003c/code\u003e\u003c/a\u003e Add readthedocs config (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1034\"\u003e#1034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/2f976d0301682f0fe631c04c08d653be0d20ccb1\"\u003e\u003ccode\u003e2f976d0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1030\"\u003e#1030\u003c/a\u003e from webknjaz/maintenance/gha-pypi-tokenless-publishing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiokafka/compare/v0.11.0...v0.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ansible-builder` from 3.1.0 to 3.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible/ansible-builder/releases\"\u003eansible-builder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: capitalize 'as' to follow from-as-casing rule (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet file permissions on context files created from inline reqs (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/751\"\u003e#751\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew 3.1 porting guide (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/701\"\u003e#701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd simple EE file example by (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/739\"\u003e#739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd scenario guide for validating Python deps (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ansible/ansible-builder/compare/3.1.0...3.1.1\"\u003ehttps://github.com/ansible/ansible-builder/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/ea0df628f9d36b34d64b0d93f3491ecd17ef4426\"\u003e\u003ccode\u003eea0df62\u003c/code\u003e\u003c/a\u003e Add scenario guide for validating Python deps (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/757\"\u003e#757\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/97f046fac1f7b7bdbaae17b2efda0837d86362db\"\u003e\u003ccode\u003e97f046f\u003c/code\u003e\u003c/a\u003e Increase integration test timeout to 9m (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/754\"\u003e#754\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/ecc55c1205ba48f24ad08820f8ad9629d076a4fa\"\u003e\u003ccode\u003eecc55c1\u003c/code\u003e\u003c/a\u003e Set file permissions on context files created from inline reqs (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/748\"\u003e#748\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/751\"\u003e#751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/ba2be48febb6a4440bbc0f67c63f5c71dfc32d15\"\u003e\u003ccode\u003eba2be48\u003c/code\u003e\u003c/a\u003e Add simple EE file example (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/737\"\u003e#737\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/739\"\u003e#739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/4af7213490232d5b9fbf2576c6370fd40f75adc4\"\u003e\u003ccode\u003e4af7213\u003c/code\u003e\u003c/a\u003e 🧪🚑 Clone deep in integration tests (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/735\"\u003e#735\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/d12c45c01d08d337a72916cf4e1a48bac16a2bd5\"\u003e\u003ccode\u003ed12c45c\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/731\"\u003e#731\u003c/a\u003e/1b659226 backport][release_3.1] 🧪 Use \u003ccode\u003ereusable-tox.yml\u003c/code\u003e @ `tox-dev/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/5defa3c9f05cfc8212abd3da57926cdc29f7e45e\"\u003e\u003ccode\u003e5defa3c\u003c/code\u003e\u003c/a\u003e docs: Fixing typo in example (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/6fb2fc098de0092e05c238bc41f596629e9d6598\"\u003e\u003ccode\u003e6fb2fc0\u003c/code\u003e\u003c/a\u003e Fix doc errors in 3.1 porting guide (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/704\"\u003e#704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/5efc3cfdd63cf1f60efec6d9e99ced47c9c2ce48\"\u003e\u003ccode\u003e5efc3cf\u003c/code\u003e\u003c/a\u003e Add 3.1 porting guide (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/701\"\u003e#701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-builder/commit/49b8a5fc4c9c4839cb57c03473f50bdc8d9a6ee8\"\u003e\u003ccode\u003e49b8a5f\u003c/code\u003e\u003c/a\u003e Modify scripts/check_galaxy to return more descriptive error message(s) (\u003ca href=\"https://redirect.github.com/ansible/ansible-builder/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible/ansible-builder/compare/3.1.0...3.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ansible-compat` from 24.8.0 to 24.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible/ansible-compat/releases\"\u003eansible-compat's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev24.10.0\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for py313 (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/416\"\u003e#416\u003c/a\u003e) \u003ca href=\"https://github.com/ssbarnea\"\u003e\u003ccode\u003e@​ssbarnea\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRe-init plugin loader after collections installation (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/411\"\u003e#411\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/412\"\u003e#412\u003c/a\u003e) \u003ca href=\"https://github.com/irozet12\"\u003e\u003ccode\u003e@​irozet12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev24.9.1\u003c/h2\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid running prepare ansible paths twice (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/409\"\u003e#409\u003c/a\u003e) \u003ca href=\"https://github.com/ssbarnea\"\u003e\u003ccode\u003e@​ssbarnea\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid duplicate paths when path injection (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/407\"\u003e#407\u003c/a\u003e) \u003ca href=\"https://github.com/ssbarnea\"\u003e\u003ccode\u003e@​ssbarnea\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eProvide more detail on multiple collection installs (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/405\"\u003e#405\u003c/a\u003e) \u003ca href=\"https://github.com/mrgum\"\u003e\u003ccode\u003e@​mrgum\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev24.9.0\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd communication details (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/400\"\u003e#400\u003c/a\u003e) \u003ca href=\"https://github.com/oraNod\"\u003e\u003ccode\u003e@​oraNod\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix upload-artifact action to work with v4.4 and newer (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/403\"\u003e#403\u003c/a\u003e) \u003ca href=\"https://github.com/alisonlhart\"\u003e\u003ccode\u003e@​alisonlhart\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/ba624e9511a76f29fd12cff3e01feef1458d3acf\"\u003e\u003ccode\u003eba624e9\u003c/code\u003e\u003c/a\u003e Bump the dependencies group in /.config with 5 updates (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/6d9524e282a0f5078dfdaf9d01e620493076496d\"\u003e\u003ccode\u003e6d9524e\u003c/code\u003e\u003c/a\u003e Add support for py313 (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/416\"\u003e#416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/264a2785eb278406a5b93b9c5a8a1979eee5cc11\"\u003e\u003ccode\u003e264a278\u003c/code\u003e\u003c/a\u003e chore: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/415\"\u003e#415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/1f01f448542e4c258dfa1ed5ea84eab655ddc43b\"\u003e\u003ccode\u003e1f01f44\u003c/code\u003e\u003c/a\u003e Replace pip-compile with uv pip compile (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/419\"\u003e#419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/43f75ebf417fa914da59f12781aecea6566822ed\"\u003e\u003ccode\u003e43f75eb\u003c/code\u003e\u003c/a\u003e Fix tests (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/420\"\u003e#420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/29430b1fe77b02e4c7a5073cefb2a04a67fec338\"\u003e\u003ccode\u003e29430b1\u003c/code\u003e\u003c/a\u003e Tune dependabot config (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/417\"\u003e#417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/e247f3fab0400f97df08498c9e2cdf34025f1ba8\"\u003e\u003ccode\u003ee247f3f\u003c/code\u003e\u003c/a\u003e Re-init plugin loader after collections installation (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/411\"\u003e#411\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/18c671e23c1d4fa91fd372fca24474b89e31832c\"\u003e\u003ccode\u003e18c671e\u003c/code\u003e\u003c/a\u003e Bump coactions/dynamic-matrix from 3 to 4 (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/414\"\u003e#414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/ebe0b2c89717cf7567071b540461f878cefa8185\"\u003e\u003ccode\u003eebe0b2c\u003c/code\u003e\u003c/a\u003e chore: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/413\"\u003e#413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/16538ab64884462d8afdf35b97cb1f02299cef69\"\u003e\u003ccode\u003e16538ab\u003c/code\u003e\u003c/a\u003e Add template for bug reports (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible/ansible-compat/compare/v24.8.0...v24.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ansible-pygments` from 0.1.1 to 0.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/ansible-pygments/releases\"\u003eansible-pygments's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.2\u003c/h2\u003e\n\u003cp\u003eMaintenance release to ensure that releasing still works.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/cb4a39bef9e4a4169dce502f2f198016967506bb\"\u003e\u003ccode\u003ecb4a39b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/70\"\u003e#70\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/be3cc3b5e5d7264e842938197acca8d6434ec49f\"\u003e\u003ccode\u003ebe3cc3b\u003c/code\u003e\u003c/a\u003e Bump the ci group with 5 updates (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/73\"\u003e#73\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/2e506fd496d33cc3a34673555c5bb18e357d6214\"\u003e\u003ccode\u003e2e506fd\u003c/code\u003e\u003c/a\u003e Fix dependabot config. (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/72\"\u003e#72\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/5f5bc32fb5f6c8c96c1b13660365fee67f90f7b2\"\u003e\u003ccode\u003e5f5bc32\u003c/code\u003e\u003c/a\u003e Add dependabot config (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/60\"\u003e#60\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/73fac92d94987a1ab87ec5aa85db1a117a7785a8\"\u003e\u003ccode\u003e73fac92\u003c/code\u003e\u003c/a\u003e Fix CI: avoid deprecated poetry section, drop macOS and Windows from CI matri...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/149a793087a789e6a1905716f69ebec77e610b25\"\u003e\u003ccode\u003e149a793\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/69\"\u003e#69\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/bc64e01b0c536ec2cc03ffc470d65eae088632c0\"\u003e\u003ccode\u003ebc64e01\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/68\"\u003e#68\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/709e4e3109a0fc6eabcea757686d0d4635e1f549\"\u003e\u003ccode\u003e709e4e3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/67\"\u003e#67\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/dec1d0799c1f029532faefed2e1b25cb55d6aed8\"\u003e\u003ccode\u003edec1d07\u003c/code\u003e\u003c/a\u003e Require Python 3.9+; add Python 3.12 and 3.13 to CI (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/64\"\u003e#64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/c50df0f4486185b463a78fd4ad8d4cb68f1bac1f\"\u003e\u003ccode\u003ec50df0f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/66\"\u003e#66\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible-community/ansible-pygments/compare/0.1.1...0.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ansible-runner` from 2.4.0 to 2.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible/ansible-runner/releases\"\u003eansible-runner's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShort circuit display wrapper of the callback plugin within forks (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/pull/1414\"\u003eansible/ansible-runner#1414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove EOF log messages when streaming (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/pull/1458\"\u003eansible/ansible-runner#1458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ansible/ansible-runner/compare/2.4.1...2.4.2\"\u003ehttps://github.com/ansible/ansible-runner/compare/2.4.1...2.4.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eModify volume mount behavior when source does not exist (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1408\"\u003e#1408\u003c/a\u003e). Volumes specified using the \u003ccode\u003econtainer-volume-mount\u003c/code\u003e option will now be passed through to the underlying container engine unverified and unmodified. This now allows you to mount individual files (vs. the parent directory) and non-existing source volumes. The behavior encountered with a non-existing source volume depends on which container engine is in use (\u003ccode\u003edocker\u003c/code\u003e creates the volume, \u003ccode\u003epodman\u003c/code\u003e will error).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVarious documentation updates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ansible/ansible-runner/compare/2.4.0...2.4.1\"\u003ehttps://github.com/ansible/ansible-runner/compare/2.4.0...2.4.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/aa1d85044c197f8bd03ba1824c6de4510bab30ee\"\u003e\u003ccode\u003eaa1d850\u003c/code\u003e\u003c/a\u003e Improve EOF log messages when streaming (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1454\"\u003e#1454\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1458\"\u003e#1458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/23d1720a2f29ef2518e4bede106e88545ad2625f\"\u003e\u003ccode\u003e23d1720\u003c/code\u003e\u003c/a\u003e Fix container build cache issue (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1449\"\u003e#1449\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/342cfc58f46c6bf0b6b6f23d91b726fa27091637\"\u003e\u003ccode\u003e342cfc5\u003c/code\u003e\u003c/a\u003e Remove wheel building from CI (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1443\"\u003e#1443\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1445\"\u003e#1445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/3dde1ffdeec743b07c9d3ef90c587db40bea8d62\"\u003e\u003ccode\u003e3dde1ff\u003c/code\u003e\u003c/a\u003e Change keepalive test boundary to 15\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/823bba55e5905fc3d9408464a62efa244fc0b579\"\u003e\u003ccode\u003e823bba5\u003c/code\u003e\u003c/a\u003e Fix CI for core 2.19.0 (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1435\"\u003e#1435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/d9bcdd514bbe6e28b950c40b542c1fe2c37cdf00\"\u003e\u003ccode\u003ed9bcdd5\u003c/code\u003e\u003c/a\u003e Remove outdated skipif fixtures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/d72b2ee9d2951b8eb06100a101500d4267b5e690\"\u003e\u003ccode\u003ed72b2ee\u003c/code\u003e\u003c/a\u003e Short circuit display wrapper in forks (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1414\"\u003e#1414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/388135bcf6b7e786d197315e02d042d246388d4f\"\u003e\u003ccode\u003e388135b\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1425\"\u003e#1425\u003c/a\u003e/827f5f65 backport][release_2.4] 🧪 Use \u003ccode\u003ereusable-tox.yml\u003c/code\u003e @ `tox-dev...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/ac1a759d95e1953549bc9af46bf46285bec99b70\"\u003e\u003ccode\u003eac1a759\u003c/code\u003e\u003c/a\u003e Bump core integration tests for core 2.18 release (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/4ff8ce3af4ace1fb1dc488bfe93e1257deedacf4\"\u003e\u003ccode\u003e4ff8ce3\u003c/code\u003e\u003c/a\u003e Modify volume mount behavior when source does not exist (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1408\"\u003e#1408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible/ansible-runner/compare/2.4.0...2.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `antsibull-changelog` from 0.29.0 to 0.35.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/releases\"\u003eantsibull-changelog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.35.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAntsibull-changelog now also depends on antsibull-docs-parser (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/213\"\u003eansible-community/antsibull-changelog#213\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14 (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/207\"\u003eansible-community/antsibull-changelog#207\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eProcess Ansible markup in plugin/module/role \u003c!-- raw HTML omitted --\u003eshort_description\u003c!-- raw HTML omitted --\u003e (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/207\"\u003eansible-community/antsibull-changelog#207\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/213\"\u003eansible-community/antsibull-changelog#213\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.34.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release for antsibull-build.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003c!-- raw HTML omitted --\u003eRSTDocumentRenderer\u003c!-- raw HTML omitted --\u003e API now allows to configure section underlines. This is needed to fix the Ansible 12 porting guide (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/203\"\u003eansible-community/antsibull-changelog#203\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.33.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eMaintenance release for fixing / deprecating certain boolean options.\u003c/p\u003e\n\u003ch3\u003eBreaking Changes / Porting Guide\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003c!-- raw HTML omitted --\u003e--strict\u003c!-- raw HTML omitted --\u003e option of the \u003c!-- raw HTML omitted --\u003elint-changelog-yaml\u003c!-- raw HTML omitted --\u003e subcommand no longer expects a parameter. It now matches what was documented (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/195\"\u003eansible-community/antsibull-changelog#195\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/196\"\u003eansible-community/antsibull-changelog#196\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe boolean valued options \u003c!-- raw HTML omitted --\u003e--is-collection\u003c!-- raw HTML omitted --\u003e and \u003c!-- raw HTML omitted --\u003e--collection-flatmap\u003c!-- raw HTML omitted --\u003e will likely change to proper flags (\u003c!-- raw HTML omitted --\u003e--flag\u003c!-- raw HTML omitted --\u003e and \u003c!-- raw HTML omitted --\u003e--no-flag`\u003c!-- raw HTML omitted --\u003e instead of \u003c!-- raw HTML omitted --\u003e--flag true\u003c!-- raw HTML omitted --\u003e/\u003c!-- raw HTML omitted --\u003e--flag false\u003c!-- raw HTML omitted --\u003e) in the near future. If you are using these options and want them to not change, or have other suggestions, please \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/issues/new\"\u003ecreate an issue in the antsibull-changelog repository\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/199\"\u003eansible-community/antsibull-changelog#199\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.32.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch3\u003eMajor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe new configuration setting \u003c!-- raw HTML omitted --\u003eoutput\u003c!-- raw HTML omitted --\u003e allows to configure more precisely which changelog files are generated and how they are formatted (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/190\"\u003eansible-community/antsibull-changelog#190\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/194\"\u003eansible-community/antsibull-changelog#194\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAntsibull-changelog now depends on Pydantic 2 (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/193\"\u003eansible-community/antsibull-changelog#193\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAntsibull-changelog now uses Pydantic to parse and validate the config. This means that validation is more strict than before and might reject configs that were incorrect, but still got accepted somehow (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/193\"\u003eansible-community/antsibull-changelog#193\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes / Porting Guide\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWhen using antsibull-changelog as a library, \u003c!-- raw HTML omitted --\u003eChangelogConfig\u003c!-- raw HTML omitted --\u003e's constructor should no longer be called directly. Instead, use the class method \u003c!-- raw HTML omitted --\u003eChangelogConfig.parse()\u003c!-- raw HTML omitted --\u003e, which has the same signature than the previous constructor, except that \u003c!-- raw HTML omitted --\u003eignore_is_other_project\u003c!-- raw HTML omitted --\u003e now must be a keyword parameter (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/193\"\u003eansible-community/antsibull-changelog#193\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/blob/main/CHANGELOG.rst\"\u003eantsibull-changelog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev0.35.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch2\u003eMinor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAntsibull-changelog now also depends on antsibull-docs-parser (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/213\"\u003eansible-community/antsibull-changelog#213\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14 (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/207\"\u003eansible-community/antsibull-changelog#207\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eProcess Ansible markup in plugin/module/role \u003ccode\u003eshort_description\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/207\"\u003eansible-community/antsibull-changelog#207\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/213\"\u003eansible-community/antsibull-changelog#213\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev0.34.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eFeature release for antsibull-build.\u003c/p\u003e\n\u003ch2\u003eMinor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eRSTDocumentRenderer\u003c/code\u003e API now allows to configure section underlines. This is needed to fix the Ansible 12 porting guide (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/203\"\u003eansible-community/antsibull-changelog#203\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev0.33.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eMaintenance release for fixing / deprecating certain boolean options.\u003c/p\u003e\n\u003ch2\u003eBreaking Changes / Porting Guide\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003e--strict\u003c/code\u003e option of the \u003ccode\u003elint-changelog-yaml\u003c/code\u003e subcommand no longer expects a parameter. It now matches what was documented (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/195\"\u003eansible-community/antsibull-changelog#195\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/196\"\u003eansible-community/antsibull-changelog#196\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecated Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe boolean valued options \u003ccode\u003e--is-collection\u003c/code\u003e and \u003ccode\u003e--collection-flatmap\u003c/code\u003e will likely change to proper flags (\u003ccode\u003e--flag\u003c/code\u003e and \u003ccode\u003e--no-flag`` instead of ``--flag true``/``--flag false``) in the near future. If you are using these options and want them to not change, or have other suggestions, please \u003c/code\u003ecreate an issue in the antsibull-changelog repository \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/issues/new\"\u003ehttps://github.com/ansible-community/antsibull-changelog/issues/new\u003c/a\u003e`__ (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/199\"\u003eansible-community/antsibull-changelog#199\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev0.32.0\u003c/h1\u003e\n\u003cp\u003eRelease Summary\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/1fe0013d3e0441552d1cde8abd68329b687e7f72\"\u003e\u003ccode\u003e1fe0013\u003c/code\u003e\u003c/a\u003e Release 0.35.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/58abbe5ab70b7da33cd34d006af23adf6d361637\"\u003e\u003ccode\u003e58abbe5\u003c/code\u003e\u003c/a\u003e Prepare 0.35.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/3c861b0a7d4cf820da4c83d6f86db5071d29ef73\"\u003e\u003ccode\u003e3c861b0\u003c/code\u003e\u003c/a\u003e Process Ansible markup for module/plugin/role short_description (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/213\"\u003e#213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/52f345cf51765075c2792abefd27ed9c7e7924df\"\u003e\u003ccode\u003e52f345c\u003c/code\u003e\u003c/a\u003e Adjust tests to changes in antsibull-fileutils.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/5fa16b580e912e1cfa009e8695f3f0ffb29f0b96\"\u003e\u003ccode\u003e5fa16b5\u003c/code\u003e\u003c/a\u003e Remove no longer necessary lint ignore.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/2069da37431a5fe447cc3ababac67e8f8776df13\"\u003e\u003ccode\u003e2069da3\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the ci group (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/9c82eabac8ffadd097be0ff13691b45548b24b9b\"\u003e\u003ccode\u003e9c82eab\u003c/code\u003e\u003c/a\u003e Bump wntrblm/nox from 2025.10.16 to 2025.11.12 in the ci group (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/211\"\u003e#211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/372f87c01391a20f002f3d9bf564a8d340e6a124\"\u003e\u003ccode\u003e372f87c\u003c/code\u003e\u003c/a\u003e Adjust URLs. (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/2b1e1096ed7d9b2d98a422811c00013422eff927\"\u003e\u003ccode\u003e2b1e109\u003c/code\u003e\u003c/a\u003e Bump wntrblm/nox from 2025.05.01 to 2025.10.16 in the ci group (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/209\"\u003e#209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/e4148eea4cddd7c86da284f1a352ec01acd1e1f5\"\u003e\u003ccode\u003ee4148ee\u003c/code\u003e\u003c/a\u003e Support Python 3.14. (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/compare/0.29.0...0.35.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `antsibull-core` from 3.0.2 to 3.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/antsibull-core/releases\"\u003eantsibull-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature and maintenance release.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd logging wrapper classes to simplify switch from twiggy to the standard logging framework (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/issues/39\"\u003eansible-community/antsibull-core#39\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/188\"\u003eansible-community/antsibull-core#188\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14 (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/191\"\u003eansible-community/antsibull-core#191\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.4.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow information on removed or deprecated collections to be updated. This is needed to generate a consistent changelog (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/177\"\u003eansible-community/antsibull-core#17...\n\n_Description has been truncated_","html_url":"https://github.com/ansible/event-driven-ansible/pull/503","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansible%2Fevent-driven-ansible/issues/503","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/503/packages"}},{"old_version":"1.3.2","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2025-12-22T00:23:02.000Z","version_change":"1.3.2 → 1.4.0","issue":{"uuid":"3751820407","node_id":"PR_kwDOMaSXqs66CeZr","number":12,"state":"closed","title":"Bump aiosignal from 1.3.2 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-28T20:35:48.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T00:23:02.000Z","updated_at":"2025-12-28T20:35:50.000Z","time_to_close":591166,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"aiosignal","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"}],"path":null,"ecosystem":"pip"},"body":"Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.2 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.2...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal\u0026package-manager=pip\u0026previous-version=1.3.2\u0026new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ezedeem223/fast-api/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezedeem223%2Ffast-api/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":"/api_service","pr_created_at":"2025-12-16T17:31:36.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"3735697967","node_id":"PR_kwDOQpLIbs65M5J-","number":55,"state":"closed","title":"chore(deps)(deps): bump aiosignal from 1.3.1 to 1.4.0 in /api_service","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-16T17:35:39.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-16T17:31:36.000Z","updated_at":"2025-12-16T17:35:47.000Z","time_to_close":243,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps)","packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"}],"path":"/api_service","ecosystem":"pip"},"body":"Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal\u0026package-manager=pip\u0026previous-version=1.3.1\u0026new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/todd2982/SuggestArr/pull/55","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/todd2982%2FSuggestArr/issues/55","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/55/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2025-12-15T07:29:30.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"3729140706","node_id":"PR_kwDOKXLyYM642uEF","number":110,"state":"closed","title":"Bump the python-deps group across 1 directory with 46 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-17T07:23:33.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-15T07:29:30.000Z","updated_at":"2025-12-17T07:23:35.000Z","time_to_close":172443,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-deps","update_count":46,"packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"asgiref","old_version":"3.9.1","new_version":"3.11.0","repository_url":"https://github.com/django/asgiref"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"attrs","old_version":"23.1.0","new_version":"25.4.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"cachetools","old_version":"5.3.2","new_version":"6.2.3","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.8.3","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.6.1","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"flask-cors","old_version":"6.0.0","new_version":"6.0.2","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"frozenlist","old_version":"1.7.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"greenlet","old_version":"3.2.4","new_version":"3.3.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"importlib-metadata","old_version":"6.8.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"multidict","old_version":"6.6.4","new_version":"6.7.0","repository_url":"https://github.com/aio-libs/multidict"},{"name":"nest-asyncio","old_version":"1.5.8","new_version":"1.6.0","repository_url":"https://github.com/erdewit/nest_asyncio"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.15.5","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"python-engineio","old_version":"4.9.0","new_version":"4.12.3","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-socketio","old_version":"5.11.2","new_version":"5.15.0","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"simple-websocket","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/miguelgrinberg/simple-websocket"},{"name":"sqlalchemy","old_version":"2.0.30","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"werkzeug","old_version":"3.0.6","new_version":"3.1.4","repository_url":"https://github.com/pallets/werkzeug"},{"name":"wsproto","old_version":"1.2.0","new_version":"1.3.2","repository_url":"https://github.com/python-hyper/wsproto"},{"name":"yarl","old_version":"1.20.1","new_version":"1.22.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"python-dotenv","old_version":"1.1.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.187.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"selenium","old_version":"4.32.0","new_version":"4.39.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"cryptography","old_version":"45.0.6","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"notion-client","old_version":"2.4.0","new_version":"2.7.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-auth-oauthlib","old_version":"1.2.2","new_version":"1.2.3","repository_url":"https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib"},{"name":"google-api-core","old_version":"2.25.1","new_version":"2.28.1","repository_url":"https://github.com/googleapis/python-api-core"},{"name":"apscheduler","old_version":"3.11.0","new_version":"3.11.1","repository_url":"https://github.com/agronholm/apscheduler"},{"name":"google-genai","old_version":"1.30.0","new_version":"1.55.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"tzdata","old_version":"2025.2","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"colorlog","old_version":"6.9.0","new_version":"6.10.1","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"anthropic","old_version":"0.64.0","new_version":"0.75.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"1.102.0","new_version":"2.11.0","repository_url":"https://github.com/openai/openai-python"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 45 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.11.0` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `23.1.0` | `25.4.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.3.2` | `6.2.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `2025.11.12` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.1` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.6.1` | `2.8.0` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.0` | `6.0.2` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.7.0` | `1.8.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.4` | `3.3.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.8.0` | `8.7.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.6.4` | `6.7.0` |\n| [nest-asyncio](https://github.com/erdewit/nest_asyncio) | `1.5.8` | `1.6.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.15.5` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.9.0` | `4.12.3` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.11.2` | `5.15.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [simple-websocket](https://github.com/miguelgrinberg/simple-websocket) | `1.0.0` | `1.1.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.30` | `2.0.45` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.0.6` | `3.1.4` |\n| [wsproto](https://github.com/python-hyper/wsproto) | `1.2.0` | `1.3.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.20.1` | `1.22.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.1` | `1.2.1` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.187.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.32.0` | `4.39.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.6` | `46.0.3` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `2.4.0` | `2.7.0` |\n| [google-auth-oauthlib](https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib) | `1.2.2` | `1.2.3` |\n| [google-api-core](https://github.com/googleapis/python-api-core) | `2.25.1` | `2.28.1` |\n| [apscheduler](https://github.com/agronholm/apscheduler) | `3.11.0` | `3.11.1` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.30.0` | `1.55.0` |\n| [tzdata](https://github.com/python/tzdata) | `2025.2` | `2025.3` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.9.0` | `6.10.1` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.64.0` | `0.75.0` |\n| [openai](https://github.com/openai/openai-python) | `1.102.0` | `2.11.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `9.0.2` |\n\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.9.1 to 3.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.0 (2025-11-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003esync_to_async\u003c/code\u003e gains a \u003ccode\u003econtext\u003c/code\u003e parameter, similar to those for\n\u003ccode\u003easyncio.create_task\u003c/code\u003e, \u003ccode\u003eTaskGroup\u003c/code\u003e \u0026amp;co, that can be used on Python 3.11+ to\ncontrol the context used by the underlying task.\u003c/p\u003e\n\u003cp\u003eThe parent context is already propagated by default but the additional\ncontrol is useful if multiple \u003ccode\u003esync_to_async\u003c/code\u003e calls need to share the same\ncontext, e.g. when used with \u003ccode\u003easyncio.gather()\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.0 (2025-10-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded AsyncSingleThreadContext context manager to ensure multiple AsyncToSync\ninvocations use the same thread. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b7b15b20ddb51d1d8b6978165c0986686cd08c1d\"\u003e\u003ccode\u003eb7b15b2\u003c/code\u003e\u003c/a\u003e Releasing 3.11.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/901ee4f96db156f0b462690dd7c9f5aa99bcce03\"\u003e\u003ccode\u003e901ee4f\u003c/code\u003e\u003c/a\u003e Added a custom context parameter for the sync_to_async (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/2138f0317d79cedd065571447ae0a7571989550e\"\u003e\u003ccode\u003e2138f03\u003c/code\u003e\u003c/a\u003e Fixed typo in test file comment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/f587b122af17bdba5749c30b96d2237bc1c2dfdf\"\u003e\u003ccode\u003ef587b12\u003c/code\u003e\u003c/a\u003e Releasing 3.10.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b08087c3b6df811a0524585c4d4dafdc6b12c222\"\u003e\u003ccode\u003eb08087c\u003c/code\u003e\u003c/a\u003e Added AsyncSingleThreadContext (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-timeout` from 4.0.3 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/releases\"\u003easync-timeout's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst\"\u003easync-timeout's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.1 (2024-11-06)\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.0.0 (2024-10-31)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/cc52d410e733b302873e6e52db9a9b6578d053a4\"\u003e\u003ccode\u003ecc52d41\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/1af7d7165d598af03e51952a679c690690dc7f8e\"\u003e\u003ccode\u003e1af7d71\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3bf26d96e3d1830a0e72ddab9c6a2c87e1f4380a\"\u003e\u003ccode\u003e3bf26d9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/423\"\u003e#423\u003c/a\u003e: add requirements.txt to sdist package (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/380e8ba5bf77e3cd184df8a5f51dc929d93d8553\"\u003e\u003ccode\u003e380e8ba\u003c/code\u003e\u003c/a\u003e Mention condition import of asyncio.timeout / async_timeout.timeout in README...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/8a232d0f7fc1af88c8d921500d78bbefc2bc545c\"\u003e\u003ccode\u003e8a232d0\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3d3e3e45420ac6ea0ef77c9e32388e252e12ac4d\"\u003e\u003ccode\u003e3d3e3e4\u003c/code\u003e\u003c/a\u003e Bump to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/d5c21f3dee7eeb06823af77284ad2a899611b28e\"\u003e\u003ccode\u003ed5c21f3\u003c/code\u003e\u003c/a\u003e Mimic asyncio.Timeout behavior (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/a1111c2597b9ce8d34b823c1b993689339ea9fd6\"\u003e\u003ccode\u003ea1111c2\u003c/code\u003e\u003c/a\u003e Drop deprecated sync context manager support (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/00fd343ce6ba2ccc291c0f6e09fea8998cbfe3a1\"\u003e\u003ccode\u003e00fd343\u003c/code\u003e\u003c/a\u003e Imports cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/7b61b33ae0ecee0e0bb0e09f2e5787c647d4ffb8\"\u003e\u003ccode\u003e7b61b33\u003c/code\u003e\u003c/a\u003e Update CI config file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-timeout/compare/v4.0.3...v5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 23.1.0 to 25.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 5.3.2 to 6.2.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.3 (2025-12-12)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation regarding \u003ccode\u003e@cachedmethod\u003c/code\u003e with \u003ccode\u003econdition\u003c/code\u003e\nparameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor style and readability improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eModernize build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.2 (2025-11-13)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor improvements from GitHub Copilot code review.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.1 (2025-10-12)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/c9354683857b10b5e00cb93d06f7549ac8344fc0\"\u003e\u003ccode\u003ec935468\u003c/code\u003e\u003c/a\u003e Release v6.2.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/94d1099e6e79d34c436dc9f5d1cc039bcbf76738\"\u003e\u003ccode\u003e94d1099\u003c/code\u003e\u003c/a\u003e Prepare v6.2.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/af8b7d4ffa48d5947161ddb8c1ef1c60dda1e816\"\u003e\u003ccode\u003eaf8b7d4\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/372\"\u003e#372\u003c/a\u003e: Convert setup.cfg to pyproject.toml.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/20b8a192f666420a1986b793fd5846b89fdcd647\"\u003e\u003ccode\u003e20b8a19\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/370\"\u003e#370\u003c/a\u003e: Mention that using \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e with condition requires self to be...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/116fb4c3459067442d731e01a3db4694b50722f1\"\u003e\u003ccode\u003e116fb4c\u003c/code\u003e\u003c/a\u003e Minor style and readability improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/96546ea34f8c77df009fb3bc019b72b03589c3fd\"\u003e\u003ccode\u003e96546ea\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.0 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/0106cc1d4764c9a94cd39a55579ce49bca9f4e1e\"\u003e\u003ccode\u003e0106cc1\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4ee2600ab09b109f79d4ef08103240bf9f239b2d\"\u003e\u003ccode\u003e4ee2600\u003c/code\u003e\u003c/a\u003e Release v6.2.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/f1cec391fea1a1e407fe596b6e37b849adf7fce5\"\u003e\u003ccode\u003ef1cec39\u003c/code\u003e\u003c/a\u003e Minor improvements from GitHub Copilot code review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/e9117dc1e18389341ce4836f171e23d89f306b65\"\u003e\u003ccode\u003ee9117dc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/371\"\u003e#371\u003c/a\u003e from RektPunk/master\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.3.2...v6.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.8.3 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"\u003e\u003ccode\u003e37ea150\u003c/code\u003e\u003c/a\u003e 2025.11.12 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"\u003e\u003ccode\u003e2fa50bb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.2 to 5.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"\u003e\u003ccode\u003e6cadb53\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fb14ac49a976b1695d84b1ac1307276a20b3aac9\"\u003e\u003ccode\u003efb14ac4\u003c/code\u003e\u003c/a\u003e 2025.10.05 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2c7c7ee6b76a118191b685a4cc028d4241f22eb7\"\u003e\u003ccode\u003e2c7c7ee\u003c/code\u003e\u003c/a\u003e Add Python 3.14 classifier in setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1a5cb7b3771bba256755f88b3dcf3ac13f064622\"\u003e\u003ccode\u003e1a5cb7b\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/dea59605ef2b266c2e0e67938e8c8535a04b1211\"\u003e\u003ccode\u003edea5960\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/83566b7c993eef772facdaff59c7bba105675329\"\u003e\u003ccode\u003e83566b7\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ca2e121bdb304fd01f802d3b1ee6a65684f569f2\"\u003e\u003ccode\u003eca2e121\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.3.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.08.03...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.1/\"\u003ehttps://pypi.org/project/click/8.3.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/28\"\u003ehttps://github.com/pallets/click/milestone/28\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3039\"\u003e#3039\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3055\"\u003e#3055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through the \u003ccode\u003eContext.invoke()\u003c/code\u003e method. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3066\"\u003e#3066\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3068\"\u003e#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect behavior for multiple parameters using the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3071\"\u003e#3071\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3079\"\u003e#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is empty. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3019\"\u003e#3019\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3021\"\u003e#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to \u003ccode\u003etype_cast_value\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3069\"\u003e#3069\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3090\"\u003e#3090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters through the context inside parameter callbacks. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-11-15\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. :issue:\u003ccode\u003e3039\u003c/code\u003e\n:pr:\u003ccode\u003e3055\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through\nthe \u003ccode\u003eContext.invoke()\u003c/code\u003e method. :issue:\u003ccode\u003e3066\u003c/code\u003e :issue:\u003ccode\u003e3065\u003c/code\u003e :pr:\u003ccode\u003e3068\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect\nbehavior for multiple parameters using the same name. :issue:\u003ccode\u003e3071\u003c/code\u003e :pr:\u003ccode\u003e3079\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters\nthrough the context inside parameter callbacks. :issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3137\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is\nempty. :issue:\u003ccode\u003e3019\u003c/code\u003e :pr:\u003ccode\u003e3021\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to\n\u003ccode\u003etype_cast_value\u003c/code\u003e. :issue:\u003ccode\u003e3069\u003c/code\u003e :pr:\u003ccode\u003e3090\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in \u003ccode\u003eCliRunner\u003c/code\u003e. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1d038f270701498433cb432f54db89f95f07a845\"\u003e\u003ccode\u003e1d038f2\u003c/code\u003e\u003c/a\u003e release version 8.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/03f3889f505d0c9ca4f9d6810f9e4ba2799f2a66\"\u003e\u003ccode\u003e03f3889\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3141\"\u003e#3141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3867781222cb63693ca67df94352d29d8e6e2770\"\u003e\u003ccode\u003e3867781\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b91bb9548a5617b1197add95e084d569f57149c3\"\u003e\u003ccode\u003eb91bb95\u003c/code\u003e\u003c/a\u003e Provide altered context to callbacks to hide \u003ccode\u003eUNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/437e1e3295c7ec979fc1bf285bb402ca20d847e7\"\u003e\u003ccode\u003e437e1e3\u003c/code\u003e\u003c/a\u003e Temporarily provide a fake context to the callback to hide \u003ccode\u003eUNSET\u003c/code\u003e values as ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ea70da487b05d6bb758d472a3a9ffab4a5b7fcd5\"\u003e\u003ccode\u003eea70da4\u003c/code\u003e\u003c/a\u003e Don't test using a file in docs/ (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e27b307462b725722f620c69dd1d5509c032d18a\"\u003e\u003ccode\u003ee27b307\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003euv run --all-extras pyright --verifytypes click\u003c/code\u003e pass (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a92c573f3195c9da3058eadf1735d38af186d22c\"\u003e\u003ccode\u003ea92c573\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.6.1 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.8.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.10.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release. Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003cp\u003eThis release was published to PyPI using Trusted Publishing.\u003c/p\u003e\n\u003ch2\u003ednspython 2.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.9.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release.  Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns/btreezone.py provides another zone versioned implementation built on top of a\nB-tree.  It maintains DNSSEC sort order, labels nodes as delegation points or glue,\nand can find the \u0026quot;bounds\u0026quot; of a name (useful for DNSSEC responses).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/query.py now provides make_socket(), make_ssl_socket(), and make_ssl_context()\nto make using persistent connections with the query code easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/win32util.py now supports explicitly setting the configuration method used to get\nsystem dns info, using the set_config_method() function.   There is a new configuration\nmethod that uses the Win32 API, which can be set using\nset_config_method(ConfigMethod.Win32).  We are considering making the Win32 API\nthe default in the future as we believe it to be the most accurate.  Any feedback on\nit compared to the other methods is welcome.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe DSYNC record is now supported.  This type is still in draft stage at the IETF\nand is subject to change.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns.query.https() and dns.asyncquery.https() now support HTTP/3 and the http_version\nparameter may be used to specify which version to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the cryptography module is installed, then dnspython will now create deterministic\nECDSA signatures by default.  Cryptography, if installed, must be at least version 43.\nThanks to Jakob Schlyter for adding the feature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe RESINFO and WALLET RdataTypes are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe COOKIE and Report-Channel EDNS0 options are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAll supported RdataTypes can now be imported at a single time rather than lazily on\nfirst use by calling dns.rdata.load_all_types().\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe SVCB and HTTPS records now support the ohttp parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003exfr() and inbound_xfr() now share a common implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTokens are now supported for QUIC and HTTP/3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.from_wire() now saves the input wire format in the Message's \u0026quot;wire\u0026quot;\nattribute.  Likewise, dns.message.Message.to_wire() now records the generated\nwire format in that attribute.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe dns.message.Message object now has a get_options() helper to retrieve EDNS0\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/77fd94cd9716faf23e0a6e333f6568fc24284402\"\u003e\u003ccode\u003e77fd94c\u003c/code\u003e\u003c/a\u003e 2.8.0 versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/884f38345a8152342fe8ab5da8db9aab654051ba\"\u003e\u003ccode\u003e884f383\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/1938fe331f97376bf91c028fbfb8c7588c1b84f4\"\u003e\u003ccode\u003e1938fe3\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a35d6925efe20744e8cf7545d19d03ba06e7ab6f\"\u003e\u003ccode\u003ea35d692\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/c862baaf0d0aa36d2e7003dfe226cd6ad4d827c4\"\u003e\u003ccode\u003ec862baa\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/0945d5923d58048c17325975f70f0738c87570b4\"\u003e\u003ccode\u003e0945d59\u003c/code\u003e\u003c/a\u003e more lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8fa6766d2f7a2431372fc912fb334e752290ebf2\"\u003e\u003ccode\u003e8fa6766\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/641633503ee6b07bf382594ac04707072b90de18\"\u003e\u003ccode\u003e6416335\u003c/code\u003e\u003c/a\u003e Type syntax (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a4591447b7d6e38479bcddb14de3b69f314e7009\"\u003e\u003ccode\u003ea459144\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a0d5f172e89f30709b47b59fb0919d8cf137f611\"\u003e\u003ccode\u003ea0d5f17\u003c/code\u003e\u003c/a\u003e fix the all entries\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.6.1...v2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-cors` from 6.0.0 to 6.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/corydolphin/flask-cors/releases\"\u003eflask-cors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate license pyproject.toml by \u003ca href=\"https://github.com/wagenrace\"\u003e\u003ccode\u003e@​wagenrace\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/395\"\u003ecorydolphin/flask-cors#395\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wagenrace\"\u003e\u003ccode\u003e@​wagenrace\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/395\"\u003ecorydolphin/flask-cors#395\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.1...6.0.2\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.1...6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInvert regex sorting to make it correctly match the intent (sorting by specificity descending) \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1.dev\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/fa55dcbec68b3524a39e5057c35c29c221a27d64\"\u003e\u003ccode\u003efa55dcb\u003c/code\u003e\u003c/a\u003e Update license pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/a5003f391e56f74f11a3e509cd180787c75eb6b0\"\u003e\u003ccode\u003ea5003f3\u003c/code\u003e\u003c/a\u003e Fix README file extension in pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/4ad56d6c20252d36031c74ba8386a81e94286f40\"\u003e\u003ccode\u003e4ad56d6\u003c/code\u003e\u003c/a\u003e Fix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `frozenlist` from 1.7.0 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/frozenlist/releases\"\u003efrozenlist's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.0\u003c/h2\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe :file:\u003ccode\u003ereusable-cibuildwheel.yml\u003c/code\u003e workflow has been refactored to\nbe more generic and :file:\u003ccode\u003eci-cd.yml\u003c/code\u003e now holds all the configuration\ntoggles -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/668\"\u003e#668\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen building wheels, the source distribution is now passed directly\nto the \u003ccode\u003ecibuildwheel\u003c/code\u003e invocation -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/669\"\u003e#669\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBuilds and tests have been added to\n\u003ccode\u003eci-cd.yml\u003c/code\u003e for arm64 Windows wheels -- by :user:\u003ccode\u003efinnagin\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/677\"\u003e#677\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eStarted building wheels for CPython 3.14 -- by :user:\u003ccode\u003ekumaraditya303\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/681\"\u003e#681\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/682\"\u003e#682\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003e--config-settings=pure-python=false\u003c/code\u003e from :file:\u003ccode\u003erequirements/dev.txt\u003c/code\u003e.\nDevelopers on CPython still get accelerated builds by default. To explicitly build\na pure Python wheel, use \u003ccode\u003epip install -e . --config-settings=pure-python=true\u003c/code\u003e\n-- by :user:\u003ccode\u003ebdraco\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/687\"\u003e#687\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/frozenlist/blob/master/CHANGES.rst\"\u003efrozenlist's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev1.8.0\u003c/h1\u003e\n\u003cp\u003e\u003cem\u003e(2025-10-05)\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe :file:\u003ccode\u003ereusable-cibuildwheel.yml\u003c/code\u003e workflow has been refactored to\nbe more generic and :file:\u003ccode\u003eci-cd.yml\u003c/code\u003e now holds all the configuration\ntoggles -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e668\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen building wheels, the source distribution is now passed directly\nto the \u003ccode\u003ecibuildwheel\u003c/code\u003e invocation -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e669\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBuilds and tests have been added to\n\u003ccode\u003eci-cd.yml\u003c/code\u003e for arm64 Windows wheels -- by :user:\u003ccode\u003efinnagin\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e677\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eStarted building wheels for CPython 3.14 -- by :user:\u003ccode\u003ekumaraditya303\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e681\u003c/code\u003e, :issue:\u003ccode\u003e682\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003e--config-settings=pure-python=false\u003c/code\u003e from :file:\u003ccode\u003erequirements/dev.txt\u003c/code\u003e.\nDevelopers on CPython still get accelerated builds by default. To explicitly build\na pure Python wheel, use \u003ccode\u003epip install -e . --config-settings=pure-python=true\u003c/code\u003e\n-- by :user:\u003ccode\u003ebdraco\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e687\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/48324affeecc2fff8f84f38368f720426c0354cf\"\u003e\u003ccode\u003e48324af\u003c/code\u003e\u003c/a\u003e Release 1.8.0 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/698\"\u003e#698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/7e5eab0c6fef4898fe43827b68e2722a385a8383\"\u003e\u003ccode\u003e7e5eab0\u003c/code\u003e\u003c/a\u003e Add windows arm64 support (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/678\"\u003e#678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/a2c22c28622534e4d90abdd931acd9d9a2aaa457\"\u003e\u003ccode\u003ea2c22c2\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sphinx from 7.2.6 to 7.4.7 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/752b80a14924c53317b0b4cb4d8212a3daf06719\"\u003e\u003ccode\u003e752b80a\u003c/code\u003e\u003c/a\u003e Build(deps): Bump types-setuptools from 75.8.0.20250210 to 80.9.0.20250822 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/6b9d557b189dfc8f1f9afdfcc9b6ddd8ccfc9f76\"\u003e\u003ccode\u003e6b9d557\u003c/code\u003e\u003c/a\u003e Build(deps): Bump cython from 3.1.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/7c4ad20e8ef0e6dc7dc7bfa49067d30477401890\"\u003e\u003ccode\u003e7c4ad20\u003c/code\u003e\u003c/a\u003e Build(deps-dev): Bump tox from 4.11.4 to 4.30.3 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/65f35d660661309808804b119d8fedb950527dc4\"\u003e\u003ccode\u003e65f35d6\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pre-commit from 3.5.0 to 4.3.0 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/697\"\u003e#697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/1ad02630d8fabf2cc67c7b2549115440edbd1be9\"\u003e\u003ccode\u003e1ad0263\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 7.4.3 to 8.4.2 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/884ee492579139df7c634f20ee27133d06551935\"\u003e\u003ccode\u003e884ee49\u003c/code\u003e\u003c/a\u003e Build(deps): Bump aiohttp-theme from 0.1.6 to 0.1.7 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/689\"\u003e#689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/b2d618044281d0ef534253d8cf087f80569d492c\"\u003e\u003ccode\u003eb2d6180\u003c/code\u003e\u003c/a\u003e Fix dependabot updates (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/frozenlist/compare/v1.7.0...v1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `greenlet` from 3.2.4 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst\"\u003egreenlet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.3.0 (2025-12-04)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.9.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitch to distributing manylinux_2_28 wheels instead of\nmanylinux2014 wheels. Likewise, switch from musllinux_1_1 to 1_2.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd initial support for free-threaded builds of CPython 3.14. Due to\nlimitations, we do not distribute binary wheels for free-threaded\nCPython on Windows. (Free-threaded CPython 3.13 may work, but is\nuntested and unsupported.)\u003c/p\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cp\u003eUnder some rare scenarios with free-threaded 3.14, the\ninterpreter may crash on accessing a variable or attribute or\nwhen shutting down. If this happens, try disabling the\nthread-local bytecode cache. See the greenlet documentation for\nmore details. See \u003ccode\u003ePR 472 by T. Wouters \u0026lt;https://github.com/python-greenlet/greenlet/pull/472\u0026gt;\u003c/code\u003e_ for the\ninitial free-threaded support and a discussion of the current\nknown issues.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/0f904314e2fe11835bdff9d928f9f039116aebff\"\u003e\u003ccode\u003e0f90431\u003c/code\u003e\u003c/a\u003e Preparing release 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/296058a43da5a76c2406a91aa998413b93537940\"\u003e\u003ccode\u003e296058a\u003c/code\u003e\u003c/a\u003e Tweak changelog. [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/d4392ab171036bf73cc64ed47109e0d2e1f41275\"\u003e\u003ccode\u003ed4392ab\u003c/code\u003e\u003c/a\u003e fixup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/e6fead23d967fd6194c5a1eaa48d55a07b4bda40\"\u003e\u003ccode\u003ee6fead2\u003c/code\u003e\u003c/a\u003e Update docs regarding free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/d5b134610187f94a641e0cf40be56992c8e9f667\"\u003e\u003ccode\u003ed5b1346\u003c/code\u003e\u003c/a\u003e 3.14: Save/restore PyInterpreterFrame.stackpointer.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/b54c4bdaaade13139d54005df51a9d21df5db7c4\"\u003e\u003ccode\u003eb54c4bd\u003c/code\u003e\u003c/a\u003e Fix some crashes with CPython assertions enabled, pointing to things we were ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/47e99259263968560422c9b69bc8c50f9068cf87\"\u003e\u003ccode\u003e47e9925\u003c/code\u003e\u003c/a\u003e Add a test that we're not enabling the GIL.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/0778d50792888afa043c8a368085358c3fea0146\"\u003e\u003ccode\u003e0778d50\u003c/code\u003e\u003c/a\u003e Use our Python allocator on free-threaded builds, but do it correctly with Py...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/5f661f4f5a023438e944d36e4f255c7a706ae998\"\u003e\u003ccode\u003e5f661f4\u003c/code\u003e\u003c/a\u003e Add free-threaded CI builds and manylinux builds; update manylinux away from ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/5331b0ad33a7380b91d8a9849f61aa61b7b1ade2\"\u003e\u003ccode\u003e5331b0a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/475\"\u003e#475\u003c/a\u003e from clin1234/capi\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca h...\n\n_Description has been truncated_","html_url":"https://github.com/asusoda/platform/pull/110","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asusoda%2Fplatform/issues/110","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/110/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2025-10-07T03:58:08.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"3489853307","node_id":"PR_kwDOEg37J86saNXC","number":33,"state":"open","title":"Bump aiosignal from 1.3.1 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-10-07T03:58:08.000Z","updated_at":"2025-10-07T04:00:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"}],"path":null,"ecosystem":"pip"},"body":"Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal\u0026package-manager=uv\u0026previous-version=1.3.1\u0026new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/hlystovea/sayanbot/pull/33","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hlystovea%2Fsayanbot/issues/33","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/33/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2025-10-06T07:55:16.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"2889171984","node_id":"PR_kwDOKXLyYM6sNUQQ","number":88,"state":"open","title":"Bump the python-deps group across 1 directory with 34 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-06T07:55:16.000Z","updated_at":"2025-10-06T07:55:17.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-deps","update_count":34,"packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"asgiref","old_version":"3.9.1","new_version":"3.10.0","repository_url":"https://github.com/django/asgiref"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"attrs","old_version":"23.1.0","new_version":"25.3.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"cachetools","old_version":"5.3.2","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.8.3","new_version":"2025.10.5","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.6.1","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"flask-cors","old_version":"6.0.0","new_version":"6.0.1","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"frozenlist","old_version":"1.7.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"importlib-metadata","old_version":"6.8.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"nest-asyncio","old_version":"1.5.8","new_version":"1.6.0","repository_url":"https://github.com/erdewit/nest_asyncio"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.15.2","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"python-engineio","old_version":"4.9.0","new_version":"4.12.3","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-socketio","old_version":"5.11.2","new_version":"5.14.1","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"simple-websocket","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/miguelgrinberg/simple-websocket"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"werkzeug","old_version":"3.0.6","new_version":"3.1.3","repository_url":"https://github.com/pallets/werkzeug"},{"name":"yarl","old_version":"1.20.1","new_version":"1.21.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.184.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"selenium","old_version":"4.32.0","new_version":"4.36.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"cryptography","old_version":"45.0.6","new_version":"46.0.2","repository_url":"https://github.com/pyca/cryptography"},{"name":"notion-client","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-api-core","old_version":"2.25.1","new_version":"2.25.2","repository_url":"https://github.com/googleapis/python-api-core"},{"name":"google-genai","old_version":"1.30.0","new_version":"1.41.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"anthropic","old_version":"0.64.0","new_version":"0.69.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"1.102.0","new_version":"2.1.0","repository_url":"https://github.com/openai/openai-python"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 33 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.10.0` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `23.1.0` | `25.3.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.3.2` | `6.2.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `2025.10.5` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.6.1` | `2.8.0` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.0` | `6.0.1` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.7.0` | `1.8.0` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.8.0` | `8.7.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [nest-asyncio](https://github.com/erdewit/nest_asyncio) | `1.5.8` | `1.6.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.15.2` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.9.0` | `4.12.3` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.11.2` | `5.14.1` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [simple-websocket](https://github.com/miguelgrinberg/simple-websocket) | `1.0.0` | `1.1.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.0.6` | `3.1.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.20.1` | `1.21.0` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.184.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.32.0` | `4.36.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.6` | `46.0.2` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `2.4.0` | `2.5.0` |\n| [google-api-core](https://github.com/googleapis/python-api-core) | `2.25.1` | `2.25.2` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.30.0` | `1.41.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.64.0` | `0.69.0` |\n| [openai](https://github.com/openai/openai-python) | `1.102.0` | `2.1.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.9.1 to 3.10.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.0 (2025-10-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded AsyncSingleThreadContext context manager to ensure multiple AsyncToSync\ninvocations use the same thread. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/f587b122af17bdba5749c30b96d2237bc1c2dfdf\"\u003e\u003ccode\u003ef587b12\u003c/code\u003e\u003c/a\u003e Releasing 3.10.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b08087c3b6df811a0524585c4d4dafdc6b12c222\"\u003e\u003ccode\u003eb08087c\u003c/code\u003e\u003c/a\u003e Added AsyncSingleThreadContext (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-timeout` from 4.0.3 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/releases\"\u003easync-timeout's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst\"\u003easync-timeout's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.1 (2024-11-06)\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.0.0 (2024-10-31)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/cc52d410e733b302873e6e52db9a9b6578d053a4\"\u003e\u003ccode\u003ecc52d41\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/1af7d7165d598af03e51952a679c690690dc7f8e\"\u003e\u003ccode\u003e1af7d71\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3bf26d96e3d1830a0e72ddab9c6a2c87e1f4380a\"\u003e\u003ccode\u003e3bf26d9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/423\"\u003e#423\u003c/a\u003e: add requirements.txt to sdist package (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/380e8ba5bf77e3cd184df8a5f51dc929d93d8553\"\u003e\u003ccode\u003e380e8ba\u003c/code\u003e\u003c/a\u003e Mention condition import of asyncio.timeout / async_timeout.timeout in README...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/8a232d0f7fc1af88c8d921500d78bbefc2bc545c\"\u003e\u003ccode\u003e8a232d0\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3d3e3e45420ac6ea0ef77c9e32388e252e12ac4d\"\u003e\u003ccode\u003e3d3e3e4\u003c/code\u003e\u003c/a\u003e Bump to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/d5c21f3dee7eeb06823af77284ad2a899611b28e\"\u003e\u003ccode\u003ed5c21f3\u003c/code\u003e\u003c/a\u003e Mimic asyncio.Timeout behavior (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/a1111c2597b9ce8d34b823c1b993689339ea9fd6\"\u003e\u003ccode\u003ea1111c2\u003c/code\u003e\u003c/a\u003e Drop deprecated sync context manager support (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/00fd343ce6ba2ccc291c0f6e09fea8998cbfe3a1\"\u003e\u003ccode\u003e00fd343\u003c/code\u003e\u003c/a\u003e Imports cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/7b61b33ae0ecee0e0bb0e09f2e5787c647d4ffb8\"\u003e\u003ccode\u003e7b61b33\u003c/code\u003e\u003c/a\u003e Update CI config file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-timeout/compare/v4.0.3...v5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 23.1.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 5.3.2 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.0.0 (2025-05-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequire Python 3.9 or later (breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003eMRUCache\u003c/code\u003e and the \u003ccode\u003e@func.mru_cache\u003c/code\u003e decorator (breaking\nchange).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd an optional \u003ccode\u003econdition\u003c/code\u003e parameter to the \u003ccode\u003e@cached\u003c/code\u003e and\n\u003ccode\u003e@cachedmethod\u003c/code\u003e decorators, which, when used with a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance, should improve \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues in massively\nparallel environments.  Note that this will inflict some performance\npenalty, and therefore has to be enabled explicitly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert the \u003ccode\u003ecachetools.func\u003c/code\u003e decorators to use a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance to deal with \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues.  Note that\nthis \u003cem\u003emay\u003c/em\u003e result in a noticable performance degradation, depending\non your actual use case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate support for \u003ccode\u003ecache(self)\u003c/code\u003e returning \u003ccode\u003eNone\u003c/code\u003e to suppress\ncaching with the \u003ccode\u003e@cachedmethod\u003c/code\u003e decorator.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ev5.5.2 (2025-02-20)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/e497575fcb4d29dfb773824956539215db964059\"\u003e\u003ccode\u003ee497575\u003c/code\u003e\u003c/a\u003e Release v6.0.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/0a8f391979f72f3237be8cdb79d6128dd5caeb93\"\u003e\u003ccode\u003e0a8f391\u003c/code\u003e\u003c/a\u003e Update related projects section.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/3afef37bdbf8fa8f6dddbc303ecd91c9fd32ab01\"\u003e\u003ccode\u003e3afef37\u003c/code\u003e\u003c/a\u003e Pre-release v6.0.0b4.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.3.2...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.8.3 to 2025.10.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fb14ac49a976b1695d84b1ac1307276a20b3aac9\"\u003e\u003ccode\u003efb14ac4\u003c/code\u003e\u003c/a\u003e 2025.10.05 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2c7c7ee6b76a118191b685a4cc028d4241f22eb7\"\u003e\u003ccode\u003e2c7c7ee\u003c/code\u003e\u003c/a\u003e Add Python 3.14 classifier in setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1a5cb7b3771bba256755f88b3dcf3ac13f064622\"\u003e\u003ccode\u003e1a5cb7b\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/dea59605ef2b266c2e0e67938e8c8535a04b1211\"\u003e\u003ccode\u003edea5960\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/83566b7c993eef772facdaff59c7bba105675329\"\u003e\u003ccode\u003e83566b7\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ca2e121bdb304fd01f802d3b1ee6a65684f569f2\"\u003e\u003ccode\u003eca2e121\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.3.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.08.03...2025.10.05\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003cp\u003eIt leverages charset-normalizer in a better way! Check it out, you will gain up to being 3X faster and get a real/respectable support with it.\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebuild-requirements.txt\u003c/code\u003e as per using \u003ccode\u003epyproject.toml\u003c/code\u003e native build configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/integration.py\u003c/code\u003e and \u003ccode\u003ebin/serve.py\u003c/code\u003e in favor of downstream integration test (see noxfile).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e in favor of \u003ccode\u003epyproject.toml\u003c/code\u003e metadata configuration.\u003c/li\u003e\n\u003cli\u003eUnused \u003ccode\u003eutils.range_scan\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConverting content to Unicode bytes may insert \u003ccode\u003eutf_8\u003c/code\u003e instead of preferred \u003ccode\u003eutf-8\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning \u0026quot;'count' is passed as positional argument\u0026quot; when converting to Unicode bytes on Python 3.13+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0\"\u003e3.4.0\u003c/a\u003e (2024-10-08)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.6.1 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.8.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.10.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release. Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003cp\u003eThis release was published to PyPI using Trusted Publishing.\u003c/p\u003e\n\u003ch2\u003ednspython 2.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.9.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release.  Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns/btreezone.py provides another zone versioned implementation built on top of a\nB-tree.  It maintains DNSSEC sort order, labels nodes as delegation points or glue,\nand can find the \u0026quot;bounds\u0026quot; of a name (useful for DNSSEC responses).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/query.py now provides make_socket(), make_ssl_socket(), and make_ssl_context()\nto make using persistent connections with the query code easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/win32util.py now supports explicitly setting the configuration method used to get\nsystem dns info, using the set_config_method() function.   There is a new configuration\nmethod that uses the Win32 API, which can be set using\nset_config_method(ConfigMethod.Win32).  We are considering making the Win32 API\nthe default in the future as we believe it to be the most accurate.  Any feedback on\nit compared to the other methods is welcome.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe DSYNC record is now supported.  This type is still in draft stage at the IETF\nand is subject to change.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns.query.https() and dns.asyncquery.https() now support HTTP/3 and the http_version\nparameter may be used to specify which version to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the cryptography module is installed, then dnspython will now create deterministic\nECDSA signatures by default.  Cryptography, if installed, must be at least version 43.\nThanks to Jakob Schlyter for adding the feature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe RESINFO and WALLET RdataTypes are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe COOKIE and Report-Channel EDNS0 options are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAll supported RdataTypes can now be imported at a single time rather than lazily on\nfirst use by calling dns.rdata.load_all_types().\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe SVCB and HTTPS records now support the ohttp parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003exfr() and inbound_xfr() now share a common implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTokens are now supported for QUIC and HTTP/3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.from_wire() now saves the input wire format in the Message's \u0026quot;wire\u0026quot;\nattribute.  Likewise, dns.message.Message.to_wire() now records the generated\nwire format in that attribute.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe dns.message.Message object now has a get_options() helper to retrieve EDNS0\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/77fd94cd9716faf23e0a6e333f6568fc24284402\"\u003e\u003ccode\u003e77fd94c\u003c/code\u003e\u003c/a\u003e 2.8.0 versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/884f38345a8152342fe8ab5da8db9aab654051ba\"\u003e\u003ccode\u003e884f383\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/1938fe331f97376bf91c028fbfb8c7588c1b84f4\"\u003e\u003ccode\u003e1938fe3\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a35d6925efe20744e8cf7545d19d03ba06e7ab6f\"\u003e\u003ccode\u003ea35d692\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/c862baaf0d0aa36d2e7003dfe226cd6ad4d827c4\"\u003e\u003ccode\u003ec862baa\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/0945d5923d58048c17325975f70f0738c87570b4\"\u003e\u003ccode\u003e0945d59\u003c/code\u003e\u003c/a\u003e more lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8fa6766d2f7a2431372fc912fb334e752290ebf2\"\u003e\u003ccode\u003e8fa6766\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/641633503ee6b07bf382594ac04707072b90de18\"\u003e\u003ccode\u003e6416335\u003c/code\u003e\u003c/a\u003e Type syntax (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a4591447b7d6e38479bcddb14de3b69f314e7009\"\u003e\u003ccode\u003ea459144\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a0d5f172e89f30709b47b59fb0919d8cf137f611\"\u003e\u003ccode\u003ea0d5f17\u003c/code\u003e\u003c/a\u003e fix the all entries\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.6.1...v2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-cors` from 6.0.0 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/corydolphin/flask-cors/releases\"\u003eflask-cors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInvert regex sorting to make it correctly match the intent (sorting by specificity descending) \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1.dev\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/a5003f391e56f74f11a3e509cd180787c75eb6b0\"\u003e\u003ccode\u003ea5003f3\u003c/code\u003e\u003c/a\u003e Fix README file extension in pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/4ad56d6c20252d36031c74ba8386a81e94286f40\"\u003e\u003ccode\u003e4ad56d6\u003c/code\u003e\u003c/a\u003e Fix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `frozenlist` from 1.7.0 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/frozenlist/releases\"\u003efrozenlist's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.0\u003c/h2\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe :file:\u003ccode\u003ereusable-cibuildwheel.yml\u003c/code\u003e workflow has been refactored to\nbe more generic and :file:\u003ccode\u003eci-cd.yml\u003c/code\u003e now holds all the configuration\ntoggles -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/668\"\u003e#668\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen building wheels, the source distribution is now passed directly\nto the \u003ccode\u003ecibuildwheel\u003c/code\u003e invocation -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/669\"\u003e#669\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBuilds and tests have been added to\n\u003ccode\u003eci-cd.yml\u003c/code\u003e for arm64 Windows wheels -- by :user:\u003ccode\u003efinnagin\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/677\"\u003e#677\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eStarted building wheels for CPython 3.14 -- by :user:\u003ccode\u003ekumaraditya303\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/681\"\u003e#681\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/682\"\u003e#682\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003e--config-settings=pure-python=false\u003c/code\u003e from :file:\u003ccode\u003erequirements/dev.txt\u003c/code\u003e.\nDevelopers on CPython still get accelerated builds by default. To explicitly build\na pure Python wheel, use \u003ccode\u003epip install -e . --config-settings=pure-python=true\u003c/code\u003e\n-- by :user:\u003ccode\u003ebdraco\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/687\"\u003e#687\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/frozenlist/blob/master/CHANGES.rst\"\u003efrozenlist's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev1.8.0\u003c/h1\u003e\n\u003cp\u003e\u003cem\u003e(2025-10-05)\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe :file:\u003ccode\u003ereusable-cibuildwheel.yml\u003c/code\u003e workflow has been refactored to\nbe more generic and :file:\u003ccode\u003eci-cd.yml\u003c/code\u003e now holds all the configuration\ntoggles -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e668\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen building wheels, the source distribution is now passed directly\nto the \u003ccode\u003ecibuildwheel\u003c/code\u003e invocation -- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e669\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBuilds and tests have been added to\n\u003ccode\u003eci-cd.yml\u003c/code\u003e for arm64 Windows wheels -- by :user:\u003ccode\u003efinnagin\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e677\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eStarted building wheels for CPython 3.14 -- by :user:\u003ccode\u003ekumaraditya303\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e681\u003c/code\u003e, :issue:\u003ccode\u003e682\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003e--config-settings=pure-python=false\u003c/code\u003e from :file:\u003ccode\u003erequirements/dev.txt\u003c/code\u003e.\nDevelopers on CPython still get accelerated builds by default. To explicitly build\na pure Python wheel, use \u003ccode\u003epip install -e . --config-settings=pure-python=true\u003c/code\u003e\n-- by :user:\u003ccode\u003ebdraco\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e687\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/48324affeecc2fff8f84f38368f720426c0354cf\"\u003e\u003ccode\u003e48324af\u003c/code\u003e\u003c/a\u003e Release 1.8.0 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/698\"\u003e#698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/7e5eab0c6fef4898fe43827b68e2722a385a8383\"\u003e\u003ccode\u003e7e5eab0\u003c/code\u003e\u003c/a\u003e Add windows arm64 support (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/678\"\u003e#678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/a2c22c28622534e4d90abdd931acd9d9a2aaa457\"\u003e\u003ccode\u003ea2c22c2\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sphinx from 7.2.6 to 7.4.7 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/752b80a14924c53317b0b4cb4d8212a3daf06719\"\u003e\u003ccode\u003e752b80a\u003c/code\u003e\u003c/a\u003e Build(deps): Bump types-setuptools from 75.8.0.20250210 to 80.9.0.20250822 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/6b9d557b189dfc8f1f9afdfcc9b6ddd8ccfc9f76\"\u003e\u003ccode\u003e6b9d557\u003c/code\u003e\u003c/a\u003e Build(deps): Bump cython from 3.1.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/7c4ad20e8ef0e6dc7dc7bfa49067d30477401890\"\u003e\u003ccode\u003e7c4ad20\u003c/code\u003e\u003c/a\u003e Build(deps-dev): Bump tox from 4.11.4 to 4.30.3 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/65f35d660661309808804b119d8fedb950527dc4\"\u003e\u003ccode\u003e65f35d6\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pre-commit from 3.5.0 to 4.3.0 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/697\"\u003e#697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/1ad02630d8fabf2cc67c7b2549115440edbd1be9\"\u003e\u003ccode\u003e1ad0263\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 7.4.3 to 8.4.2 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/884ee492579139df7c634f20ee27133d06551935\"\u003e\u003ccode\u003e884ee49\u003c/code\u003e\u003c/a\u003e Build(deps): Bump aiohttp-theme from 0.1.6 to 0.1.7 (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/689\"\u003e#689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/frozenlist/commit/b2d618044281d0ef534253d8cf087f80569d492c\"\u003e\u003ccode\u003eb2d6180\u003c/code\u003e\u003c/a\u003e Fix dependabot updates (\u003ca href=\"https://redirect.github.com/aio-libs/frozenlist/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/frozenlist/compare/v1.7.0...v1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 6.8.0 to 8.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev8.7.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.metadata()\u003c/code\u003e (and \u003ccode\u003eDistribution.metadata\u003c/code\u003e) can now return \u003ccode\u003eNone\u003c/code\u003e if the metadata directory exists but not metadata file is present. (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise consistent ValueError for invalid EntryPoint.value (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed indentation logic to also honor blank lines.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#119650\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeferred import of zipfile.Path (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeferred import of json (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRely on zipp overlay for zipfile.Path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.4.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/708dff4f1ab89bdd126e3e8c56098d04282c5809\"\u003e\u003ccode\u003e708dff4\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b3065f03cc3395f46ed575e612e213f92a064879\"\u003e\u003ccode\u003eb3065f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/519\"\u003e#519\u003c/a\u003e from python/bugfix/493-metadata-missing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/e4351c226765f53a40316fa6aab50488aee8a90f\"\u003e\u003ccode\u003ee4351c2\u003c/code\u003e\u003c/a\u003e Add a new test capturing the new expectation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/5a657051f7386de6f0560c200d78e941be2c8058\"\u003e\u003ccode\u003e5a65705\u003c/code\u003e\u003c/a\u003e Refactor the casting into a wrapper for brevity and to document its purpose.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0830c39b8a23e48024365120c0e97a6f7c36c5ec\"\u003e\u003ccode\u003e0830c39\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/22bb567692d8e7bd216f864a9d8dee1272ee8674\"\u003e\u003ccode\u003e22bb567\u003c/code\u003e\u003c/a\u003e Fix type errors where metadata could be None.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/57f31d77e18fef11dfadfd44775f253971c36920\"\u003e\u003ccode\u003e57f31d7\u003c/code\u003e\u003c/a\u003e Allow metadata to return None when there is no metadata present.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b9c4be4253250ad604610db66204e5fa70fa2455\"\u003e\u003ccode\u003eb9c4be4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e from python/bugfix/488-bad-ep-value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9f8af013635833cf3ac348413c9ac63b37caa3dd\"\u003e\u003ccode\u003e9f8af01\u003c/code\u003e\u003c/a\u003e Prefer a cached property, as the property is likely to be retrieved at least ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/f179e28888b2c6caf12baaf5449ff1cd82513dfe\"\u003e\u003ccode\u003ef179e28\u003c/code\u003e\u003c/a\u003e Also raise ValueError on construction if the value is invalid.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v6.8.0...v8.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `itsdangerous` from 2.1.2 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/releases\"\u003eitsdangerous's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003cp\u003eThis is a feature release, which includes new features, removes previously deprecated code, and adds new deprecations. The 2.2.x branch is now the supported fix branch, the 2.1.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003eChanges: \u003ca href=\"https://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\"\u003ehttps://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/itsdangerous/milestone/8?closed=1\"\u003ehttps://github.com/pallets/itsdangerous/milestone/8?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking. By default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a different \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return type of its \u003ccode\u003edumps\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/blob/main/CHANGES.rst\"\u003eitsdangerous's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-16\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7. :pr:\u003ccode\u003e372\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e326\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e371\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking.\nBy default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a\ndifferent \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return\ntype of its \u003ccode\u003edumps\u003c/code\u003e method. :issue:\u003ccode\u003e347\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/asusoda/platform/pull/88","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asusoda%2Fplatform/issues/88","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/88/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2025-10-03T07:33:08.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"2884083457","node_id":"PR_kwDOKXLyYM6r558B","number":87,"state":"open","title":"Bump the python-deps group across 1 directory with 31 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-03T07:33:08.000Z","updated_at":"2025-10-03T07:33:10.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-deps","update_count":31,"packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"asgiref","old_version":"3.9.1","new_version":"3.9.2","repository_url":"https://github.com/django/asgiref"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"attrs","old_version":"23.1.0","new_version":"25.3.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"cachetools","old_version":"5.3.2","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.6.1","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"flask-cors","old_version":"6.0.0","new_version":"6.0.1","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"importlib-metadata","old_version":"6.8.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"nest-asyncio","old_version":"1.5.8","new_version":"1.6.0","repository_url":"https://github.com/erdewit/nest_asyncio"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.15.2","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"python-engineio","old_version":"4.9.0","new_version":"4.12.3","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-socketio","old_version":"5.11.2","new_version":"5.14.1","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"simple-websocket","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/miguelgrinberg/simple-websocket"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"werkzeug","old_version":"3.0.6","new_version":"3.1.3","repository_url":"https://github.com/pallets/werkzeug"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.184.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"selenium","old_version":"4.32.0","new_version":"4.36.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"cryptography","old_version":"45.0.6","new_version":"46.0.2","repository_url":"https://github.com/pyca/cryptography"},{"name":"notion-client","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-api-core","old_version":"2.25.1","new_version":"2.25.2","repository_url":"https://github.com/googleapis/python-api-core"},{"name":"google-genai","old_version":"1.30.0","new_version":"1.41.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"anthropic","old_version":"0.64.0","new_version":"0.69.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"1.102.0","new_version":"2.1.0","repository_url":"https://github.com/openai/openai-python"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 30 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.9.2` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `23.1.0` | `25.3.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.3.2` | `6.2.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.6.1` | `2.8.0` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.0` | `6.0.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.8.0` | `8.7.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [nest-asyncio](https://github.com/erdewit/nest_asyncio) | `1.5.8` | `1.6.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.15.2` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.9.0` | `4.12.3` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.11.2` | `5.14.1` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [simple-websocket](https://github.com/miguelgrinberg/simple-websocket) | `1.0.0` | `1.1.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.0.6` | `3.1.3` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.184.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.32.0` | `4.36.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.6` | `46.0.2` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `2.4.0` | `2.5.0` |\n| [google-api-core](https://github.com/googleapis/python-api-core) | `2.25.1` | `2.25.2` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.30.0` | `1.41.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.64.0` | `0.69.0` |\n| [openai](https://github.com/openai/openai-python) | `1.102.0` | `2.1.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.9.1 to 3.9.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.9.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-timeout` from 4.0.3 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/releases\"\u003easync-timeout's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst\"\u003easync-timeout's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.1 (2024-11-06)\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.0.0 (2024-10-31)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/cc52d410e733b302873e6e52db9a9b6578d053a4\"\u003e\u003ccode\u003ecc52d41\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/1af7d7165d598af03e51952a679c690690dc7f8e\"\u003e\u003ccode\u003e1af7d71\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3bf26d96e3d1830a0e72ddab9c6a2c87e1f4380a\"\u003e\u003ccode\u003e3bf26d9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/423\"\u003e#423\u003c/a\u003e: add requirements.txt to sdist package (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/380e8ba5bf77e3cd184df8a5f51dc929d93d8553\"\u003e\u003ccode\u003e380e8ba\u003c/code\u003e\u003c/a\u003e Mention condition import of asyncio.timeout / async_timeout.timeout in README...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/8a232d0f7fc1af88c8d921500d78bbefc2bc545c\"\u003e\u003ccode\u003e8a232d0\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3d3e3e45420ac6ea0ef77c9e32388e252e12ac4d\"\u003e\u003ccode\u003e3d3e3e4\u003c/code\u003e\u003c/a\u003e Bump to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/d5c21f3dee7eeb06823af77284ad2a899611b28e\"\u003e\u003ccode\u003ed5c21f3\u003c/code\u003e\u003c/a\u003e Mimic asyncio.Timeout behavior (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/a1111c2597b9ce8d34b823c1b993689339ea9fd6\"\u003e\u003ccode\u003ea1111c2\u003c/code\u003e\u003c/a\u003e Drop deprecated sync context manager support (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/00fd343ce6ba2ccc291c0f6e09fea8998cbfe3a1\"\u003e\u003ccode\u003e00fd343\u003c/code\u003e\u003c/a\u003e Imports cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/7b61b33ae0ecee0e0bb0e09f2e5787c647d4ffb8\"\u003e\u003ccode\u003e7b61b33\u003c/code\u003e\u003c/a\u003e Update CI config file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-timeout/compare/v4.0.3...v5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 23.1.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 5.3.2 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.0.0 (2025-05-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequire Python 3.9 or later (breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003eMRUCache\u003c/code\u003e and the \u003ccode\u003e@func.mru_cache\u003c/code\u003e decorator (breaking\nchange).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd an optional \u003ccode\u003econdition\u003c/code\u003e parameter to the \u003ccode\u003e@cached\u003c/code\u003e and\n\u003ccode\u003e@cachedmethod\u003c/code\u003e decorators, which, when used with a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance, should improve \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues in massively\nparallel environments.  Note that this will inflict some performance\npenalty, and therefore has to be enabled explicitly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert the \u003ccode\u003ecachetools.func\u003c/code\u003e decorators to use a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance to deal with \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues.  Note that\nthis \u003cem\u003emay\u003c/em\u003e result in a noticable performance degradation, depending\non your actual use case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate support for \u003ccode\u003ecache(self)\u003c/code\u003e returning \u003ccode\u003eNone\u003c/code\u003e to suppress\ncaching with the \u003ccode\u003e@cachedmethod\u003c/code\u003e decorator.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ev5.5.2 (2025-02-20)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/e497575fcb4d29dfb773824956539215db964059\"\u003e\u003ccode\u003ee497575\u003c/code\u003e\u003c/a\u003e Release v6.0.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/0a8f391979f72f3237be8cdb79d6128dd5caeb93\"\u003e\u003ccode\u003e0a8f391\u003c/code\u003e\u003c/a\u003e Update related projects section.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/3afef37bdbf8fa8f6dddbc303ecd91c9fd32ab01\"\u003e\u003ccode\u003e3afef37\u003c/code\u003e\u003c/a\u003e Pre-release v6.0.0b4.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.3.2...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003cp\u003eIt leverages charset-normalizer in a better way! Check it out, you will gain up to being 3X faster and get a real/respectable support with it.\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebuild-requirements.txt\u003c/code\u003e as per using \u003ccode\u003epyproject.toml\u003c/code\u003e native build configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/integration.py\u003c/code\u003e and \u003ccode\u003ebin/serve.py\u003c/code\u003e in favor of downstream integration test (see noxfile).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e in favor of \u003ccode\u003epyproject.toml\u003c/code\u003e metadata configuration.\u003c/li\u003e\n\u003cli\u003eUnused \u003ccode\u003eutils.range_scan\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConverting content to Unicode bytes may insert \u003ccode\u003eutf_8\u003c/code\u003e instead of preferred \u003ccode\u003eutf-8\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning \u0026quot;'count' is passed as positional argument\u0026quot; when converting to Unicode bytes on Python 3.13+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0\"\u003e3.4.0\u003c/a\u003e (2024-10-08)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.6.1 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.8.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.10.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release. Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003cp\u003eThis release was published to PyPI using Trusted Publishing.\u003c/p\u003e\n\u003ch2\u003ednspython 2.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.9.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release.  Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns/btreezone.py provides another zone versioned implementation built on top of a\nB-tree.  It maintains DNSSEC sort order, labels nodes as delegation points or glue,\nand can find the \u0026quot;bounds\u0026quot; of a name (useful for DNSSEC responses).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/query.py now provides make_socket(), make_ssl_socket(), and make_ssl_context()\nto make using persistent connections with the query code easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/win32util.py now supports explicitly setting the configuration method used to get\nsystem dns info, using the set_config_method() function.   There is a new configuration\nmethod that uses the Win32 API, which can be set using\nset_config_method(ConfigMethod.Win32).  We are considering making the Win32 API\nthe default in the future as we believe it to be the most accurate.  Any feedback on\nit compared to the other methods is welcome.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe DSYNC record is now supported.  This type is still in draft stage at the IETF\nand is subject to change.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns.query.https() and dns.asyncquery.https() now support HTTP/3 and the http_version\nparameter may be used to specify which version to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the cryptography module is installed, then dnspython will now create deterministic\nECDSA signatures by default.  Cryptography, if installed, must be at least version 43.\nThanks to Jakob Schlyter for adding the feature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe RESINFO and WALLET RdataTypes are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe COOKIE and Report-Channel EDNS0 options are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAll supported RdataTypes can now be imported at a single time rather than lazily on\nfirst use by calling dns.rdata.load_all_types().\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe SVCB and HTTPS records now support the ohttp parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003exfr() and inbound_xfr() now share a common implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTokens are now supported for QUIC and HTTP/3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.from_wire() now saves the input wire format in the Message's \u0026quot;wire\u0026quot;\nattribute.  Likewise, dns.message.Message.to_wire() now records the generated\nwire format in that attribute.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe dns.message.Message object now has a get_options() helper to retrieve EDNS0\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/77fd94cd9716faf23e0a6e333f6568fc24284402\"\u003e\u003ccode\u003e77fd94c\u003c/code\u003e\u003c/a\u003e 2.8.0 versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/884f38345a8152342fe8ab5da8db9aab654051ba\"\u003e\u003ccode\u003e884f383\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/1938fe331f97376bf91c028fbfb8c7588c1b84f4\"\u003e\u003ccode\u003e1938fe3\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a35d6925efe20744e8cf7545d19d03ba06e7ab6f\"\u003e\u003ccode\u003ea35d692\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/c862baaf0d0aa36d2e7003dfe226cd6ad4d827c4\"\u003e\u003ccode\u003ec862baa\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/0945d5923d58048c17325975f70f0738c87570b4\"\u003e\u003ccode\u003e0945d59\u003c/code\u003e\u003c/a\u003e more lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8fa6766d2f7a2431372fc912fb334e752290ebf2\"\u003e\u003ccode\u003e8fa6766\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/641633503ee6b07bf382594ac04707072b90de18\"\u003e\u003ccode\u003e6416335\u003c/code\u003e\u003c/a\u003e Type syntax (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a4591447b7d6e38479bcddb14de3b69f314e7009\"\u003e\u003ccode\u003ea459144\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a0d5f172e89f30709b47b59fb0919d8cf137f611\"\u003e\u003ccode\u003ea0d5f17\u003c/code\u003e\u003c/a\u003e fix the all entries\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.6.1...v2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-cors` from 6.0.0 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/corydolphin/flask-cors/releases\"\u003eflask-cors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInvert regex sorting to make it correctly match the intent (sorting by specificity descending) \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1.dev\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/a5003f391e56f74f11a3e509cd180787c75eb6b0\"\u003e\u003ccode\u003ea5003f3\u003c/code\u003e\u003c/a\u003e Fix README file extension in pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/4ad56d6c20252d36031c74ba8386a81e94286f40\"\u003e\u003ccode\u003e4ad56d6\u003c/code\u003e\u003c/a\u003e Fix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 6.8.0 to 8.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev8.7.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.metadata()\u003c/code\u003e (and \u003ccode\u003eDistribution.metadata\u003c/code\u003e) can now return \u003ccode\u003eNone\u003c/code\u003e if the metadata directory exists but not metadata file is present. (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise consistent ValueError for invalid EntryPoint.value (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed indentation logic to also honor blank lines.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#119650\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeferred import of zipfile.Path (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeferred import of json (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRely on zipp overlay for zipfile.Path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.4.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/708dff4f1ab89bdd126e3e8c56098d04282c5809\"\u003e\u003ccode\u003e708dff4\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b3065f03cc3395f46ed575e612e213f92a064879\"\u003e\u003ccode\u003eb3065f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/519\"\u003e#519\u003c/a\u003e from python/bugfix/493-metadata-missing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/e4351c226765f53a40316fa6aab50488aee8a90f\"\u003e\u003ccode\u003ee4351c2\u003c/code\u003e\u003c/a\u003e Add a new test capturing the new expectation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/5a657051f7386de6f0560c200d78e941be2c8058\"\u003e\u003ccode\u003e5a65705\u003c/code\u003e\u003c/a\u003e Refactor the casting into a wrapper for brevity and to document its purpose.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0830c39b8a23e48024365120c0e97a6f7c36c5ec\"\u003e\u003ccode\u003e0830c39\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/22bb567692d8e7bd216f864a9d8dee1272ee8674\"\u003e\u003ccode\u003e22bb567\u003c/code\u003e\u003c/a\u003e Fix type errors where metadata could be None.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/57f31d77e18fef11dfadfd44775f253971c36920\"\u003e\u003ccode\u003e57f31d7\u003c/code\u003e\u003c/a\u003e Allow metadata to return None when there is no metadata present.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b9c4be4253250ad604610db66204e5fa70fa2455\"\u003e\u003ccode\u003eb9c4be4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e from python/bugfix/488-bad-ep-value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9f8af013635833cf3ac348413c9ac63b37caa3dd\"\u003e\u003ccode\u003e9f8af01\u003c/code\u003e\u003c/a\u003e Prefer a cached property, as the property is likely to be retrieved at least ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/f179e28888b2c6caf12baaf5449ff1cd82513dfe\"\u003e\u003ccode\u003ef179e28\u003c/code\u003e\u003c/a\u003e Also raise ValueError on construction if the value is invalid.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v6.8.0...v8.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `itsdangerous` from 2.1.2 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/releases\"\u003eitsdangerous's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003cp\u003eThis is a feature release, which includes new features, removes previously deprecated code, and adds new deprecations. The 2.2.x branch is now the supported fix branch, the 2.1.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003eChanges: \u003ca href=\"https://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\"\u003ehttps://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/itsdangerous/milestone/8?closed=1\"\u003ehttps://github.com/pallets/itsdangerous/milestone/8?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking. By default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a different \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return type of its \u003ccode\u003edumps\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/blob/main/CHANGES.rst\"\u003eitsdangerous's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-16\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7. :pr:\u003ccode\u003e372\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e326\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e371\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking.\nBy default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a\ndifferent \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return\ntype of its \u003ccode\u003edumps\u003c/code\u003e method. :issue:\u003ccode\u003e347\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e375\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/096c8d42545d3b68ea21a4f890fb2b2d8979c0bd\"\u003e\u003ccode\u003e096c8d4\u003c/code\u003e\u003c/a\u003e release version 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/7f4dcf83a07bb3d53f4e0e65ef1b43327b4cca90\"\u003e\u003ccode\u003e7f4dcf8\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/93ae366874bbd4f69d90495c45b2cd336387496c\"\u003e\u003ccode\u003e93ae366\u003c/code\u003e\u003c/a\u003e change entry for generic serializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/135eb234ed4a07520779ffb679407b7d27c8ffe6\"\u003e\u003ccode\u003e135eb23\u003c/code\u003e\u003c/a\u003e Generic serializer (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/999ce7af1f0502a224d33338e6ded8bc1e81cb2f\"\u003e\u003ccode\u003e999ce7a\u003c/code\u003e\u003c/a\u003e Improve generic typing further\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/52890d78bb6d92eac4d8d84f33f61be8bd803da7\"\u003e\u003ccode\u003e52890d7\u003c/code\u003e\u003c/a\u003e improve generic typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/385c0eb7501b121b1fddafe19c547073f5a458a0\"\u003e\u003ccode\u003e385c0eb\u003c/code\u003e\u003c/a\u003e type \u003ccode\u003eSerializer\u003c/code\u003e as generic (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/01001c63af4a1c58b65328b2aad3df75a6edc843\"\u003e\u003ccode\u003e01001c6\u003c/code\u003e\u003c/a\u003e type Serializer as generic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/bc88e945d31c407e16c3f4e1c713c12dd598e58d\"\u003e\u003ccode\u003ebc88e94\u003c/code\u003e\u003c/a\u003e improve typing (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/69a3bca7582859bc8ce83ccc28b0cf33f7909388\"\u003e\u003ccode\u003e69a3bca\u003c/code\u003e\u003c/a\u003e improve typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/itsdangerous/compare/2.1.2...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nest-asyncio` from 1.5.8 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/erdewit/nest_asyncio/releases\"\u003enest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev1.6.0\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/19f396f9396bfd34b1b0caeb9b4c631ee3d7eb21\"\u003e\u003ccode\u003e19f396f\u003c/code\u003e\u003c/a\u003e Remove redundant blank line.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c31e7c44f063819ea2d0738e3c72c25458d3fd1b\"\u003e\u003ccode\u003ec31e7c4\u003c/code\u003e\u003c/a\u003e Pre-empt current task before running handle, allowing unpatched tasks, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/80\"\u003e#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/35618de086e8844d24039d2fcd090b8f1647c743\"\u003e\u003ccode\u003e35618de\u003c/code\u003e\u003c/a\u003e v1.5.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c4b8289fe4f4a3192fd1d501e74df08fd93ed348\"\u003e\u003ccode\u003ec4b8289\u003c/code\u003e\u003c/a\u003e Fix patching an already running Proactor loop, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/87\"\u003e#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/d5a13b0d5f156ac9076fbc244f49fb9d48af9bbc\"\u003e\u003ccode\u003ed5a13b0\u003c/code\u003e\u003c/a\u003e Update link to build icon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/a48a68a47e182bd7e1f86c60dfc07d7b8509508b\"\u003e\u003ccode\u003ea48a68a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/84\"\u003e#84\u003c/a\u003e from 5j9/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c20e77426bfb9be50d514a850bc4cabbbc69f114\"\u003e\u003ccode\u003ec20e774\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/f7ce59048cdaace5a1a82c78ef476c3bbb3b664a\"\u003e\u003ccode\u003ef7ce590\u003c/code\u003e\u003c/a\u003e v1.5.8\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/erdewit/nest_asyncio/compare/v1.5.8...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.8.0 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent partial matching of \u003ccode\u003eiss\u003c/code\u003e claim. Thanks \u003ca href=\"https://github.com/fabianbadoi\"\u003e\u003ccode\u003e@​fabianbadoi\u003c/code\u003e\u003c/a\u003e! (See: \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisori...\n\n_Description has been truncated_","html_url":"https://github.com/asusoda/platform/pull/87","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asusoda%2Fplatform/issues/87","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/87/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":"/sdk/python","pr_created_at":"2025-10-01T20:01:53.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"3474933097","node_id":"PR_kwDOHF08OM6roWsj","number":1119,"state":"open","title":"chore(deps): bump aiosignal from 1.3.1 to 1.4.0 in /sdk/python","user":"dependabot[bot]","labels":["stale"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-10-01T20:01:53.000Z","updated_at":"2025-11-02T04:00:37.296Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"}],"path":"/sdk/python","ecosystem":"pip"},"body":"Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal\u0026package-manager=pip\u0026previous-version=1.3.1\u0026new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/dolanor/dagger/pull/1119","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dolanor%2Fdagger/issues/1119","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1119/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2025-09-30T07:29:43.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"3467964984","node_id":"PR_kwDOKXLyYM6rQl70","number":85,"state":"open","title":"Bump the python-deps group across 1 directory with 30 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-30T07:29:43.000Z","updated_at":"2025-10-03T07:31:37.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-deps","update_count":30,"packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"asgiref","old_version":"3.9.1","new_version":"3.9.2","repository_url":"https://github.com/django/asgiref"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"attrs","old_version":"23.1.0","new_version":"25.3.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"cachetools","old_version":"5.3.2","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.6.1","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"flask-cors","old_version":"6.0.0","new_version":"6.0.1","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"importlib-metadata","old_version":"6.8.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"nest-asyncio","old_version":"1.5.8","new_version":"1.6.0","repository_url":"https://github.com/erdewit/nest_asyncio"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.15.1","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"python-engineio","old_version":"4.9.0","new_version":"4.12.3","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-socketio","old_version":"5.11.2","new_version":"5.13.0","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"simple-websocket","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/miguelgrinberg/simple-websocket"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"werkzeug","old_version":"3.0.6","new_version":"3.1.3","repository_url":"https://github.com/pallets/werkzeug"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.183.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"selenium","old_version":"4.32.0","new_version":"4.35.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"cryptography","old_version":"45.0.6","new_version":"46.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"notion-client","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-genai","old_version":"1.30.0","new_version":"1.39.1","repository_url":"https://github.com/googleapis/python-genai"},{"name":"anthropic","old_version":"0.64.0","new_version":"0.69.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"1.102.0","new_version":"1.109.1","repository_url":"https://github.com/openai/openai-python"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the python-deps group with 29 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.9.2` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `23.1.0` | `25.3.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.3.2` | `6.2.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.6.1` | `2.8.0` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.0` | `6.0.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.8.0` | `8.7.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [nest-asyncio](https://github.com/erdewit/nest_asyncio) | `1.5.8` | `1.6.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.15.1` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.9.0` | `4.12.3` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.11.2` | `5.13.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [simple-websocket](https://github.com/miguelgrinberg/simple-websocket) | `1.0.0` | `1.1.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.0.6` | `3.1.3` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.183.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.32.0` | `4.35.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.6` | `46.0.1` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `2.4.0` | `2.5.0` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.30.0` | `1.39.1` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.64.0` | `0.69.0` |\n| [openai](https://github.com/openai/openai-python) | `1.102.0` | `1.109.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.9.1 to 3.9.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.9.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-timeout` from 4.0.3 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/releases\"\u003easync-timeout's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst\"\u003easync-timeout's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.1 (2024-11-06)\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.0.0 (2024-10-31)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/cc52d410e733b302873e6e52db9a9b6578d053a4\"\u003e\u003ccode\u003ecc52d41\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/1af7d7165d598af03e51952a679c690690dc7f8e\"\u003e\u003ccode\u003e1af7d71\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3bf26d96e3d1830a0e72ddab9c6a2c87e1f4380a\"\u003e\u003ccode\u003e3bf26d9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/423\"\u003e#423\u003c/a\u003e: add requirements.txt to sdist package (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/380e8ba5bf77e3cd184df8a5f51dc929d93d8553\"\u003e\u003ccode\u003e380e8ba\u003c/code\u003e\u003c/a\u003e Mention condition import of asyncio.timeout / async_timeout.timeout in README...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/8a232d0f7fc1af88c8d921500d78bbefc2bc545c\"\u003e\u003ccode\u003e8a232d0\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3d3e3e45420ac6ea0ef77c9e32388e252e12ac4d\"\u003e\u003ccode\u003e3d3e3e4\u003c/code\u003e\u003c/a\u003e Bump to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/d5c21f3dee7eeb06823af77284ad2a899611b28e\"\u003e\u003ccode\u003ed5c21f3\u003c/code\u003e\u003c/a\u003e Mimic asyncio.Timeout behavior (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/a1111c2597b9ce8d34b823c1b993689339ea9fd6\"\u003e\u003ccode\u003ea1111c2\u003c/code\u003e\u003c/a\u003e Drop deprecated sync context manager support (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/00fd343ce6ba2ccc291c0f6e09fea8998cbfe3a1\"\u003e\u003ccode\u003e00fd343\u003c/code\u003e\u003c/a\u003e Imports cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/7b61b33ae0ecee0e0bb0e09f2e5787c647d4ffb8\"\u003e\u003ccode\u003e7b61b33\u003c/code\u003e\u003c/a\u003e Update CI config file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-timeout/compare/v4.0.3...v5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 23.1.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 5.3.2 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.0.0 (2025-05-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequire Python 3.9 or later (breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003eMRUCache\u003c/code\u003e and the \u003ccode\u003e@func.mru_cache\u003c/code\u003e decorator (breaking\nchange).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd an optional \u003ccode\u003econdition\u003c/code\u003e parameter to the \u003ccode\u003e@cached\u003c/code\u003e and\n\u003ccode\u003e@cachedmethod\u003c/code\u003e decorators, which, when used with a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance, should improve \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues in massively\nparallel environments.  Note that this will inflict some performance\npenalty, and therefore has to be enabled explicitly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert the \u003ccode\u003ecachetools.func\u003c/code\u003e decorators to use a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance to deal with \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues.  Note that\nthis \u003cem\u003emay\u003c/em\u003e result in a noticable performance degradation, depending\non your actual use case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate support for \u003ccode\u003ecache(self)\u003c/code\u003e returning \u003ccode\u003eNone\u003c/code\u003e to suppress\ncaching with the \u003ccode\u003e@cachedmethod\u003c/code\u003e decorator.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ev5.5.2 (2025-02-20)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/e497575fcb4d29dfb773824956539215db964059\"\u003e\u003ccode\u003ee497575\u003c/code\u003e\u003c/a\u003e Release v6.0.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/0a8f391979f72f3237be8cdb79d6128dd5caeb93\"\u003e\u003ccode\u003e0a8f391\u003c/code\u003e\u003c/a\u003e Update related projects section.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/3afef37bdbf8fa8f6dddbc303ecd91c9fd32ab01\"\u003e\u003ccode\u003e3afef37\u003c/code\u003e\u003c/a\u003e Pre-release v6.0.0b4.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.3.2...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003cp\u003eIt leverages charset-normalizer in a better way! Check it out, you will gain up to being 3X faster and get a real/respectable support with it.\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebuild-requirements.txt\u003c/code\u003e as per using \u003ccode\u003epyproject.toml\u003c/code\u003e native build configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/integration.py\u003c/code\u003e and \u003ccode\u003ebin/serve.py\u003c/code\u003e in favor of downstream integration test (see noxfile).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e in favor of \u003ccode\u003epyproject.toml\u003c/code\u003e metadata configuration.\u003c/li\u003e\n\u003cli\u003eUnused \u003ccode\u003eutils.range_scan\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConverting content to Unicode bytes may insert \u003ccode\u003eutf_8\u003c/code\u003e instead of preferred \u003ccode\u003eutf-8\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning \u0026quot;'count' is passed as positional argument\u0026quot; when converting to Unicode bytes on Python 3.13+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0\"\u003e3.4.0\u003c/a\u003e (2024-10-08)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.6.1 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.8.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.10.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release. Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003cp\u003eThis release was published to PyPI using Trusted Publishing.\u003c/p\u003e\n\u003ch2\u003ednspython 2.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.9.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release.  Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns/btreezone.py provides another zone versioned implementation built on top of a\nB-tree.  It maintains DNSSEC sort order, labels nodes as delegation points or glue,\nand can find the \u0026quot;bounds\u0026quot; of a name (useful for DNSSEC responses).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/query.py now provides make_socket(), make_ssl_socket(), and make_ssl_context()\nto make using persistent connections with the query code easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/win32util.py now supports explicitly setting the configuration method used to get\nsystem dns info, using the set_config_method() function.   There is a new configuration\nmethod that uses the Win32 API, which can be set using\nset_config_method(ConfigMethod.Win32).  We are considering making the Win32 API\nthe default in the future as we believe it to be the most accurate.  Any feedback on\nit compared to the other methods is welcome.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe DSYNC record is now supported.  This type is still in draft stage at the IETF\nand is subject to change.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns.query.https() and dns.asyncquery.https() now support HTTP/3 and the http_version\nparameter may be used to specify which version to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the cryptography module is installed, then dnspython will now create deterministic\nECDSA signatures by default.  Cryptography, if installed, must be at least version 43.\nThanks to Jakob Schlyter for adding the feature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe RESINFO and WALLET RdataTypes are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe COOKIE and Report-Channel EDNS0 options are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAll supported RdataTypes can now be imported at a single time rather than lazily on\nfirst use by calling dns.rdata.load_all_types().\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe SVCB and HTTPS records now support the ohttp parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003exfr() and inbound_xfr() now share a common implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTokens are now supported for QUIC and HTTP/3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.from_wire() now saves the input wire format in the Message's \u0026quot;wire\u0026quot;\nattribute.  Likewise, dns.message.Message.to_wire() now records the generated\nwire format in that attribute.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe dns.message.Message object now has a get_options() helper to retrieve EDNS0\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/77fd94cd9716faf23e0a6e333f6568fc24284402\"\u003e\u003ccode\u003e77fd94c\u003c/code\u003e\u003c/a\u003e 2.8.0 versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/884f38345a8152342fe8ab5da8db9aab654051ba\"\u003e\u003ccode\u003e884f383\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/1938fe331f97376bf91c028fbfb8c7588c1b84f4\"\u003e\u003ccode\u003e1938fe3\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a35d6925efe20744e8cf7545d19d03ba06e7ab6f\"\u003e\u003ccode\u003ea35d692\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/c862baaf0d0aa36d2e7003dfe226cd6ad4d827c4\"\u003e\u003ccode\u003ec862baa\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/0945d5923d58048c17325975f70f0738c87570b4\"\u003e\u003ccode\u003e0945d59\u003c/code\u003e\u003c/a\u003e more lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8fa6766d2f7a2431372fc912fb334e752290ebf2\"\u003e\u003ccode\u003e8fa6766\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/641633503ee6b07bf382594ac04707072b90de18\"\u003e\u003ccode\u003e6416335\u003c/code\u003e\u003c/a\u003e Type syntax (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a4591447b7d6e38479bcddb14de3b69f314e7009\"\u003e\u003ccode\u003ea459144\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a0d5f172e89f30709b47b59fb0919d8cf137f611\"\u003e\u003ccode\u003ea0d5f17\u003c/code\u003e\u003c/a\u003e fix the all entries\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.6.1...v2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-cors` from 6.0.0 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/corydolphin/flask-cors/releases\"\u003eflask-cors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInvert regex sorting to make it correctly match the intent (sorting by specificity descending) \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1.dev\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/a5003f391e56f74f11a3e509cd180787c75eb6b0\"\u003e\u003ccode\u003ea5003f3\u003c/code\u003e\u003c/a\u003e Fix README file extension in pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/4ad56d6c20252d36031c74ba8386a81e94286f40\"\u003e\u003ccode\u003e4ad56d6\u003c/code\u003e\u003c/a\u003e Fix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 6.8.0 to 8.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev8.7.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.metadata()\u003c/code\u003e (and \u003ccode\u003eDistribution.metadata\u003c/code\u003e) can now return \u003ccode\u003eNone\u003c/code\u003e if the metadata directory exists but not metadata file is present. (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise consistent ValueError for invalid EntryPoint.value (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed indentation logic to also honor blank lines.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#119650\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeferred import of zipfile.Path (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeferred import of json (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRely on zipp overlay for zipfile.Path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.4.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/708dff4f1ab89bdd126e3e8c56098d04282c5809\"\u003e\u003ccode\u003e708dff4\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b3065f03cc3395f46ed575e612e213f92a064879\"\u003e\u003ccode\u003eb3065f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/519\"\u003e#519\u003c/a\u003e from python/bugfix/493-metadata-missing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/e4351c226765f53a40316fa6aab50488aee8a90f\"\u003e\u003ccode\u003ee4351c2\u003c/code\u003e\u003c/a\u003e Add a new test capturing the new expectation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/5a657051f7386de6f0560c200d78e941be2c8058\"\u003e\u003ccode\u003e5a65705\u003c/code\u003e\u003c/a\u003e Refactor the casting into a wrapper for brevity and to document its purpose.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0830c39b8a23e48024365120c0e97a6f7c36c5ec\"\u003e\u003ccode\u003e0830c39\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/22bb567692d8e7bd216f864a9d8dee1272ee8674\"\u003e\u003ccode\u003e22bb567\u003c/code\u003e\u003c/a\u003e Fix type errors where metadata could be None.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/57f31d77e18fef11dfadfd44775f253971c36920\"\u003e\u003ccode\u003e57f31d7\u003c/code\u003e\u003c/a\u003e Allow metadata to return None when there is no metadata present.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b9c4be4253250ad604610db66204e5fa70fa2455\"\u003e\u003ccode\u003eb9c4be4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e from python/bugfix/488-bad-ep-value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9f8af013635833cf3ac348413c9ac63b37caa3dd\"\u003e\u003ccode\u003e9f8af01\u003c/code\u003e\u003c/a\u003e Prefer a cached property, as the property is likely to be retrieved at least ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/f179e28888b2c6caf12baaf5449ff1cd82513dfe\"\u003e\u003ccode\u003ef179e28\u003c/code\u003e\u003c/a\u003e Also raise ValueError on construction if the value is invalid.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v6.8.0...v8.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `itsdangerous` from 2.1.2 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/releases\"\u003eitsdangerous's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003cp\u003eThis is a feature release, which includes new features, removes previously deprecated code, and adds new deprecations. The 2.2.x branch is now the supported fix branch, the 2.1.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003eChanges: \u003ca href=\"https://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\"\u003ehttps://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/itsdangerous/milestone/8?closed=1\"\u003ehttps://github.com/pallets/itsdangerous/milestone/8?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking. By default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a different \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return type of its \u003ccode\u003edumps\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/blob/main/CHANGES.rst\"\u003eitsdangerous's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-16\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7. :pr:\u003ccode\u003e372\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e326\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e371\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking.\nBy default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a\ndifferent \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return\ntype of its \u003ccode\u003edumps\u003c/code\u003e method. :issue:\u003ccode\u003e347\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e375\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/096c8d42545d3b68ea21a4f890fb2b2d8979c0bd\"\u003e\u003ccode\u003e096c8d4\u003c/code\u003e\u003c/a\u003e release version 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/7f4dcf83a07bb3d53f4e0e65ef1b43327b4cca90\"\u003e\u003ccode\u003e7f4dcf8\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/93ae366874bbd4f69d90495c45b2cd336387496c\"\u003e\u003ccode\u003e93ae366\u003c/code\u003e\u003c/a\u003e change entry for generic serializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/135eb234ed4a07520779ffb679407b7d27c8ffe6\"\u003e\u003ccode\u003e135eb23\u003c/code\u003e\u003c/a\u003e Generic serializer (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/999ce7af1f0502a224d33338e6ded8bc1e81cb2f\"\u003e\u003ccode\u003e999ce7a\u003c/code\u003e\u003c/a\u003e Improve generic typing further\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/52890d78bb6d92eac4d8d84f33f61be8bd803da7\"\u003e\u003ccode\u003e52890d7\u003c/code\u003e\u003c/a\u003e improve generic typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/385c0eb7501b121b1fddafe19c547073f5a458a0\"\u003e\u003ccode\u003e385c0eb\u003c/code\u003e\u003c/a\u003e type \u003ccode\u003eSerializer\u003c/code\u003e as generic (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/01001c63af4a1c58b65328b2aad3df75a6edc843\"\u003e\u003ccode\u003e01001c6\u003c/code\u003e\u003c/a\u003e type Serializer as generic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/bc88e945d31c407e16c3f4e1c713c12dd598e58d\"\u003e\u003ccode\u003ebc88e94\u003c/code\u003e\u003c/a\u003e improve typing (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/69a3bca7582859bc8ce83ccc28b0cf33f7909388\"\u003e\u003ccode\u003e69a3bca\u003c/code\u003e\u003c/a\u003e improve typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/itsdangerous/compare/2.1.2...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nest-asyncio` from 1.5.8 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/erdewit/nest_asyncio/releases\"\u003enest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev1.6.0\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/19f396f9396bfd34b1b0caeb9b4c631ee3d7eb21\"\u003e\u003ccode\u003e19f396f\u003c/code\u003e\u003c/a\u003e Remove redundant blank line.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c31e7c44f063819ea2d0738e3c72c25458d3fd1b\"\u003e\u003ccode\u003ec31e7c4\u003c/code\u003e\u003c/a\u003e Pre-empt current task before running handle, allowing unpatched tasks, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/80\"\u003e#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/35618de086e8844d24039d2fcd090b8f1647c743\"\u003e\u003ccode\u003e35618de\u003c/code\u003e\u003c/a\u003e v1.5.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c4b8289fe4f4a3192fd1d501e74df08fd93ed348\"\u003e\u003ccode\u003ec4b8289\u003c/code\u003e\u003c/a\u003e Fix patching an already running Proactor loop, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/87\"\u003e#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/d5a13b0d5f156ac9076fbc244f49fb9d48af9bbc\"\u003e\u003ccode\u003ed5a13b0\u003c/code\u003e\u003c/a\u003e Update link to build icon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/a48a68a47e182bd7e1f86c60dfc07d7b8509508b\"\u003e\u003ccode\u003ea48a68a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/84\"\u003e#84\u003c/a\u003e from 5j9/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c20e77426bfb9be50d514a850bc4cabbbc69f114\"\u003e\u003ccode\u003ec20e774\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/f7ce59048cdaace5a1a82c78ef476c3bbb3b664a\"\u003e\u003ccode\u003ef7ce590\u003c/code\u003e\u003c/a\u003e v1.5.8\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/erdewit/nest_asyncio/compare/v1.5.8...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.8.0 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent partial matching of \u003ccode\u003eiss\u003c/code\u003e claim. Thanks \u003ca href=\"https://github.com/fabianbadoi\"\u003e\u003ccode\u003e@​fabianbadoi\u003c/code\u003e\u003c/a\u003e! (See: \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\"\u003ehttps://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-x...\n\n_Description has been truncated_","html_url":"https://github.com/asusoda/platform/pull/85","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asusoda%2Fplatform/issues/85","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/85/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2025-09-29T09:15:08.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"2869718703","node_id":"PR_kwDOKXLyYM6rDG6v","number":84,"state":"open","title":"Bump the python-deps group across 1 directory with 28 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T09:15:08.000Z","updated_at":"2025-09-29T09:15:09.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-deps","update_count":28,"packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"asgiref","old_version":"3.9.1","new_version":"3.9.2","repository_url":"https://github.com/django/asgiref"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"attrs","old_version":"23.1.0","new_version":"25.3.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.6.1","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"flask-cors","old_version":"6.0.0","new_version":"6.0.1","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"importlib-metadata","old_version":"6.8.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"nest-asyncio","old_version":"1.5.8","new_version":"1.6.0","repository_url":"https://github.com/erdewit/nest_asyncio"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.15.1","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"python-engineio","old_version":"4.9.0","new_version":"4.12.3","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-socketio","old_version":"5.11.2","new_version":"5.13.0","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"simple-websocket","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/miguelgrinberg/simple-websocket"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"werkzeug","old_version":"3.0.6","new_version":"3.1.3","repository_url":"https://github.com/pallets/werkzeug"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.183.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"selenium","old_version":"4.32.0","new_version":"4.35.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"cryptography","old_version":"45.0.6","new_version":"46.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"notion-client","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-genai","old_version":"1.30.0","new_version":"1.39.1","repository_url":"https://github.com/googleapis/python-genai"},{"name":"anthropic","old_version":"0.64.0","new_version":"0.68.1","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"1.102.0","new_version":"1.109.1","repository_url":"https://github.com/openai/openai-python"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 28 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.9.2` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `23.1.0` | `25.3.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.6.1` | `2.8.0` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.0` | `6.0.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.8.0` | `8.7.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [nest-asyncio](https://github.com/erdewit/nest_asyncio) | `1.5.8` | `1.6.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.15.1` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.9.0` | `4.12.3` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.11.2` | `5.13.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [simple-websocket](https://github.com/miguelgrinberg/simple-websocket) | `1.0.0` | `1.1.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.0.6` | `3.1.3` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.183.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.32.0` | `4.35.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.6` | `46.0.1` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `2.4.0` | `2.5.0` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.30.0` | `1.39.1` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.64.0` | `0.68.1` |\n| [openai](https://github.com/openai/openai-python) | `1.102.0` | `1.109.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.9.1 to 3.9.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.9.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-timeout` from 4.0.3 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/releases\"\u003easync-timeout's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst\"\u003easync-timeout's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.1 (2024-11-06)\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.0.0 (2024-10-31)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/cc52d410e733b302873e6e52db9a9b6578d053a4\"\u003e\u003ccode\u003ecc52d41\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/1af7d7165d598af03e51952a679c690690dc7f8e\"\u003e\u003ccode\u003e1af7d71\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3bf26d96e3d1830a0e72ddab9c6a2c87e1f4380a\"\u003e\u003ccode\u003e3bf26d9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/423\"\u003e#423\u003c/a\u003e: add requirements.txt to sdist package (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/380e8ba5bf77e3cd184df8a5f51dc929d93d8553\"\u003e\u003ccode\u003e380e8ba\u003c/code\u003e\u003c/a\u003e Mention condition import of asyncio.timeout / async_timeout.timeout in README...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/8a232d0f7fc1af88c8d921500d78bbefc2bc545c\"\u003e\u003ccode\u003e8a232d0\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3d3e3e45420ac6ea0ef77c9e32388e252e12ac4d\"\u003e\u003ccode\u003e3d3e3e4\u003c/code\u003e\u003c/a\u003e Bump to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/d5c21f3dee7eeb06823af77284ad2a899611b28e\"\u003e\u003ccode\u003ed5c21f3\u003c/code\u003e\u003c/a\u003e Mimic asyncio.Timeout behavior (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/a1111c2597b9ce8d34b823c1b993689339ea9fd6\"\u003e\u003ccode\u003ea1111c2\u003c/code\u003e\u003c/a\u003e Drop deprecated sync context manager support (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/00fd343ce6ba2ccc291c0f6e09fea8998cbfe3a1\"\u003e\u003ccode\u003e00fd343\u003c/code\u003e\u003c/a\u003e Imports cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/7b61b33ae0ecee0e0bb0e09f2e5787c647d4ffb8\"\u003e\u003ccode\u003e7b61b33\u003c/code\u003e\u003c/a\u003e Update CI config file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-timeout/compare/v4.0.3...v5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 23.1.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003cp\u003eIt leverages charset-normalizer in a better way! Check it out, you will gain up to being 3X faster and get a real/respectable support with it.\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebuild-requirements.txt\u003c/code\u003e as per using \u003ccode\u003epyproject.toml\u003c/code\u003e native build configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/integration.py\u003c/code\u003e and \u003ccode\u003ebin/serve.py\u003c/code\u003e in favor of downstream integration test (see noxfile).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e in favor of \u003ccode\u003epyproject.toml\u003c/code\u003e metadata configuration.\u003c/li\u003e\n\u003cli\u003eUnused \u003ccode\u003eutils.range_scan\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConverting content to Unicode bytes may insert \u003ccode\u003eutf_8\u003c/code\u003e instead of preferred \u003ccode\u003eutf-8\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning \u0026quot;'count' is passed as positional argument\u0026quot; when converting to Unicode bytes on Python 3.13+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0\"\u003e3.4.0\u003c/a\u003e (2024-10-08)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.6.1 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.8.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.10.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release. Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003cp\u003eThis release was published to PyPI using Trusted Publishing.\u003c/p\u003e\n\u003ch2\u003ednspython 2.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.9.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release.  Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns/btreezone.py provides another zone versioned implementation built on top of a\nB-tree.  It maintains DNSSEC sort order, labels nodes as delegation points or glue,\nand can find the \u0026quot;bounds\u0026quot; of a name (useful for DNSSEC responses).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/query.py now provides make_socket(), make_ssl_socket(), and make_ssl_context()\nto make using persistent connections with the query code easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/win32util.py now supports explicitly setting the configuration method used to get\nsystem dns info, using the set_config_method() function.   There is a new configuration\nmethod that uses the Win32 API, which can be set using\nset_config_method(ConfigMethod.Win32).  We are considering making the Win32 API\nthe default in the future as we believe it to be the most accurate.  Any feedback on\nit compared to the other methods is welcome.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe DSYNC record is now supported.  This type is still in draft stage at the IETF\nand is subject to change.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns.query.https() and dns.asyncquery.https() now support HTTP/3 and the http_version\nparameter may be used to specify which version to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the cryptography module is installed, then dnspython will now create deterministic\nECDSA signatures by default.  Cryptography, if installed, must be at least version 43.\nThanks to Jakob Schlyter for adding the feature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe RESINFO and WALLET RdataTypes are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe COOKIE and Report-Channel EDNS0 options are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAll supported RdataTypes can now be imported at a single time rather than lazily on\nfirst use by calling dns.rdata.load_all_types().\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe SVCB and HTTPS records now support the ohttp parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003exfr() and inbound_xfr() now share a common implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTokens are now supported for QUIC and HTTP/3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.from_wire() now saves the input wire format in the Message's \u0026quot;wire\u0026quot;\nattribute.  Likewise, dns.message.Message.to_wire() now records the generated\nwire format in that attribute.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe dns.message.Message object now has a get_options() helper to retrieve EDNS0\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/77fd94cd9716faf23e0a6e333f6568fc24284402\"\u003e\u003ccode\u003e77fd94c\u003c/code\u003e\u003c/a\u003e 2.8.0 versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/884f38345a8152342fe8ab5da8db9aab654051ba\"\u003e\u003ccode\u003e884f383\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/1938fe331f97376bf91c028fbfb8c7588c1b84f4\"\u003e\u003ccode\u003e1938fe3\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a35d6925efe20744e8cf7545d19d03ba06e7ab6f\"\u003e\u003ccode\u003ea35d692\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/c862baaf0d0aa36d2e7003dfe226cd6ad4d827c4\"\u003e\u003ccode\u003ec862baa\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/0945d5923d58048c17325975f70f0738c87570b4\"\u003e\u003ccode\u003e0945d59\u003c/code\u003e\u003c/a\u003e more lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8fa6766d2f7a2431372fc912fb334e752290ebf2\"\u003e\u003ccode\u003e8fa6766\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/641633503ee6b07bf382594ac04707072b90de18\"\u003e\u003ccode\u003e6416335\u003c/code\u003e\u003c/a\u003e Type syntax (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a4591447b7d6e38479bcddb14de3b69f314e7009\"\u003e\u003ccode\u003ea459144\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a0d5f172e89f30709b47b59fb0919d8cf137f611\"\u003e\u003ccode\u003ea0d5f17\u003c/code\u003e\u003c/a\u003e fix the all entries\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.6.1...v2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-cors` from 6.0.0 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/corydolphin/flask-cors/releases\"\u003eflask-cors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInvert regex sorting to make it correctly match the intent (sorting by specificity descending) \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1.dev\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/a5003f391e56f74f11a3e509cd180787c75eb6b0\"\u003e\u003ccode\u003ea5003f3\u003c/code\u003e\u003c/a\u003e Fix README file extension in pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/4ad56d6c20252d36031c74ba8386a81e94286f40\"\u003e\u003ccode\u003e4ad56d6\u003c/code\u003e\u003c/a\u003e Fix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 6.8.0 to 8.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev8.7.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.metadata()\u003c/code\u003e (and \u003ccode\u003eDistribution.metadata\u003c/code\u003e) can now return \u003ccode\u003eNone\u003c/code\u003e if the metadata directory exists but not metadata file is present. (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise consistent ValueError for invalid EntryPoint.value (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed indentation logic to also honor blank lines.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#119650\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeferred import of zipfile.Path (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeferred import of json (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRely on zipp overlay for zipfile.Path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.4.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/708dff4f1ab89bdd126e3e8c56098d04282c5809\"\u003e\u003ccode\u003e708dff4\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b3065f03cc3395f46ed575e612e213f92a064879\"\u003e\u003ccode\u003eb3065f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/519\"\u003e#519\u003c/a\u003e from python/bugfix/493-metadata-missing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/e4351c226765f53a40316fa6aab50488aee8a90f\"\u003e\u003ccode\u003ee4351c2\u003c/code\u003e\u003c/a\u003e Add a new test capturing the new expectation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/5a657051f7386de6f0560c200d78e941be2c8058\"\u003e\u003ccode\u003e5a65705\u003c/code\u003e\u003c/a\u003e Refactor the casting into a wrapper for brevity and to document its purpose.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0830c39b8a23e48024365120c0e97a6f7c36c5ec\"\u003e\u003ccode\u003e0830c39\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/22bb567692d8e7bd216f864a9d8dee1272ee8674\"\u003e\u003ccode\u003e22bb567\u003c/code\u003e\u003c/a\u003e Fix type errors where metadata could be None.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/57f31d77e18fef11dfadfd44775f253971c36920\"\u003e\u003ccode\u003e57f31d7\u003c/code\u003e\u003c/a\u003e Allow metadata to return None when there is no metadata present.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b9c4be4253250ad604610db66204e5fa70fa2455\"\u003e\u003ccode\u003eb9c4be4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e from python/bugfix/488-bad-ep-value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9f8af013635833cf3ac348413c9ac63b37caa3dd\"\u003e\u003ccode\u003e9f8af01\u003c/code\u003e\u003c/a\u003e Prefer a cached property, as the property is likely to be retrieved at least ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/f179e28888b2c6caf12baaf5449ff1cd82513dfe\"\u003e\u003ccode\u003ef179e28\u003c/code\u003e\u003c/a\u003e Also raise ValueError on construction if the value is invalid.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v6.8.0...v8.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `itsdangerous` from 2.1.2 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/releases\"\u003eitsdangerous's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003cp\u003eThis is a feature release, which includes new features, removes previously deprecated code, and adds new deprecations. The 2.2.x branch is now the supported fix branch, the 2.1.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003eChanges: \u003ca href=\"https://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\"\u003ehttps://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/itsdangerous/milestone/8?closed=1\"\u003ehttps://github.com/pallets/itsdangerous/milestone/8?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking. By default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a different \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return type of its \u003ccode\u003edumps\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/blob/main/CHANGES.rst\"\u003eitsdangerous's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-16\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7. :pr:\u003ccode\u003e372\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e326\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e371\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking.\nBy default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a\ndifferent \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return\ntype of its \u003ccode\u003edumps\u003c/code\u003e method. :issue:\u003ccode\u003e347\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e375\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/096c8d42545d3b68ea21a4f890fb2b2d8979c0bd\"\u003e\u003ccode\u003e096c8d4\u003c/code\u003e\u003c/a\u003e release version 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/7f4dcf83a07bb3d53f4e0e65ef1b43327b4cca90\"\u003e\u003ccode\u003e7f4dcf8\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/93ae366874bbd4f69d90495c45b2cd336387496c\"\u003e\u003ccode\u003e93ae366\u003c/code\u003e\u003c/a\u003e change entry for generic serializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/135eb234ed4a07520779ffb679407b7d27c8ffe6\"\u003e\u003ccode\u003e135eb23\u003c/code\u003e\u003c/a\u003e Generic serializer (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/999ce7af1f0502a224d33338e6ded8bc1e81cb2f\"\u003e\u003ccode\u003e999ce7a\u003c/code\u003e\u003c/a\u003e Improve generic typing further\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/52890d78bb6d92eac4d8d84f33f61be8bd803da7\"\u003e\u003ccode\u003e52890d7\u003c/code\u003e\u003c/a\u003e improve generic typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/385c0eb7501b121b1fddafe19c547073f5a458a0\"\u003e\u003ccode\u003e385c0eb\u003c/code\u003e\u003c/a\u003e type \u003ccode\u003eSerializer\u003c/code\u003e as generic (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/01001c63af4a1c58b65328b2aad3df75a6edc843\"\u003e\u003ccode\u003e01001c6\u003c/code\u003e\u003c/a\u003e type Serializer as generic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/bc88e945d31c407e16c3f4e1c713c12dd598e58d\"\u003e\u003ccode\u003ebc88e94\u003c/code\u003e\u003c/a\u003e improve typing (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/69a3bca7582859bc8ce83ccc28b0cf33f7909388\"\u003e\u003ccode\u003e69a3bca\u003c/code\u003e\u003c/a\u003e improve typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/itsdangerous/compare/2.1.2...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nest-asyncio` from 1.5.8 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/erdewit/nest_asyncio/releases\"\u003enest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev1.6.0\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/19f396f9396bfd34b1b0caeb9b4c631ee3d7eb21\"\u003e\u003ccode\u003e19f396f\u003c/code\u003e\u003c/a\u003e Remove redundant blank line.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c31e7c44f063819ea2d0738e3c72c25458d3fd1b\"\u003e\u003ccode\u003ec31e7c4\u003c/code\u003e\u003c/a\u003e Pre-empt current task before running handle, allowing unpatched tasks, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/80\"\u003e#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/35618de086e8844d24039d2fcd090b8f1647c743\"\u003e\u003ccode\u003e35618de\u003c/code\u003e\u003c/a\u003e v1.5.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c4b8289fe4f4a3192fd1d501e74df08fd93ed348\"\u003e\u003ccode\u003ec4b8289\u003c/code\u003e\u003c/a\u003e Fix patching an already running Proactor loop, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/87\"\u003e#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/d5a13b0d5f156ac9076fbc244f49fb9d48af9bbc\"\u003e\u003ccode\u003ed5a13b0\u003c/code\u003e\u003c/a\u003e Update link to build icon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/a48a68a47e182bd7e1f86c60dfc07d7b8509508b\"\u003e\u003ccode\u003ea48a68a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/84\"\u003e#84\u003c/a\u003e from 5j9/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c20e77426bfb9be50d514a850bc4cabbbc69f114\"\u003e\u003ccode\u003ec20e774\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/f7ce59048cdaace5a1a82c78ef476c3bbb3b664a\"\u003e\u003ccode\u003ef7ce590\u003c/code\u003e\u003c/a\u003e v1.5.8\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/erdewit/nest_asyncio/compare/v1.5.8...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.8.0 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent partial matching of \u003ccode\u003eiss\u003c/code\u003e claim. Thanks \u003ca href=\"https://github.com/fabianbadoi\"\u003e\u003ccode\u003e@​fabianbadoi\u003c/code\u003e\u003c/a\u003e! (See: \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\"\u003ehttps://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: use sequence for typing rather than list by \u003ca href=\"https://github.com/imnotjames\"\u003e\u003ccode\u003e@​imnotjames\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/970\"\u003ejpadilla/pyjwt#970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/972\"\u003ejpadilla/pyjwt#972\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/971\"\u003ejpadilla/pyjwt#971\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an RTD config file to resolve RTD build failures by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/977\"\u003ejpadilla/pyjwt#977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update \u003ccode\u003eiat\u003c/code\u003e exception docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/974\"\u003ejpadilla/pyjwt#974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove algorithm requirement for JWT API by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/975\"\u003ejpadilla/pyjwt#975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/978\"\u003ejpadilla/pyjwt#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate SECURITY.md by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/973\"\u003ejpadilla/pyjwt#973\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs fix: decode_complete scope and algorithms by \u003ca href=\"https://github.com/RbnRncn\"\u003e\u003ccode\u003e@​RbnRncn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/982\"\u003ejpadilla/pyjwt#982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix doctest for docs/usage.rst by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/986\"\u003ejpadilla/pyjwt#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix test_utils.py not to xfail by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/987\"\u003ejpadilla/pyjwt#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect jwt.decode audience param doc expression by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/994\"\u003ejpadilla/pyjwt#994\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PS256 encoding and decoding usage by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/992\"\u003ejpadilla/pyjwt#992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd API docs for PyJWK by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/980\"\u003ejpadilla/pyjwt#980\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor project configuration files from setup.cfg to pyproject.toml PEP-518 by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/995\"\u003ejpadilla/pyjwt#995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd JWK support to JWT encode by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/979\"\u003ejpadilla/pyjwt#979\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit hooks to lint pyproject.toml by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1002\"\u003ejpadilla/pyjwt#1002\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd EdDSA algorithm encoding/decoding usage by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/993\"\u003ejpadilla/pyjwt#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRuff linter and formatter changes by \u003ca href=\"https://github.com/gagandeepp\"\u003e\u003ccode\u003e@​gagandeepp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1001\"\u003ejpadilla/pyjwt#1001\u003c/a\u003e\u003c/li...\n\n_Description has been truncated_","html_url":"https://github.com/asusoda/platform/pull/84","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asusoda%2Fplatform/issues/84","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/84/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2025-09-24T07:30:19.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"2855789994","node_id":"PR_kwDOKXLyYM6qN-Wq","number":83,"state":"closed","title":"Bump the python-deps group across 1 directory with 27 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-29T07:41:10.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-24T07:30:19.000Z","updated_at":"2025-09-29T07:41:10.000Z","time_to_close":432651,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-deps","update_count":27,"packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"asgiref","old_version":"3.9.1","new_version":"3.9.2","repository_url":"https://github.com/django/asgiref"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"attrs","old_version":"23.1.0","new_version":"25.3.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.6.1","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"flask-cors","old_version":"6.0.0","new_version":"6.0.1","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"importlib-metadata","old_version":"6.8.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"nest-asyncio","old_version":"1.5.8","new_version":"1.6.0","repository_url":"https://github.com/erdewit/nest_asyncio"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.15.1","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"python-engineio","old_version":"4.9.0","new_version":"4.12.2","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-socketio","old_version":"5.11.2","new_version":"5.13.0","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"simple-websocket","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/miguelgrinberg/simple-websocket"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"werkzeug","old_version":"3.0.6","new_version":"3.1.3","repository_url":"https://github.com/pallets/werkzeug"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.183.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"selenium","old_version":"4.32.0","new_version":"4.35.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"cryptography","old_version":"45.0.6","new_version":"46.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"notion-client","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-genai","old_version":"1.30.0","new_version":"1.38.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"anthropic","old_version":"0.64.0","new_version":"0.68.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"1.102.0","new_version":"1.109.0","repository_url":"https://github.com/openai/openai-python"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.9.2` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `23.1.0` | `25.3.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.6.1` | `2.8.0` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.0` | `6.0.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.8.0` | `8.7.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [nest-asyncio](https://github.com/erdewit/nest_asyncio) | `1.5.8` | `1.6.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.15.1` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.9.0` | `4.12.2` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.11.2` | `5.13.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [simple-websocket](https://github.com/miguelgrinberg/simple-websocket) | `1.0.0` | `1.1.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.0.6` | `3.1.3` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.183.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.32.0` | `4.35.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.6` | `46.0.1` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `2.4.0` | `2.5.0` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.30.0` | `1.38.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.64.0` | `0.68.0` |\n| [openai](https://github.com/openai/openai-python) | `1.102.0` | `1.109.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.9.1 to 3.9.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.9.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-timeout` from 4.0.3 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/releases\"\u003easync-timeout's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst\"\u003easync-timeout's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.1 (2024-11-06)\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.0.0 (2024-10-31)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/cc52d410e733b302873e6e52db9a9b6578d053a4\"\u003e\u003ccode\u003ecc52d41\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/1af7d7165d598af03e51952a679c690690dc7f8e\"\u003e\u003ccode\u003e1af7d71\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3bf26d96e3d1830a0e72ddab9c6a2c87e1f4380a\"\u003e\u003ccode\u003e3bf26d9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/423\"\u003e#423\u003c/a\u003e: add requirements.txt to sdist package (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/380e8ba5bf77e3cd184df8a5f51dc929d93d8553\"\u003e\u003ccode\u003e380e8ba\u003c/code\u003e\u003c/a\u003e Mention condition import of asyncio.timeout / async_timeout.timeout in README...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/8a232d0f7fc1af88c8d921500d78bbefc2bc545c\"\u003e\u003ccode\u003e8a232d0\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3d3e3e45420ac6ea0ef77c9e32388e252e12ac4d\"\u003e\u003ccode\u003e3d3e3e4\u003c/code\u003e\u003c/a\u003e Bump to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/d5c21f3dee7eeb06823af77284ad2a899611b28e\"\u003e\u003ccode\u003ed5c21f3\u003c/code\u003e\u003c/a\u003e Mimic asyncio.Timeout behavior (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/a1111c2597b9ce8d34b823c1b993689339ea9fd6\"\u003e\u003ccode\u003ea1111c2\u003c/code\u003e\u003c/a\u003e Drop deprecated sync context manager support (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/00fd343ce6ba2ccc291c0f6e09fea8998cbfe3a1\"\u003e\u003ccode\u003e00fd343\u003c/code\u003e\u003c/a\u003e Imports cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/7b61b33ae0ecee0e0bb0e09f2e5787c647d4ffb8\"\u003e\u003ccode\u003e7b61b33\u003c/code\u003e\u003c/a\u003e Update CI config file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-timeout/compare/v4.0.3...v5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 23.1.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003cp\u003eIt leverages charset-normalizer in a better way! Check it out, you will gain up to being 3X faster and get a real/respectable support with it.\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebuild-requirements.txt\u003c/code\u003e as per using \u003ccode\u003epyproject.toml\u003c/code\u003e native build configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/integration.py\u003c/code\u003e and \u003ccode\u003ebin/serve.py\u003c/code\u003e in favor of downstream integration test (see noxfile).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e in favor of \u003ccode\u003epyproject.toml\u003c/code\u003e metadata configuration.\u003c/li\u003e\n\u003cli\u003eUnused \u003ccode\u003eutils.range_scan\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConverting content to Unicode bytes may insert \u003ccode\u003eutf_8\u003c/code\u003e instead of preferred \u003ccode\u003eutf-8\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning \u0026quot;'count' is passed as positional argument\u0026quot; when converting to Unicode bytes on Python 3.13+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0\"\u003e3.4.0\u003c/a\u003e (2024-10-08)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.6.1 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.8.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.10.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release. Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003cp\u003eThis release was published to PyPI using Trusted Publishing.\u003c/p\u003e\n\u003ch2\u003ednspython 2.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.9.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release.  Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns/btreezone.py provides another zone versioned implementation built on top of a\nB-tree.  It maintains DNSSEC sort order, labels nodes as delegation points or glue,\nand can find the \u0026quot;bounds\u0026quot; of a name (useful for DNSSEC responses).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/query.py now provides make_socket(), make_ssl_socket(), and make_ssl_context()\nto make using persistent connections with the query code easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/win32util.py now supports explicitly setting the configuration method used to get\nsystem dns info, using the set_config_method() function.   There is a new configuration\nmethod that uses the Win32 API, which can be set using\nset_config_method(ConfigMethod.Win32).  We are considering making the Win32 API\nthe default in the future as we believe it to be the most accurate.  Any feedback on\nit compared to the other methods is welcome.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe DSYNC record is now supported.  This type is still in draft stage at the IETF\nand is subject to change.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns.query.https() and dns.asyncquery.https() now support HTTP/3 and the http_version\nparameter may be used to specify which version to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the cryptography module is installed, then dnspython will now create deterministic\nECDSA signatures by default.  Cryptography, if installed, must be at least version 43.\nThanks to Jakob Schlyter for adding the feature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe RESINFO and WALLET RdataTypes are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe COOKIE and Report-Channel EDNS0 options are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAll supported RdataTypes can now be imported at a single time rather than lazily on\nfirst use by calling dns.rdata.load_all_types().\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe SVCB and HTTPS records now support the ohttp parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003exfr() and inbound_xfr() now share a common implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTokens are now supported for QUIC and HTTP/3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.from_wire() now saves the input wire format in the Message's \u0026quot;wire\u0026quot;\nattribute.  Likewise, dns.message.Message.to_wire() now records the generated\nwire format in that attribute.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe dns.message.Message object now has a get_options() helper to retrieve EDNS0\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/77fd94cd9716faf23e0a6e333f6568fc24284402\"\u003e\u003ccode\u003e77fd94c\u003c/code\u003e\u003c/a\u003e 2.8.0 versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/884f38345a8152342fe8ab5da8db9aab654051ba\"\u003e\u003ccode\u003e884f383\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/1938fe331f97376bf91c028fbfb8c7588c1b84f4\"\u003e\u003ccode\u003e1938fe3\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a35d6925efe20744e8cf7545d19d03ba06e7ab6f\"\u003e\u003ccode\u003ea35d692\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/c862baaf0d0aa36d2e7003dfe226cd6ad4d827c4\"\u003e\u003ccode\u003ec862baa\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/0945d5923d58048c17325975f70f0738c87570b4\"\u003e\u003ccode\u003e0945d59\u003c/code\u003e\u003c/a\u003e more lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8fa6766d2f7a2431372fc912fb334e752290ebf2\"\u003e\u003ccode\u003e8fa6766\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/641633503ee6b07bf382594ac04707072b90de18\"\u003e\u003ccode\u003e6416335\u003c/code\u003e\u003c/a\u003e Type syntax (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a4591447b7d6e38479bcddb14de3b69f314e7009\"\u003e\u003ccode\u003ea459144\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a0d5f172e89f30709b47b59fb0919d8cf137f611\"\u003e\u003ccode\u003ea0d5f17\u003c/code\u003e\u003c/a\u003e fix the all entries\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.6.1...v2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-cors` from 6.0.0 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/corydolphin/flask-cors/releases\"\u003eflask-cors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInvert regex sorting to make it correctly match the intent (sorting by specificity descending) \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1.dev\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/a5003f391e56f74f11a3e509cd180787c75eb6b0\"\u003e\u003ccode\u003ea5003f3\u003c/code\u003e\u003c/a\u003e Fix README file extension in pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/4ad56d6c20252d36031c74ba8386a81e94286f40\"\u003e\u003ccode\u003e4ad56d6\u003c/code\u003e\u003c/a\u003e Fix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 6.8.0 to 8.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev8.7.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.metadata()\u003c/code\u003e (and \u003ccode\u003eDistribution.metadata\u003c/code\u003e) can now return \u003ccode\u003eNone\u003c/code\u003e if the metadata directory exists but not metadata file is present. (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise consistent ValueError for invalid EntryPoint.value (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed indentation logic to also honor blank lines.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#119650\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeferred import of zipfile.Path (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeferred import of json (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRely on zipp overlay for zipfile.Path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.4.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/708dff4f1ab89bdd126e3e8c56098d04282c5809\"\u003e\u003ccode\u003e708dff4\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b3065f03cc3395f46ed575e612e213f92a064879\"\u003e\u003ccode\u003eb3065f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/519\"\u003e#519\u003c/a\u003e from python/bugfix/493-metadata-missing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/e4351c226765f53a40316fa6aab50488aee8a90f\"\u003e\u003ccode\u003ee4351c2\u003c/code\u003e\u003c/a\u003e Add a new test capturing the new expectation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/5a657051f7386de6f0560c200d78e941be2c8058\"\u003e\u003ccode\u003e5a65705\u003c/code\u003e\u003c/a\u003e Refactor the casting into a wrapper for brevity and to document its purpose.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0830c39b8a23e48024365120c0e97a6f7c36c5ec\"\u003e\u003ccode\u003e0830c39\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/22bb567692d8e7bd216f864a9d8dee1272ee8674\"\u003e\u003ccode\u003e22bb567\u003c/code\u003e\u003c/a\u003e Fix type errors where metadata could be None.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/57f31d77e18fef11dfadfd44775f253971c36920\"\u003e\u003ccode\u003e57f31d7\u003c/code\u003e\u003c/a\u003e Allow metadata to return None when there is no metadata present.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b9c4be4253250ad604610db66204e5fa70fa2455\"\u003e\u003ccode\u003eb9c4be4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e from python/bugfix/488-bad-ep-value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9f8af013635833cf3ac348413c9ac63b37caa3dd\"\u003e\u003ccode\u003e9f8af01\u003c/code\u003e\u003c/a\u003e Prefer a cached property, as the property is likely to be retrieved at least ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/f179e28888b2c6caf12baaf5449ff1cd82513dfe\"\u003e\u003ccode\u003ef179e28\u003c/code\u003e\u003c/a\u003e Also raise ValueError on construction if the value is invalid.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v6.8.0...v8.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `itsdangerous` from 2.1.2 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/releases\"\u003eitsdangerous's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003cp\u003eThis is a feature release, which includes new features, removes previously deprecated code, and adds new deprecations. The 2.2.x branch is now the supported fix branch, the 2.1.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003eChanges: \u003ca href=\"https://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\"\u003ehttps://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/itsdangerous/milestone/8?closed=1\"\u003ehttps://github.com/pallets/itsdangerous/milestone/8?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking. By default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a different \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return type of its \u003ccode\u003edumps\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/blob/main/CHANGES.rst\"\u003eitsdangerous's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-16\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7. :pr:\u003ccode\u003e372\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e326\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e371\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking.\nBy default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a\ndifferent \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return\ntype of its \u003ccode\u003edumps\u003c/code\u003e method. :issue:\u003ccode\u003e347\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e375\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/096c8d42545d3b68ea21a4f890fb2b2d8979c0bd\"\u003e\u003ccode\u003e096c8d4\u003c/code\u003e\u003c/a\u003e release version 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/7f4dcf83a07bb3d53f4e0e65ef1b43327b4cca90\"\u003e\u003ccode\u003e7f4dcf8\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/93ae366874bbd4f69d90495c45b2cd336387496c\"\u003e\u003ccode\u003e93ae366\u003c/code\u003e\u003c/a\u003e change entry for generic serializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/135eb234ed4a07520779ffb679407b7d27c8ffe6\"\u003e\u003ccode\u003e135eb23\u003c/code\u003e\u003c/a\u003e Generic serializer (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/999ce7af1f0502a224d33338e6ded8bc1e81cb2f\"\u003e\u003ccode\u003e999ce7a\u003c/code\u003e\u003c/a\u003e Improve generic typing further\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/52890d78bb6d92eac4d8d84f33f61be8bd803da7\"\u003e\u003ccode\u003e52890d7\u003c/code\u003e\u003c/a\u003e improve generic typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/385c0eb7501b121b1fddafe19c547073f5a458a0\"\u003e\u003ccode\u003e385c0eb\u003c/code\u003e\u003c/a\u003e type \u003ccode\u003eSerializer\u003c/code\u003e as generic (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/01001c63af4a1c58b65328b2aad3df75a6edc843\"\u003e\u003ccode\u003e01001c6\u003c/code\u003e\u003c/a\u003e type Serializer as generic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/bc88e945d31c407e16c3f4e1c713c12dd598e58d\"\u003e\u003ccode\u003ebc88e94\u003c/code\u003e\u003c/a\u003e improve typing (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/69a3bca7582859bc8ce83ccc28b0cf33f7909388\"\u003e\u003ccode\u003e69a3bca\u003c/code\u003e\u003c/a\u003e improve typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/itsdangerous/compare/2.1.2...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nest-asyncio` from 1.5.8 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/erdewit/nest_asyncio/releases\"\u003enest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev1.6.0\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/19f396f9396bfd34b1b0caeb9b4c631ee3d7eb21\"\u003e\u003ccode\u003e19f396f\u003c/code\u003e\u003c/a\u003e Remove redundant blank line.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c31e7c44f063819ea2d0738e3c72c25458d3fd1b\"\u003e\u003ccode\u003ec31e7c4\u003c/code\u003e\u003c/a\u003e Pre-empt current task before running handle, allowing unpatched tasks, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/80\"\u003e#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/35618de086e8844d24039d2fcd090b8f1647c743\"\u003e\u003ccode\u003e35618de\u003c/code\u003e\u003c/a\u003e v1.5.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c4b8289fe4f4a3192fd1d501e74df08fd93ed348\"\u003e\u003ccode\u003ec4b8289\u003c/code\u003e\u003c/a\u003e Fix patching an already running Proactor loop, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/87\"\u003e#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/d5a13b0d5f156ac9076fbc244f49fb9d48af9bbc\"\u003e\u003ccode\u003ed5a13b0\u003c/code\u003e\u003c/a\u003e Update link to build icon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/a48a68a47e182bd7e1f86c60dfc07d7b8509508b\"\u003e\u003ccode\u003ea48a68a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/84\"\u003e#84\u003c/a\u003e from 5j9/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c20e77426bfb9be50d514a850bc4cabbbc69f114\"\u003e\u003ccode\u003ec20e774\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/f7ce59048cdaace5a1a82c78ef476c3bbb3b664a\"\u003e\u003ccode\u003ef7ce590\u003c/code\u003e\u003c/a\u003e v1.5.8\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/erdewit/nest_asyncio/compare/v1.5.8...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.8.0 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent partial matching of \u003ccode\u003eiss\u003c/code\u003e claim. Thanks \u003ca href=\"https://github.com/fabianbadoi\"\u003e\u003ccode\u003e@​fabianbadoi\u003c/code\u003e\u003c/a\u003e! (See: \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\"\u003ehttps://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: use sequence for typing rather than list by \u003ca href=\"https://github.com/imnotjames\"\u003e\u003ccode\u003e@​imnotjames\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/970\"\u003ejpadilla/pyjwt#970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/972\"\u003ejpadilla/pyjwt#972\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/971\"\u003ejpadilla/pyjwt#971\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an RTD config file to resolve RTD build failures by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/977\"\u003ejpadilla/pyjwt#977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update \u003ccode\u003eiat\u003c/code\u003e exception docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/974\"\u003ejpadilla/pyjwt#974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove algorithm requirement for JWT API by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/975\"\u003ejpadilla/pyjwt#975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/978\"\u003ejpadilla/pyjwt#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate SECURITY.md by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/973\"\u003ejpadilla/pyjwt#973\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs fix: decode_complete scope and algorithms by \u003ca href=\"https://github.com/RbnRncn\"\u003e\u003ccode\u003e@​RbnRncn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/982\"\u003ejpadilla/pyjwt#982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix doctest for docs/usage.rst by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/986\"\u003ejpadilla/pyjwt#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix test_utils.py not to xfail by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/987\"\u003ejpadilla/pyjwt#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect jwt.decode audience param doc expression by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/994\"\u003ejpadilla/pyjwt#994\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PS256 encoding and decoding usage by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/992\"\u003ejpadilla/pyjwt#992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd API docs for PyJWK by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/980\"\u003ejpadilla/pyjwt#980\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor project configuration files from setup.cfg to pyproject.toml PEP-518 by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/995\"\u003ejpadilla/pyjwt#995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd JWK support to JWT encode by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/979\"\u003ejpadilla/pyjwt#979\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit hooks to lint pyproject.toml by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1002\"\u003ejpadilla/pyjwt#1002\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd EdDSA algorithm encoding/decoding usage by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/993\"\u003ejpadilla/pyjwt#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRuff linter and formatter changes by \u003ca href=\"https://github.com/gagandeepp\"\u003e\u003ccode\u003e@​gagandeepp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1001\"\u003ejpadilla/pyjwt#1001\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate \u003ccode\u003esub\u003c/code\u003e and \u003ccode\u003ejti\u003c/code\u003e claims for the token by \u003ca href=\"https://github.com/Divan009\"\u003e\u003ccode\u003e@​Divan009\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1005\"\u003ejpadilla/pyjwt#1005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ES256 usage  by \u003ca href=\"https://github.com/Gautam-Hegde\"\u003e\u003ccode\u003e@​Gautam-Hegde\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1003\"\u003ejpadilla/pyjwt#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEncode EC keys with a fixed bit length by \u003ca href=\"https://github.com/way-dave\"\u003e\u003ccode\u003e@​way-dave\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/990\"\u003ejpadilla/pyjwt#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1000\"\u003ejpadilla/pyjwt#1000\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8 by \u003ca href=\"https://github.com/kkirsche\"\u003e\u003ccode\u003e@​kkirsche\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1007\"\u003ejpadilla/pyjwt#1007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare 2.10.0 release by \u003ca href=\"https://github.com/benvdh\"\u003e\u003ccode\u003e@​benvdh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1011\"\u003ejpadilla/pyjwt#1011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump codecov/codecov-action from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1014\"\u003ejpadilla/pyjwt#1014\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1006\"\u003ejpadilla/pyjwt#1006\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imnotjames\"\u003e\u003ccode\u003e@​imnotjames\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/970\"\u003ejpadilla/pyjwt#970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/977\"\u003ejpadilla/pyjwt#977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/974\"\u003ejpadilla/pyjwt#974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RbnRncn\"\u003e\u003ccode\u003e@​RbnRncn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/982\"\u003ejpadilla/pyjwt#982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/994\"\u003ejpadilla/pyjwt#994\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/995\"\u003ejpadilla/pyjwt#995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gagandeepp\"\u003e\u003ccode\u003e@​gagandeepp\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1001\"\u003ejpadilla/pyjwt#1001\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Divan009\"\u003e\u003ccode\u003e@​Divan009\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1005\"\u003ejpadilla/pyjwt#1005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Gautam-Hegde\"\u003e\u003ccode\u003e@​Gautam-Hegde\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1003\"\u003ejpadilla/pyjwt#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/way-dave\"\u003e\u003ccode\u003e@​way-dave\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/990\"\u003ejpadilla/pyjwt#990\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.9.0...2.10.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.9.0...2.10.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.10.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Prevent partial matching of `iss` claim by @fabianbadoi in `GHSA-75c5-xw7c-p5pm \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\u0026gt;`__\n\u003ch2\u003e\u003ccode\u003ev2.1...\n\n_Description has been truncated_","html_url":"https://github.com/asusoda/platform/pull/83","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asusoda%2Fplatform/issues/83","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/83/packages"}},{"old_version":"1.2.0","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2025-09-18T05:02:09.000Z","version_change":"1.2.0 → 1.4.0","issue":{"uuid":"2838734795","node_id":"PR_kwDOBS0x486pM6fL","number":294,"state":"closed","title":"Bump aiosignal from 1.2.0 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-18T10:29:20.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-18T05:02:09.000Z","updated_at":"2025-09-18T10:29:20.000Z","time_to_close":19631,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"aiosignal","old_version":"1.2.0","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"}],"path":null,"ecosystem":"pip"},"body":"Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.2.0 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.1\u003c/h2\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved stray quote and comma from setup.cfg preventing PyPI from accepting a\nrelease. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.1 (2022-11-08)\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.2.0...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal\u0026package-manager=pip\u0026previous-version=1.2.0\u0026new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/closeio/socketshark/pull/294","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/closeio%2Fsocketshark/issues/294","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/294/packages"}},{"old_version":"1.3.2","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2025-09-16T08:05:14.000Z","version_change":"1.3.2 → 1.4.0","issue":{"uuid":"3420991517","node_id":"PR_kwDOAVZQxs6ozCw7","number":736,"state":"open","title":"chore(deps): bump aiosignal from 1.3.2 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-16T08:05:14.000Z","updated_at":"2025-09-16T10:48:20.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"aiosignal","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"}],"path":null,"ecosystem":"pip"},"body":"Bumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.2 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.2...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal\u0026package-manager=pip\u0026previous-version=1.3.2\u0026new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/auth0/auth0-python/pull/736","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/auth0%2Fauth0-python/issues/736","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/736/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2025-09-14T03:19:21.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"3414506495","node_id":"PR_kwDOHR9vV86odUR6","number":475,"state":"open","title":"chore(deps): bump the dependencies group across 1 directory with 100 updates","user":"dependabot[bot]","labels":["skip-changelog","major"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-14T03:19:21.000Z","updated_at":"2025-09-14T04:07:50.844Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"dependencies","update_count":100,"packages":[{"name":"aiohappyeyeballs","old_version":"2.4.0","new_version":"2.6.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"aiokafka","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/aio-libs/aiokafka"},{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"ansible-compat","old_version":"24.8.0","new_version":"24.10.0","repository_url":"https://github.com/ansible/ansible-compat"},{"name":"ansible-pygments","old_version":"0.1.1","new_version":"0.1.2","repository_url":"https://github.com/ansible-community/ansible-pygments"},{"name":"ansible-runner","old_version":"2.4.0","new_version":"2.4.1","repository_url":"https://github.com/ansible/ansible-runner"},{"name":"antsibull-changelog","old_version":"0.29.0","new_version":"0.34.0","repository_url":"https://github.com/ansible-community/antsibull-changelog"},{"name":"antsibull-core","old_version":"3.0.2","new_version":"3.4.0","repository_url":"https://github.com/ansible-community/antsibull-core"},{"name":"antsibull-docs","old_version":"2.13.1","new_version":"2.21.0","repository_url":"https://github.com/ansible-community/antsibull-docs"},{"name":"antsibull-docs-parser","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/ansible-community/antsibull-docs-parser"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"azure-core","old_version":"1.30.2","new_version":"1.35.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"babel","old_version":"2.16.0","new_version":"2.17.0","repository_url":"https://github.com/python-babel/babel"},{"name":"bindep","old_version":"2.11.0","new_version":"2.13.0"},{"name":"black","old_version":"24.8.0","new_version":"25.1.0","repository_url":"https://github.com/psf/black"},{"name":"botocore","old_version":"1.35.7","new_version":"1.40.30","repository_url":"https://github.com/boto/botocore"},{"name":"bracex","old_version":"2.5","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"build","old_version":"1.2.1","new_version":"1.3.0","repository_url":"https://github.com/pypa/build"},{"name":"cachetools","old_version":"5.5.0","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2024.8.30","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.0","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/pallets/click"},{"name":"cryptography","old_version":"43.0.1","new_version":"45.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.8","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"docutils","old_version":"0.20.1","new_version":"0.22","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"drools-jpy","old_version":"0.3.9","new_version":"0.3.14","repository_url":"https://github.com/ansible/drools_jpy"},{"name":"exceptiongroup","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.15.4","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"frozenlist","old_version":"1.4.1","new_version":"1.7.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"galaxy-importer","old_version":"0.4.24","new_version":"0.4.33","repository_url":"https://github.com/ansible/galaxy-importer"},{"name":"gitdb","old_version":"4.0.11","new_version":"4.0.12","repository_url":"https://github.com/gitpython-developers/gitdb"},{"name":"gitpython","old_version":"3.1.43","new_version":"3.1.45","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"idna","old_version":"3.8","new_version":"3.10","repository_url":"https://github.com/kjd/idna"},{"name":"importlib-metadata","old_version":"6.2.1","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"isodate","old_version":"0.6.1","new_version":"0.7.2","repository_url":"https://github.com/gweis/isodate"},{"name":"janus","old_version":"1.0.0","new_version":"2.0.0","repository_url":"https://github.com/aio-libs/janus"},{"name":"jaraco-functools","old_version":"4.0.2","new_version":"4.3.0","repository_url":"https://github.com/jaraco/jaraco.functools"},{"name":"jinja2","old_version":"3.1.4","new_version":"3.1.6","repository_url":"https://github.com/pallets/jinja"},{"name":"jpy","old_version":"0.18.0","new_version":"1.1.0","repository_url":"https://github.com/jpy-consortium/jpy"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.25.1","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"jsonschema-specifications","old_version":"2023.12.1","new_version":"2025.9.1","repository_url":"https://github.com/python-jsonschema/jsonschema-specifications"},{"name":"keyring","old_version":"25.3.0","new_version":"25.6.0","repository_url":"https://github.com/jaraco/keyring"},{"name":"markdown","old_version":"3.7","new_version":"3.9","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"markupsafe","old_version":"2.1.5","new_version":"3.0.2","repository_url":"https://github.com/pallets/markupsafe"},{"name":"mdit-py-plugins","old_version":"0.4.1","new_version":"0.4.2","repository_url":"https://github.com/executablebooks/mdit-py-plugins"},{"name":"mock","old_version":"5.1.0","new_version":"5.2.0","repository_url":"https://github.com/testing-cabal/mock"},{"name":"more-itertools","old_version":"10.4.0","new_version":"10.8.0","repository_url":"https://github.com/more-itertools/more-itertools"},{"name":"multidict","old_version":"6.0.5","new_version":"6.6.4","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"nh3","old_version":"0.2.18","new_version":"0.3.0","repository_url":"https://github.com/messense/nh3"},{"name":"packaging","old_version":"24.1","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pbr","old_version":"6.1.0","new_version":"7.0.1"},{"name":"perky","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/larryhastings/perky"},{"name":"pip","old_version":"24.2","new_version":"25.2","repository_url":"https://github.com/pypa/pip"},{"name":"pkginfo","old_version":"1.10.0","new_version":"1.12.1.2"},{"name":"platformdirs","old_version":"4.2.2","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"psycopg","old_version":"3.1.18","new_version":"3.2.10","repository_url":"https://github.com/psycopg/psycopg"},{"name":"psycopg-binary","old_version":"3.1.18","new_version":"3.2.10","repository_url":"https://github.com/psycopg/psycopg"},{"name":"psycopg-pool","old_version":"3.2.2","new_version":"3.2.6","repository_url":"https://github.com/psycopg/psycopg"},{"name":"pycodestyle","old_version":"2.11.1","new_version":"2.14.0","repository_url":"https://github.com/PyCQA/pycodestyle"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pydantic","old_version":"2.8.2","new_version":"2.11.9","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-core","old_version":"2.20.1","new_version":"2.39.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pyflakes","old_version":"3.1.0","new_version":"3.4.0","repository_url":"https://github.com/PyCQA/pyflakes"},{"name":"pygments","old_version":"2.18.0","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pyparsing","old_version":"3.1.4","new_version":"3.2.4","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyproject-api","old_version":"1.7.1","new_version":"1.9.1","repository_url":"https://github.com/tox-dev/pyproject-api"},{"name":"pyproject-hooks","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/pypa/pyproject-hooks"},{"name":"python-daemon","old_version":"3.0.1","new_version":"3.1.2"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"readme-renderer","old_version":"43.0","new_version":"44.0","repository_url":"https://github.com/pypa/readme_renderer"},{"name":"referencing","old_version":"0.35.1","new_version":"0.36.2","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"resolvelib","old_version":"1.0.1","new_version":"1.2.0","repository_url":"https://github.com/sarugaku/resolvelib"},{"name":"rich","old_version":"13.8.0","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.20.0","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"rstcheck","old_version":"6.2.4","new_version":"6.2.5","repository_url":"https://github.com/rstcheck/rstcheck"},{"name":"rstcheck-core","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/rstcheck/rstcheck-core"},{"name":"ruamel-yaml","old_version":"0.18.6","new_version":"0.18.15"},{"name":"ruamel-yaml-clib","old_version":"0.2.8","new_version":"0.2.12"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smmap","old_version":"5.0.1","new_version":"5.0.2","repository_url":"https://github.com/gitpython-developers/smmap"},{"name":"snowballstemmer","old_version":"2.2.0","new_version":"3.0.1","repository_url":"https://github.com/snowballstem/snowball"},{"name":"sphinx-rtd-theme","old_version":"2.0.0","new_version":"3.0.2","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"tomli","old_version":"2.0.1","new_version":"2.2.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"twine","old_version":"5.1.1","new_version":"6.2.0","repository_url":"https://github.com/pypa/twine"},{"name":"typer","old_version":"0.12.5","new_version":"0.17.4","repository_url":"https://github.com/fastapi/typer"},{"name":"typer-config","old_version":"1.4.0","new_version":"1.4.2","repository_url":"https://github.com/maxb2/typer-config"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"1.26.20","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"virtualenv","old_version":"20.26.3","new_version":"20.34.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"wcmatch","old_version":"9.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"},{"name":"websockets","old_version":"13.0.1","new_version":"15.0.1","repository_url":"https://github.com/python-websockets/websockets"},{"name":"wrapt","old_version":"1.16.0","new_version":"1.17.3","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"yamllint","old_version":"1.35.1","new_version":"1.37.1","repository_url":"https://github.com/adrienverge/yamllint"},{"name":"yarl","old_version":"1.9.8","new_version":"1.20.1","repository_url":"https://github.com/aio-libs/yarl"},{"name":"zipp","old_version":"3.20.1","new_version":"3.23.0","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 100 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.4.0` | `2.6.1` |\n| [aiokafka](https://github.com/aio-libs/aiokafka) | `0.11.0` | `0.12.0` |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [ansible-compat](https://github.com/ansible/ansible-compat) | `24.8.0` | `24.10.0` |\n| [ansible-pygments](https://github.com/ansible-community/ansible-pygments) | `0.1.1` | `0.1.2` |\n| [ansible-runner](https://github.com/ansible/ansible-runner) | `2.4.0` | `2.4.1` |\n| [antsibull-changelog](https://github.com/ansible-community/antsibull-changelog) | `0.29.0` | `0.34.0` |\n| [antsibull-core](https://github.com/ansible-community/antsibull-core) | `3.0.2` | `3.4.0` |\n| [antsibull-docs](https://github.com/ansible-community/antsibull-docs) | `2.13.1` | `2.21.0` |\n| [antsibull-docs-parser](https://github.com/ansible-community/antsibull-docs-parser) | `1.1.0` | `1.2.1` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.30.2` | `1.35.1` |\n| [babel](https://github.com/python-babel/babel) | `2.16.0` | `2.17.0` |\n| bindep | `2.11.0` | `2.13.0` |\n| [black](https://github.com/psf/black) | `24.8.0` | `25.1.0` |\n| [botocore](https://github.com/boto/botocore) | `1.35.7` | `1.40.30` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5` | `2.6` |\n| [build](https://github.com/pypa/build) | `1.2.1` | `1.3.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.5.0` | `6.2.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.8.30` | `2025.8.3` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.0` | `2.0.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.1.8` |\n| [cryptography](https://github.com/pyca/cryptography) | `43.0.1` | `45.0.7` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.8` | `0.4.0` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.20.1` | `0.22` |\n| [drools-jpy](https://github.com/ansible/drools_jpy) | `0.3.9` | `0.3.14` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.2.2` | `1.3.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.15.4` | `3.19.1` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.4.1` | `1.7.0` |\n| [galaxy-importer](https://github.com/ansible/galaxy-importer) | `0.4.24` | `0.4.33` |\n| [gitdb](https://github.com/gitpython-developers/gitdb) | `4.0.11` | `4.0.12` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.43` | `3.1.45` |\n| [idna](https://github.com/kjd/idna) | `3.8` | `3.10` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.2.1` | `8.7.0` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.1.0` |\n| [isodate](https://github.com/gweis/isodate) | `0.6.1` | `0.7.2` |\n| [janus](https://github.com/aio-libs/janus) | `1.0.0` | `2.0.0` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) | `4.0.2` | `4.3.0` |\n| [jinja2](https://github.com/pallets/jinja) | `3.1.4` | `3.1.6` |\n| [jpy](https://github.com/jpy-consortium/jpy) | `0.18.0` | `1.1.0` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2023.12.1` | `2025.9.1` |\n| [keyring](https://github.com/jaraco/keyring) | `25.3.0` | `25.6.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.7` | `3.9` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `2.1.5` | `3.0.2` |\n| [mdit-py-plugins](https://github.com/executablebooks/mdit-py-plugins) | `0.4.1` | `0.4.2` |\n| [mock](https://github.com/testing-cabal/mock) | `5.1.0` | `5.2.0` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.4.0` | `10.8.0` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.0.5` | `6.6.4` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [nh3](https://github.com/messense/nh3) | `0.2.18` | `0.3.0` |\n| [packaging](https://github.com/pypa/packaging) | `24.1` | `25.0` |\n| [pbr](https://docs.openstack.org/pbr/latest/) | `6.1.0` | `7.0.1` |\n| [perky](https://github.com/larryhastings/perky) | `0.9.2` | `0.9.3` |\n| [pip](https://github.com/pypa/pip) | `24.2` | `25.2` |\n| [pkginfo](https://code.launchpad.net/~tseaver/pkginfo/trunk) | `1.10.0` | `1.12.1.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.2.2` | `4.4.0` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.1.18` | `3.2.10` |\n| [psycopg-binary](https://github.com/psycopg/psycopg) | `3.1.18` | `3.2.10` |\n| [psycopg-pool](https://github.com/psycopg/psycopg) | `3.2.2` | `3.2.6` |\n| [pycodestyle](https://github.com/PyCQA/pycodestyle) | `2.11.1` | `2.14.0` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.8.2` | `2.11.9` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.20.1` | `2.39.0` |\n| [pyflakes](https://github.com/PyCQA/pyflakes) | `3.1.0` | `3.4.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.19.2` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.1.4` | `3.2.4` |\n| [pyproject-api](https://github.com/tox-dev/pyproject-api) | `1.7.1` | `1.9.1` |\n| [pyproject-hooks](https://github.com/pypa/pyproject-hooks) | `1.1.0` | `1.2.0` |\n| python-daemon | `3.0.1` | `3.1.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.1.1` |\n| [readme-renderer](https://github.com/pypa/readme_renderer) | `43.0` | `44.0` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.36.2` |\n| [resolvelib](https://github.com/sarugaku/resolvelib) | `1.0.1` | `1.2.0` |\n| [rich](https://github.com/Textualize/rich) | `13.8.0` | `14.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.0` | `0.27.1` |\n| [rstcheck](https://github.com/rstcheck/rstcheck) | `6.2.4` | `6.2.5` |\n| [rstcheck-core](https://github.com/rstcheck/rstcheck-core) | `1.2.1` | `1.2.2` |\n| ruamel-yaml | `0.18.6` | `0.18.15` |\n| ruamel-yaml-clib | `0.2.8` | `0.2.12` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smmap](https://github.com/gitpython-developers/smmap) | `5.0.1` | `5.0.2` |\n| [snowballstemmer](https://github.com/snowballstem/snowball) | `2.2.0` | `3.0.1` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `2.0.0` | `3.0.2` |\n| [tomli](https://github.com/hukkin/tomli) | `2.0.1` | `2.2.1` |\n| [twine](https://github.com/pypa/twine) | `5.1.1` | `6.2.0` |\n| [typer](https://github.com/fastapi/typer) | `0.12.5` | `0.17.4` |\n| [typer-config](https://github.com/maxb2/typer-config) | `1.4.0` | `1.4.2` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `1.26.20` | `2.5.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.26.3` | `20.34.0` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `9.0` | `10.1` |\n| [websockets](https://github.com/python-websockets/websockets) | `13.0.1` | `15.0.1` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.16.0` | `1.17.3` |\n| [yamllint](https://github.com/adrienverge/yamllint) | `1.35.1` | `1.37.1` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.9.8` | `1.20.1` |\n| [zipp](https://github.com/jaraco/zipp) | `3.20.1` | `3.23.0` |\n\n\nUpdates `aiohappyeyeballs` from 2.4.0 to 2.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/releases\"\u003eaiohappyeyeballs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.6.1 (2025-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve TypeError on import for Python \u0026lt; 3.9.2 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/151\"\u003e#151\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/2042c82f9978f41c31b58aa4e3d8fc3b9c3ec2ec\"\u003e\u003ccode\u003e2042c82\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.6.0...v2.6.1\"\u003ev2.6.0...v2.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.6.0 (2025-03-11)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edocs\u003c/strong\u003e: Publish documentation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/149\"\u003e#149\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/42352736d12c60d500c63b9598ffab05ef5e8829\"\u003e\u003ccode\u003e4235273\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCreates an api_reference.rst file to expose the existing documentation for the few functions that have docstrings, as well as add documentation for AddrInfoType and SocketFactoryType. Now, these can be properly pointed to by other projects' documentation.\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.5.0...v2.6.0\"\u003ev2.5.0...v2.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.5.0 (2025-03-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd callback for users to customize socket creation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/147\"\u003e#147\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/8e1bc6a4bc6282ccf29db441c33dd8d806003ffd\"\u003e\u003ccode\u003e8e1bc6a\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCo-authored-by: Kieren \u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.4.8...v2.5.0\"\u003ev2.4.8...v2.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.4.8 (2025-03-04)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClose runner up sockets in the event there are multiple winners (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/pull/143\"\u003e#143\u003c/a\u003e, \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/476a05b956627700baa84eb6aac28c395da92a9f\"\u003e\u003ccode\u003e476a05b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe first attempt to fix this was to use the cpython staggered race updates in \u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/142\"\u003e#142\u003c/a\u003e but there is still a race there where there can be multiple winners. Instead we now accept that we will not be able to cancel all coros in time and there will always be a risk of multiple winners. We store all sockets in a set that were not already cleaned up and we close all but the first winner after the staggered race finishes.\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.4.7...v2.4.8\"\u003ev2.4.7...v2.4.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.4.7 (2025-03-04)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/blob/main/CHANGELOG.md\"\u003eaiohappyeyeballs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.6.1 (2025-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve typeerror on import for python \u0026lt; 3.9.2 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/151\"\u003e#151\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/2042c82f9978f41c31b58aa4e3d8fc3b9c3ec2ec\"\u003e\u003ccode\u003e2042c82\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.6.0 (2025-03-11)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish documentation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/149\"\u003e#149\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/42352736d12c60d500c63b9598ffab05ef5e8829\"\u003e\u003ccode\u003e4235273\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.5.0 (2025-03-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd callback for users to customize socket creation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/147\"\u003e#147\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/8e1bc6a4bc6282ccf29db441c33dd8d806003ffd\"\u003e\u003ccode\u003e8e1bc6a\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.8 (2025-03-04)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClose runner up sockets in the event there are multiple winners (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/143\"\u003e#143\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/476a05b956627700baa84eb6aac28c395da92a9f\"\u003e\u003ccode\u003e476a05b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.7 (2025-03-04)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve warnings when running tests (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/144\"\u003e#144\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/e96264aec89b9bd34d37413f610d039c56393a48\"\u003e\u003ccode\u003ee96264a\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.6 (2025-02-07)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure all timers are cancelled when after staggered race finishes (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/136\"\u003e#136\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/f75891d8974693b24af9789a8981ed7f6bc55c5c\"\u003e\u003ccode\u003ef75891d\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.5 (2025-02-07)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKeep classifiers in project to avoid automatic enrichment (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/134\"\u003e#134\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/99edb20e9d3e53ead65b55cb3e93c22c03d06599\"\u003e\u003ccode\u003e99edb20\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove classifiers to prevent recalculation by poetry (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/131\"\u003e#131\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/66e1c90ae81f71c7039cd62c60417a96202d906c\"\u003e\u003ccode\u003e66e1c90\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.4 (2024-11-30)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle oserror on failure to close socket instead of raising indexerror (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/114\"\u003e#114\u003c/a\u003e) (\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/c542f684d329fed04093caa2b31d8f7f6e0e0949\"\u003e\u003ccode\u003ec542f68\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.3 (2024-09-30)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/e3bd5bdf44f5d187802de6dcb08d27e1ca6da048\"\u003e\u003ccode\u003ee3bd5bd\u003c/code\u003e\u003c/a\u003e 2.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/2042c82f9978f41c31b58aa4e3d8fc3b9c3ec2ec\"\u003e\u003ccode\u003e2042c82\u003c/code\u003e\u003c/a\u003e fix: resolve TypeError on import for Python \u0026lt; 3.9.2 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/b23d9194d6db1c4d237da0da623a081573385915\"\u003e\u003ccode\u003eb23d919\u003c/code\u003e\u003c/a\u003e chore: remove unused CI exclude for Python 3.8.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/36149e7194d9a24fc8109265dee80fecd362f449\"\u003e\u003ccode\u003e36149e7\u003c/code\u003e\u003c/a\u003e 2.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/42352736d12c60d500c63b9598ffab05ef5e8829\"\u003e\u003ccode\u003e4235273\u003c/code\u003e\u003c/a\u003e feat(docs): publish documentation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/17d5e48488f7b533efea33ebb89c25e7b4eda7ad\"\u003e\u003ccode\u003e17d5e48\u003c/code\u003e\u003c/a\u003e chore(pre-commit.ci): pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/148\"\u003e#148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/3fed4432036740392483608a9da86637cf1bd64b\"\u003e\u003ccode\u003e3fed443\u003c/code\u003e\u003c/a\u003e 2.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/8e1bc6a4bc6282ccf29db441c33dd8d806003ffd\"\u003e\u003ccode\u003e8e1bc6a\u003c/code\u003e\u003c/a\u003e feat: add callback for users to customize socket creation (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/c4ab1e5409fe086c12932e47dc4a305eb15b4091\"\u003e\u003ccode\u003ec4ab1e5\u003c/code\u003e\u003c/a\u003e 2.4.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/commit/476a05b956627700baa84eb6aac28c395da92a9f\"\u003e\u003ccode\u003e476a05b\u003c/code\u003e\u003c/a\u003e fix: close runner up sockets in the event there are multiple winners (\u003ca href=\"https://redirect.github.com/aio-libs/aiohappyeyeballs/issues/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiohappyeyeballs/compare/v2.4.0...v2.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiokafka` from 0.11.0 to 0.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiokafka/releases\"\u003eaiokafka's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.12.0\u003c/h2\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBuild mac x86_64 wheels (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1029\"\u003e#1029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13, drop support for Python 3.8 due to end of life (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove duplicate error logging during rebalance (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1025\"\u003e#1025\u003c/a\u003e by \u003ca href=\"https://github.com/y4n9squared\"\u003e\u003ccode\u003e@​y4n9squared\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eQuote username in SCRAM auth (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1043\"\u003e#1043\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eImproved Documentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix building of readthedocs documentation (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1034\"\u003e#1034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo in producer documentation (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1036\"\u003e#1036\u003c/a\u003e by \u003ca href=\"https://github.com/lgo\"\u003e\u003ccode\u003e@​lgo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiokafka/blob/master/CHANGES.rst\"\u003eaiokafka's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.12.0 (2024-10-26)\u003c/h1\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBuild mac x86_64 wheels (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1029\"\u003e#1029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13, drop support for Python 3.8 due to end of life (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove duplicate error logging during rebalance (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1025\"\u003e#1025\u003c/a\u003e by \u003ca href=\"https://github.com/y4n9squared\"\u003e\u003ccode\u003e@​y4n9squared\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eQuote username in SCRAM auth (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1043\"\u003e#1043\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eImproved Documentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix building of readthedocs documentation (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1034\"\u003e#1034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo in producer documentation (pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1036\"\u003e#1036\u003c/a\u003e by \u003ca href=\"https://github.com/lgo\"\u003e\u003ccode\u003e@​lgo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/f6c79a086f1d5cf2b6e94e65db05970c4729c7a0\"\u003e\u003ccode\u003ef6c79a0\u003c/code\u003e\u003c/a\u003e Update actions, fix publishing (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/71335629d503cb3ad260de662e23c32402c8368b\"\u003e\u003ccode\u003e7133562\u003c/code\u003e\u003c/a\u003e Prepare 0.12.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/f7861f682c9b5cd78411e7fd6ea0fc4bf92ded33\"\u003e\u003ccode\u003ef7861f6\u003c/code\u003e\u003c/a\u003e Remove duplicate error log during rebalance (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/e7c9033b7d44c691073e9e25438f2c8ec523a14f\"\u003e\u003ccode\u003ee7c9033\u003c/code\u003e\u003c/a\u003e Add Python 3.13, remove 3.8 (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/608ab2443510c92226de0eb3fc2065f5d1307e12\"\u003e\u003ccode\u003e608ab24\u003c/code\u003e\u003c/a\u003e Fix ClusterMetadata request_update() (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/4cff9d77014e922c6e458224ed6abbae4fa07c4d\"\u003e\u003ccode\u003e4cff9d7\u003c/code\u003e\u003c/a\u003e Made classes enum.IntEnums where appropriate. (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/01c60cd9c45e975aee8d4932247108a9e639d026\"\u003e\u003ccode\u003e01c60cd\u003c/code\u003e\u003c/a\u003e Quote username in SCRAM auth (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1043\"\u003e#1043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/e2afc034b59626242b51b06b30a62c565ef491d9\"\u003e\u003ccode\u003ee2afc03\u003c/code\u003e\u003c/a\u003e fix type on producer docs (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1036\"\u003e#1036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/f9dbed1a00337971e6569c6611a98c1ab294fe98\"\u003e\u003ccode\u003ef9dbed1\u003c/code\u003e\u003c/a\u003e Add readthedocs config (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1034\"\u003e#1034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/2f976d0301682f0fe631c04c08d653be0d20ccb1\"\u003e\u003ccode\u003e2f976d0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1030\"\u003e#1030\u003c/a\u003e from webknjaz/maintenance/gha-pypi-tokenless-publishing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiokafka/compare/v0.11.0...v0.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ansible-compat` from 24.8.0 to 24.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible/ansible-compat/releases\"\u003eansible-compat's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev24.10.0\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for py313 (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/416\"\u003e#416\u003c/a\u003e) \u003ca href=\"https://github.com/ssbarnea\"\u003e\u003ccode\u003e@​ssbarnea\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRe-init plugin loader after collections installation (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/411\"\u003e#411\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/412\"\u003e#412\u003c/a\u003e) \u003ca href=\"https://github.com/irozet12\"\u003e\u003ccode\u003e@​irozet12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev24.9.1\u003c/h2\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid running prepare ansible paths twice (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/409\"\u003e#409\u003c/a\u003e) \u003ca href=\"https://github.com/ssbarnea\"\u003e\u003ccode\u003e@​ssbarnea\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid duplicate paths when path injection (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/407\"\u003e#407\u003c/a\u003e) \u003ca href=\"https://github.com/ssbarnea\"\u003e\u003ccode\u003e@​ssbarnea\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eProvide more detail on multiple collection installs (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/405\"\u003e#405\u003c/a\u003e) \u003ca href=\"https://github.com/mrgum\"\u003e\u003ccode\u003e@​mrgum\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev24.9.0\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd communication details (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/400\"\u003e#400\u003c/a\u003e) \u003ca href=\"https://github.com/oraNod\"\u003e\u003ccode\u003e@​oraNod\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix upload-artifact action to work with v4.4 and newer (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/403\"\u003e#403\u003c/a\u003e) \u003ca href=\"https://github.com/alisonlhart\"\u003e\u003ccode\u003e@​alisonlhart\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/ba624e9511a76f29fd12cff3e01feef1458d3acf\"\u003e\u003ccode\u003eba624e9\u003c/code\u003e\u003c/a\u003e Bump the dependencies group in /.config with 5 updates (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/6d9524e282a0f5078dfdaf9d01e620493076496d\"\u003e\u003ccode\u003e6d9524e\u003c/code\u003e\u003c/a\u003e Add support for py313 (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/416\"\u003e#416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/264a2785eb278406a5b93b9c5a8a1979eee5cc11\"\u003e\u003ccode\u003e264a278\u003c/code\u003e\u003c/a\u003e chore: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/415\"\u003e#415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/1f01f448542e4c258dfa1ed5ea84eab655ddc43b\"\u003e\u003ccode\u003e1f01f44\u003c/code\u003e\u003c/a\u003e Replace pip-compile with uv pip compile (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/419\"\u003e#419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/43f75ebf417fa914da59f12781aecea6566822ed\"\u003e\u003ccode\u003e43f75eb\u003c/code\u003e\u003c/a\u003e Fix tests (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/420\"\u003e#420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/29430b1fe77b02e4c7a5073cefb2a04a67fec338\"\u003e\u003ccode\u003e29430b1\u003c/code\u003e\u003c/a\u003e Tune dependabot config (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/417\"\u003e#417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/e247f3fab0400f97df08498c9e2cdf34025f1ba8\"\u003e\u003ccode\u003ee247f3f\u003c/code\u003e\u003c/a\u003e Re-init plugin loader after collections installation (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/411\"\u003e#411\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/18c671e23c1d4fa91fd372fca24474b89e31832c\"\u003e\u003ccode\u003e18c671e\u003c/code\u003e\u003c/a\u003e Bump coactions/dynamic-matrix from 3 to 4 (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/414\"\u003e#414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/ebe0b2c89717cf7567071b540461f878cefa8185\"\u003e\u003ccode\u003eebe0b2c\u003c/code\u003e\u003c/a\u003e chore: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/413\"\u003e#413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-compat/commit/16538ab64884462d8afdf35b97cb1f02299cef69\"\u003e\u003ccode\u003e16538ab\u003c/code\u003e\u003c/a\u003e Add template for bug reports (\u003ca href=\"https://redirect.github.com/ansible/ansible-compat/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible/ansible-compat/compare/v24.8.0...v24.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ansible-pygments` from 0.1.1 to 0.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/ansible-pygments/releases\"\u003eansible-pygments's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.2\u003c/h2\u003e\n\u003cp\u003eMaintenance release to ensure that releasing still works.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/cb4a39bef9e4a4169dce502f2f198016967506bb\"\u003e\u003ccode\u003ecb4a39b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/70\"\u003e#70\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/be3cc3b5e5d7264e842938197acca8d6434ec49f\"\u003e\u003ccode\u003ebe3cc3b\u003c/code\u003e\u003c/a\u003e Bump the ci group with 5 updates (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/73\"\u003e#73\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/2e506fd496d33cc3a34673555c5bb18e357d6214\"\u003e\u003ccode\u003e2e506fd\u003c/code\u003e\u003c/a\u003e Fix dependabot config. (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/72\"\u003e#72\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/5f5bc32fb5f6c8c96c1b13660365fee67f90f7b2\"\u003e\u003ccode\u003e5f5bc32\u003c/code\u003e\u003c/a\u003e Add dependabot config (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/60\"\u003e#60\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/73fac92d94987a1ab87ec5aa85db1a117a7785a8\"\u003e\u003ccode\u003e73fac92\u003c/code\u003e\u003c/a\u003e Fix CI: avoid deprecated poetry section, drop macOS and Windows from CI matri...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/149a793087a789e6a1905716f69ebec77e610b25\"\u003e\u003ccode\u003e149a793\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/69\"\u003e#69\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/bc64e01b0c536ec2cc03ffc470d65eae088632c0\"\u003e\u003ccode\u003ebc64e01\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/68\"\u003e#68\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/709e4e3109a0fc6eabcea757686d0d4635e1f549\"\u003e\u003ccode\u003e709e4e3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/67\"\u003e#67\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/dec1d0799c1f029532faefed2e1b25cb55d6aed8\"\u003e\u003ccode\u003edec1d07\u003c/code\u003e\u003c/a\u003e Require Python 3.9+; add Python 3.12 and 3.13 to CI (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/64\"\u003e#64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/ansible-pygments/commit/c50df0f4486185b463a78fd4ad8d4cb68f1bac1f\"\u003e\u003ccode\u003ec50df0f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-pygments/issues/66\"\u003e#66\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible-community/ansible-pygments/compare/0.1.1...0.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ansible-runner` from 2.4.0 to 2.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible/ansible-runner/releases\"\u003eansible-runner's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eModify volume mount behavior when source does not exist (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1408\"\u003e#1408\u003c/a\u003e). Volumes specified using the \u003ccode\u003econtainer-volume-mount\u003c/code\u003e option will now be passed through to the underlying container engine unverified and unmodified. This now allows you to mount individual files (vs. the parent directory) and non-existing source volumes. The behavior encountered with a non-existing source volume depends on which container engine is in use (\u003ccode\u003edocker\u003c/code\u003e creates the volume, \u003ccode\u003epodman\u003c/code\u003e will error).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVarious documentation updates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ansible/ansible-runner/compare/2.4.0...2.4.1\"\u003ehttps://github.com/ansible/ansible-runner/compare/2.4.0...2.4.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/ac1a759d95e1953549bc9af46bf46285bec99b70\"\u003e\u003ccode\u003eac1a759\u003c/code\u003e\u003c/a\u003e Bump core integration tests for core 2.18 release (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/4ff8ce3af4ace1fb1dc488bfe93e1257deedacf4\"\u003e\u003ccode\u003e4ff8ce3\u003c/code\u003e\u003c/a\u003e Modify volume mount behavior when source does not exist (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1408\"\u003e#1408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/ab8ca8876ea1a13e108063776a4815736a6c3bd9\"\u003e\u003ccode\u003eab8ca88\u003c/code\u003e\u003c/a\u003e Bump cryptography from 43.0.1 to 44.0.1 in /docs (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1412\"\u003e#1412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/d4ea51538e4aaa50b84f47ec1183804620d3c1b5\"\u003e\u003ccode\u003ed4ea515\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.4 to 3.1.5 in /docs (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/d335d8c23dd1986b234b57cb687c551318ad552c\"\u003e\u003ccode\u003ed335d8c\u003c/code\u003e\u003c/a\u003e Upgrade documentation requirements (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/e541a37912f1da94c6dc05ff5546ea2a34d11f34\"\u003e\u003ccode\u003ee541a37\u003c/code\u003e\u003c/a\u003e Docs: change Getting started EE guide reference to point to the relevant loca...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/9199f4cef4f09faabe238200187b9c6fbbb39464\"\u003e\u003ccode\u003e9199f4c\u003c/code\u003e\u003c/a\u003e Docs: remove IRC remnants (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1393\"\u003e#1393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/7ee1d19b2628fb3c8200db22acdf3083b3891166\"\u003e\u003ccode\u003e7ee1d19\u003c/code\u003e\u003c/a\u003e Update community comms info (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1392\"\u003e#1392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/1191a0c455ec5871d108966bf72dbc4ae78f402c\"\u003e\u003ccode\u003e1191a0c\u003c/code\u003e\u003c/a\u003e Update external_interface.rst (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1353\"\u003e#1353\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1376\"\u003e#1376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible-runner/commit/41e5cd17864af469dc086e5f10c0ec287aa17e2d\"\u003e\u003ccode\u003e41e5cd1\u003c/code\u003e\u003c/a\u003e Fix roles_path type in docstring (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1373\"\u003e#1373\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ansible/ansible-runner/issues/1375\"\u003e#1375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible/ansible-runner/compare/2.4.0...2.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `antsibull-changelog` from 0.29.0 to 0.34.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/releases\"\u003eantsibull-changelog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.34.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release for antsibull-build.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003c!-- raw HTML omitted --\u003eRSTDocumentRenderer\u003c!-- raw HTML omitted --\u003e API now allows to configure section underlines. This is needed to fix the Ansible 12 porting guide (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/203\"\u003eansible-community/antsibull-changelog#203\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.33.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eMaintenance release for fixing / deprecating certain boolean options.\u003c/p\u003e\n\u003ch3\u003eBreaking Changes / Porting Guide\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003c!-- raw HTML omitted --\u003e--strict\u003c!-- raw HTML omitted --\u003e option of the \u003c!-- raw HTML omitted --\u003elint-changelog-yaml\u003c!-- raw HTML omitted --\u003e subcommand no longer expects a parameter. It now matches what was documented (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/195\"\u003eansible-community/antsibull-changelog#195\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/196\"\u003eansible-community/antsibull-changelog#196\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe boolean valued options \u003c!-- raw HTML omitted --\u003e--is-collection\u003c!-- raw HTML omitted --\u003e and \u003c!-- raw HTML omitted --\u003e--collection-flatmap\u003c!-- raw HTML omitted --\u003e will likely change to proper flags (\u003c!-- raw HTML omitted --\u003e--flag\u003c!-- raw HTML omitted --\u003e and \u003c!-- raw HTML omitted --\u003e--no-flag`\u003c!-- raw HTML omitted --\u003e instead of \u003c!-- raw HTML omitted --\u003e--flag true\u003c!-- raw HTML omitted --\u003e/\u003c!-- raw HTML omitted --\u003e--flag false\u003c!-- raw HTML omitted --\u003e) in the near future. If you are using these options and want them to not change, or have other suggestions, please \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/issues/new\"\u003ecreate an issue in the antsibull-changelog repository\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/199\"\u003eansible-community/antsibull-changelog#199\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.32.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch3\u003eMajor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe new configuration setting \u003c!-- raw HTML omitted --\u003eoutput\u003c!-- raw HTML omitted --\u003e allows to configure more precisely which changelog files are generated and how they are formatted (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/190\"\u003eansible-community/antsibull-changelog#190\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/194\"\u003eansible-community/antsibull-changelog#194\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAntsibull-changelog now depends on Pydantic 2 (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/193\"\u003eansible-community/antsibull-changelog#193\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAntsibull-changelog now uses Pydantic to parse and validate the config. This means that validation is more strict than before and might reject configs that were incorrect, but still got accepted somehow (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/193\"\u003eansible-community/antsibull-changelog#193\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes / Porting Guide\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWhen using antsibull-changelog as a library, \u003c!-- raw HTML omitted --\u003eChangelogConfig\u003c!-- raw HTML omitted --\u003e's constructor should no longer be called directly. Instead, use the class method \u003c!-- raw HTML omitted --\u003eChangelogConfig.parse()\u003c!-- raw HTML omitted --\u003e, which has the same signature than the previous constructor, except that \u003c!-- raw HTML omitted --\u003eignore_is_other_project\u003c!-- raw HTML omitted --\u003e now must be a keyword parameter (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/193\"\u003eansible-community/antsibull-changelog#193\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eWhen using antsibull-changelog as a library, \u003c!-- raw HTML omitted --\u003erendering.changelog.generate_changelog()\u003c!-- raw HTML omitted --\u003e now needs a \u003c!-- raw HTML omitted --\u003eChangelogOutput\u003c!-- raw HTML omitted --\u003e object instead of the \u003c!-- raw HTML omitted --\u003edocument_format: TextFormat\u003c!-- raw HTML omitted --\u003e parameter, and the \u003c!-- raw HTML omitted --\u003econfig\u003c!-- raw HTML omitted --\u003e and \u003c!-- raw HTML omitted --\u003echangelog_path\u003c!-- raw HTML omitted --\u003e parameters have been removed (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/194\"\u003eansible-community/antsibull-changelog#194\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eWhen using the \u003c!-- raw HTML omitted --\u003e--output\u003c!-- raw HTML omitted --\u003e argument for \u003c!-- raw HTML omitted --\u003eantsibull-changelog generate\u003c!-- raw HTML omitted --\u003e, the generated changelog's title will not contain any parts of the version number. If you need this, \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/issues/new\"\u003eplease create an issue\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/194\"\u003eansible-community/antsibull-changelog#194\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe configuration settings \u003c!-- raw HTML omitted --\u003echangelog_filename_template\u003c!-- raw HTML omitted --\u003e, \u003c!-- raw HTML omitted --\u003echangelog_filename_version_depth\u003c!-- raw HTML omitted --\u003e, and \u003c!-- raw HTML omitted --\u003eoutput_formats\u003c!-- raw HTML omitted --\u003e are deprecated and will eventually be removed. Use the new setting \u003c!-- raw HTML omitted --\u003eoutput\u003c!-- raw HTML omitted --\u003e instead. Note that there are no runtime warnings right now. If the time to remove them comes nearer, there will be runtime warnings for a longer time first before they are actually removed (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/194\"\u003eansible-community/antsibull-changelog#194\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved Features (previously deprecated)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython API: remove \u003c!-- raw HTML omitted --\u003eantsibull_changelog.rst\u003c!-- raw HTML omitted --\u003e module (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/183\"\u003eansible-community/antsibull-changelog#183\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003ePython API: remove constructor arguments \u003c!-- raw HTML omitted --\u003eplugins\u003c!-- raw HTML omitted --\u003e and \u003c!-- raw HTML omitted --\u003efragments\u003c!-- raw HTML omitted --\u003e from class \u003c!-- raw HTML omitted --\u003eChangelogGenerator\u003c!-- raw HTML omitted --\u003e in \u003c!-- raw HTML omitted --\u003eantsibull_changelog.rendering.changelog\u003c!-- raw HTML omitted --\u003e (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/183\"\u003eansible-community/antsibull-changelog#183\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/blob/main/CHANGELOG.rst\"\u003eantsibull-changelog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev0.34.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eFeature release for antsibull-build.\u003c/p\u003e\n\u003ch2\u003eMinor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eRSTDocumentRenderer\u003c/code\u003e API now allows to configure section underlines. This is needed to fix the Ansible 12 porting guide (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/203\"\u003eansible-community/antsibull-changelog#203\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev0.33.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eMaintenance release for fixing / deprecating certain boolean options.\u003c/p\u003e\n\u003ch2\u003eBreaking Changes / Porting Guide\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003e--strict\u003c/code\u003e option of the \u003ccode\u003elint-changelog-yaml\u003c/code\u003e subcommand no longer expects a parameter. It now matches what was documented (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/195\"\u003eansible-community/antsibull-changelog#195\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/196\"\u003eansible-community/antsibull-changelog#196\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecated Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe boolean valued options \u003ccode\u003e--is-collection\u003c/code\u003e and \u003ccode\u003e--collection-flatmap\u003c/code\u003e will likely change to proper flags (\u003ccode\u003e--flag\u003c/code\u003e and \u003ccode\u003e--no-flag`` instead of ``--flag true``/``--flag false``) in the near future. If you are using these options and want them to not change, or have other suggestions, please \u003c/code\u003ecreate an issue in the antsibull-changelog repository \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/issues/new\"\u003ehttps://github.com/ansible-community/antsibull-changelog/issues/new\u003c/a\u003e`__ (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/199\"\u003eansible-community/antsibull-changelog#199\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev0.32.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch2\u003eMajor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe new configuration setting \u003ccode\u003eoutput\u003c/code\u003e allows to configure more precisely which changelog files are generated and how they are formatted (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/190\"\u003eansible-community/antsibull-changelog#190\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/194\"\u003eansible-community/antsibull-changelog#194\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMinor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAntsibull-changelog now depends on Pydantic 2 (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/193\"\u003eansible-community/antsibull-changelog#193\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAntsibull-changelog now uses Pydantic to parse and validate the config. This means that validation is more strict than before and might reject configs that were incorrect, but still got accepted somehow (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/pull/193\"\u003eansible-community/antsibull-changelog#193\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/bfc0f285ff2533d90a4d895cb35d6129d60f5d5b\"\u003e\u003ccode\u003ebfc0f28\u003c/code\u003e\u003c/a\u003e Release 0.34.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/42b56c7c9b13c332e68f1aba9c67f9561b100ac7\"\u003e\u003ccode\u003e42b56c7\u003c/code\u003e\u003c/a\u003e Prepare 0.34.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/b4db3fa5a6c3da089c76a36e65d2707a54af65ac\"\u003e\u003ccode\u003eb4db3fa\u003c/code\u003e\u003c/a\u003e Allow to configure section underlines (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/203\"\u003e#203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/9d8652db1ce9051644590fc3817c47fcf74388e8\"\u003e\u003ccode\u003e9d8652d\u003c/code\u003e\u003c/a\u003e Bump wntrblm/nox from 2025.02.09 to 2025.05.01 in the ci group (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/202\"\u003e#202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/4368df589ed775e9e51746c50ca8070e1fb32272\"\u003e\u003ccode\u003e4368df5\u003c/code\u003e\u003c/a\u003e Use new run-nox action. (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/201\"\u003e#201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/e523a6d4751c69a23a1b5fda77bd35755b1b00b2\"\u003e\u003ccode\u003ee523a6d\u003c/code\u003e\u003c/a\u003e Improve README.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/57d0dc8ca5addad3d3cf8e1ee94143dce11539a9\"\u003e\u003ccode\u003e57d0dc8\u003c/code\u003e\u003c/a\u003e Post-release version bump.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/2574c00bdb23c778a784c5b892c452c714a659b6\"\u003e\u003ccode\u003e2574c00\u003c/code\u003e\u003c/a\u003e Release 0.33.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/b37b06c357251f8fa12042a1c9f9ca918ecd6b71\"\u003e\u003ccode\u003eb37b06c\u003c/code\u003e\u003c/a\u003e Prepare 0.33.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-changelog/commit/89ed5da87b4f6d88f464cc20dad9be6fcca3e5f9\"\u003e\u003ccode\u003e89ed5da\u003c/code\u003e\u003c/a\u003e Announce deprecation of boolean valued options. (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-changelog/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible-community/antsibull-changelog/compare/0.29.0...0.34.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `antsibull-core` from 3.0.2 to 3.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/antsibull-core/releases\"\u003eantsibull-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.4.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow information on removed or deprecated collections to be updated. This is needed to generate a consistent changelog (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/177\"\u003eansible-community/antsibull-core#177\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.13 (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/176\"\u003eansible-community/antsibull-core#176\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow information on removed collections from previous major releases in collection metadata schema (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/174\"\u003eansible-community/antsibull-core#174\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.2.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature and bugfix release.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pydantic helper for strict linting (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/169\"\u003eansible-community/antsibull-core#169\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow information on removed collections in collection metadata schema (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/173\"\u003eansible-community/antsibull-core#173\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCollection metadata removal schema valiation: remove bad check that deprecated redirect replacement major version must be in the future (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/172\"\u003eansible-community/antsibull-core#172\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release adding a new dependency.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd schema and validation helper for ansible-build-data's collection meta (\u003ca href=\"https://redirect.github.com/ansible-community/ansible-build-data/pull/450\"\u003eansible-community/ansible-build-data#450\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/168\"\u003eansible-community/antsibull-core#168\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAntsibull-core now depends on the new project antsibull-fileutils. Some code has been moved to that library; that code is re-imported to avoid breaking changes for users of antsibull-core (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/166\"\u003eansible-community/antsibull-core#166\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/antsibull-core/blob/main/CHANGELOG.rst\"\u003eantsibull-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev3.4.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch2\u003eMinor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow information on removed or deprecated collections to be updated. This is needed to generate a consistent changelog (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/177\"\u003eansible-community/antsibull-core#177\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.13 (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/176\"\u003eansible-community/antsibull-core#176\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.3.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch2\u003eMinor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow information on removed collections from previous major releases in collection metadata schema (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/174\"\u003eansible-community/antsibull-core#174\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.2.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eFeature and bugfix release.\u003c/p\u003e\n\u003ch2\u003eMinor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pydantic helper for strict linting (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/169\"\u003eansible-community/antsibull-core#169\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow information on removed collections in collection metadata schema (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/173\"\u003eansible-community/antsibull-core#173\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCollection metadata removal schema valiation: remove bad check that deprecated redirect replacement major version must be in the future (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/pull/172\"\u003eansible-community/antsibull-core#172\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.1.0\u003c/h1\u003e\n\u003cp\u003eRelease Summary\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/0c7b4b179156c88598ebf48aa4b650bfd1f0032b\"\u003e\u003ccode\u003e0c7b4b1\u003c/code\u003e\u003c/a\u003e Release 3.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/a0d135b4ac281faa1d0f588a4d0f62babde7560e\"\u003e\u003ccode\u003ea0d135b\u003c/code\u003e\u003c/a\u003e Prepare 3.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/6d814fb619bccf6437f816204fecd11069b4d8c1\"\u003e\u003ccode\u003e6d814fb\u003c/code\u003e\u003c/a\u003e Allow to update deprecations/removals (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/issues/177\"\u003e#177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/24131a38919c5d9e183e9b9a45fe481102808a29\"\u003e\u003ccode\u003e24131a3\u003c/code\u003e\u003c/a\u003e Restrict pyre version. (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/dcda2276bed0ebe1a8bef24adf91e34b6fa4dcdf\"\u003e\u003ccode\u003edcda227\u003c/code\u003e\u003c/a\u003e Add Python 3.13 to CI and supported Python versions. (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/issues/176\"\u003e#176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/f1d7f606a9b5c6941f944ce9f979a99ba59025be\"\u003e\u003ccode\u003ef1d7f60\u003c/code\u003e\u003c/a\u003e Bump wntrblm/nox from 2024.04.15 to 2024.10.09 (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/issues/175\"\u003e#175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/cda100c5f9c6fd21362a7e1fbe08d3d30e5eb078\"\u003e\u003ccode\u003ecda100c\u003c/code\u003e\u003c/a\u003e Post-release version bump.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/c7b34d2fe34e7eb1102e1ff2874bdce2affeae9e\"\u003e\u003ccode\u003ec7b34d2\u003c/code\u003e\u003c/a\u003e Release 3.3.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/28c89049a6173b74a10272a6acaae195a8c6cd19\"\u003e\u003ccode\u003e28c8904\u003c/code\u003e\u003c/a\u003e Prepare 3.3.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible-community/antsibull-core/commit/4f65622163840cedb6eb4282b84230fc600f829d\"\u003e\u003ccode\u003e4f65622\u003c/code\u003e\u003c/a\u003e Allow removed collection information from previous major releases. (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-core/issues/174\"\u003e#174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ansible-community/antsibull-core/compare/3.0.2...3.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `antsibull-docs` from 2.13.1 to 2.21.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/antsibull-docs/releases\"\u003eantsibull-docs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.21.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an index for all deprecated collections (official docsite only) and plugins (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/413\"\u003eansible-community/antsibull-docs#413\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.20.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eBugfix and feature release.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003c!-- raw HTML omitted --\u003e--config\u003c!-- raw HTML omitted --\u003e parameter to the \u003c!-- raw HTML omitted --\u003eansible-output\u003c!-- raw HTML omitted --\u003e subcommand to allow specifying a config file when not in collection mode (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/410\"\u003eansible-community/antsibull-docs#410\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003c!-- raw HTML omitted --\u003eansible-output-meta\u003c!-- raw HTML omitted --\u003e directive that allows to apply meta actions, like resetting previous code blocks for variable references, or defining templates for \u003c!-- raw HTML omitted --\u003eansible-output-data\u003c!-- raw HTML omitted --\u003e (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/409\"\u003eansible-community/antsibull-docs#409\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow to specify YAML inventory for \u003c!-- raw HTML omitted --\u003eansible-output\u003c!-- raw HTML omitted --\u003e subcommand code blocks (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/411\"\u003eansible-community/antsibull-docs#411\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eLet \u003c!-- raw HTML omitted --\u003eansible-output\u003c!-- raw HTML omitted --\u003e subcommand run \u003c!-- raw HTML omitted --\u003eansible-playbook\u003c!-- raw HTML omitted --\u003e instances in parallel (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/407\"\u003eansible-community/antsibull-docs#407\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/408\"\u003eansible-community/antsibull-docs#408\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun the post-processors in the \u003c!-- raw HTML omitted --\u003eansible-output\u003c!-- raw HTML omitted --\u003e subcommand from the current working directory, and not from the temporary playbook directory. This allows post-processors to have relative paths from where \u003c!-- raw HTML omitted --\u003eantsibull-docs ansible-output\u003c!-- raw HTML omitted --\u003e is called (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/406\"\u003eansible-community/antsibull-docs#406\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.19.1\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eBugfix release for official docsite build.\u003c/p\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003c!-- raw HTML omitted --\u003eansible._protomatter\u003c!-- raw HTML omitted --\u003e from the collection list if no plugins are found for it and it has not been explicitly added to the collection list (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/405\"\u003eansible-community/antsibull-docs#405\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRemove old hint on configuration settings precedence. The new note makes this one superfluous (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/404\"\u003eansible-community/antsibull-docs#404\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.19.0\u003c/h2\u003e\n\u003ch3\u003eRelease Summary\u003c/h3\u003e\n\u003cp\u003eBugfix and feature release.\u003c/p\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a new subcommand \u003c!-- raw HTML omitted --\u003eansible-output\u003c!-- raw HTML omitted --\u003e which allows to render Ansible output into RST code blocks (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/397\"\u003eansible-community/antsibull-docs#397\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/401\"\u003eansible-community/antsibull-docs#401\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/402\"\u003eansible-community/antsibull-docs#402\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAntsibull-docutils 1.3.0+ is now an explicit dependency (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/395\"\u003eansible-community/antsibull-docs#395\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFor plugin options that can be configured through other means (Ansible variables, INI entries, environment variables, keywords, CLI arguments), show a notice on precedence below the plugin's parameters if more than one such way is present for an option (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/400\"\u003eansible-community/antsibull-docs#400\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/403\"\u003eansible-community/antsibull-docs#403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eWhen linting extra docs, verify that files referenced in toctrees exist (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/issues/398\"\u003eansible-community/antsibull-docs#398\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/395\"\u003eansible-community/antsibull-docs#395\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug that hid keyword config for plugin options for options that are only configurable this way (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/403\"\u003eansible-community/antsibull-docs#403\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ansible-community/antsibull-docs/blob/main/CHANGELOG.rst\"\u003eantsibull-docs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev2.21.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eFeature release.\u003c/p\u003e\n\u003ch2\u003eMinor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an index for all deprecated collections (official docsite only) and plugins (\u003ca href=\"https://redirect.github.com/ansible-community/antsibull-docs/pull/413\"\u003eansible-community/antsibull-docs#413\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev2.20.0\u003c/h1\u003e\n\u003ch2\u003eRelease Summary\u003c/h2\u003e\n\u003cp\u003eBugfix and feature release.\u003c/p\u003e\n\u003ch2\u003eMinor Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--config\u003c/code\u003e parameter to the \u003ccode\u003eansible-output\u003c/code\u003e subcomma...\n\n_Description has been truncated_","html_url":"https://github.com/ansible/event-driven-ansible/pull/475","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansible%2Fevent-driven-ansible/issues/475","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/475/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2025-09-05T07:28:30.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"3386569021","node_id":"PR_kwDOKXLyYM6m_ytg","number":78,"state":"open","title":"Bump the python-deps group across 1 directory with 26 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-05T07:28:30.000Z","updated_at":"2025-09-16T09:11:29.702Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-deps","update_count":26,"packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"attrs","old_version":"23.1.0","new_version":"25.3.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.2.1","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.6.1","new_version":"2.7.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"flask-cors","old_version":"6.0.0","new_version":"6.0.1","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"importlib-metadata","old_version":"6.8.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"nest-asyncio","old_version":"1.5.8","new_version":"1.6.0","repository_url":"https://github.com/erdewit/nest_asyncio"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.14.1","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"python-engineio","old_version":"4.9.0","new_version":"4.12.2","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-socketio","old_version":"5.11.2","new_version":"5.13.0","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"simple-websocket","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/miguelgrinberg/simple-websocket"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"werkzeug","old_version":"3.0.6","new_version":"3.1.3","repository_url":"https://github.com/pallets/werkzeug"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.181.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"selenium","old_version":"4.32.0","new_version":"4.35.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"cryptography","old_version":"45.0.6","new_version":"45.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"notion-client","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-genai","old_version":"1.30.0","new_version":"1.33.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"anthropic","old_version":"0.64.0","new_version":"0.66.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"1.102.0","new_version":"1.106.1","repository_url":"https://github.com/openai/openai-python"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 26 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `23.1.0` | `25.3.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.2.1` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.6.1` | `2.7.0` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.0` | `6.0.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.8.0` | `8.7.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [nest-asyncio](https://github.com/erdewit/nest_asyncio) | `1.5.8` | `1.6.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.14.1` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.9.0` | `4.12.2` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.11.2` | `5.13.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [simple-websocket](https://github.com/miguelgrinberg/simple-websocket) | `1.0.0` | `1.1.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.0.6` | `3.1.3` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.181.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.32.0` | `4.35.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.6` | `45.0.7` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `2.4.0` | `2.5.0` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.30.0` | `1.33.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.64.0` | `0.66.0` |\n| [openai](https://github.com/openai/openai-python) | `1.102.0` | `1.106.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-timeout` from 4.0.3 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/releases\"\u003easync-timeout's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst\"\u003easync-timeout's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.1 (2024-11-06)\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.0.0 (2024-10-31)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/cc52d410e733b302873e6e52db9a9b6578d053a4\"\u003e\u003ccode\u003ecc52d41\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/1af7d7165d598af03e51952a679c690690dc7f8e\"\u003e\u003ccode\u003e1af7d71\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3bf26d96e3d1830a0e72ddab9c6a2c87e1f4380a\"\u003e\u003ccode\u003e3bf26d9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/423\"\u003e#423\u003c/a\u003e: add requirements.txt to sdist package (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/380e8ba5bf77e3cd184df8a5f51dc929d93d8553\"\u003e\u003ccode\u003e380e8ba\u003c/code\u003e\u003c/a\u003e Mention condition import of asyncio.timeout / async_timeout.timeout in README...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/8a232d0f7fc1af88c8d921500d78bbefc2bc545c\"\u003e\u003ccode\u003e8a232d0\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3d3e3e45420ac6ea0ef77c9e32388e252e12ac4d\"\u003e\u003ccode\u003e3d3e3e4\u003c/code\u003e\u003c/a\u003e Bump to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/d5c21f3dee7eeb06823af77284ad2a899611b28e\"\u003e\u003ccode\u003ed5c21f3\u003c/code\u003e\u003c/a\u003e Mimic asyncio.Timeout behavior (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/a1111c2597b9ce8d34b823c1b993689339ea9fd6\"\u003e\u003ccode\u003ea1111c2\u003c/code\u003e\u003c/a\u003e Drop deprecated sync context manager support (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/00fd343ce6ba2ccc291c0f6e09fea8998cbfe3a1\"\u003e\u003ccode\u003e00fd343\u003c/code\u003e\u003c/a\u003e Imports cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/7b61b33ae0ecee0e0bb0e09f2e5787c647d4ffb8\"\u003e\u003ccode\u003e7b61b33\u003c/code\u003e\u003c/a\u003e Update CI config file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-timeout/compare/v4.0.3...v5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 23.1.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003cp\u003eIt leverages charset-normalizer in a better way! Check it out, you will gain up to being 3X faster and get a real/respectable support with it.\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebuild-requirements.txt\u003c/code\u003e as per using \u003ccode\u003epyproject.toml\u003c/code\u003e native build configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/integration.py\u003c/code\u003e and \u003ccode\u003ebin/serve.py\u003c/code\u003e in favor of downstream integration test (see noxfile).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e in favor of \u003ccode\u003epyproject.toml\u003c/code\u003e metadata configuration.\u003c/li\u003e\n\u003cli\u003eUnused \u003ccode\u003eutils.range_scan\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConverting content to Unicode bytes may insert \u003ccode\u003eutf_8\u003c/code\u003e instead of preferred \u003ccode\u003eutf-8\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning \u0026quot;'count' is passed as positional argument\u0026quot; when converting to Unicode bytes on Python 3.13+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0\"\u003e3.4.0\u003c/a\u003e (2024-10-08)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.1/\"\u003ehttps://pypi.org/project/click/8.2.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/24?closed=1\"\u003ehttps://github.com/pallets/click/milestone/24?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2894\"\u003e#2894\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2897\"\u003e#2897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2906\"\u003e#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2682\"\u003e#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2787\"\u003e#2787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.0/\"\u003ehttps://pypi.org/project/click/8.2.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/en/stable/changes/\"\u003ehttps://click.palletsprojects.com/en/stable/changes/\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/15\"\u003ehttps://github.com/pallets/click/milestone/15\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8,and 3.9. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2588\"\u003e#2588\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pallets/click/issues/2893\"\u003e#2893\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2438\"\u003e#2438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2543\"\u003e#2543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2598\"\u003e#2598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2589\"\u003e#2589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2590\"\u003e#2590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe current parser and related classes and methods, are deprecated.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2205\"\u003e#2205\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of \u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any remaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is unneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable deferred evaluation of annotations with \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2270\"\u003e#2270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen generating a command's name from a decorated function's name, the suffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2322\"\u003e#2322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within \u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2356\"\u003e#2356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is \u003ccode\u003eFalse\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2509\"\u003e#2509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra items used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2516\"\u003e#2516\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2517\"\u003e#2517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep stdout and stderr streams independent in \u003ccode\u003eCliRunner\u003c/code\u003e. Always collect stderr output and never raise an exception. Add a new output stream to simulate what the user sees in its terminal. Removes the \u003ccode\u003emix_stderr\u003c/code\u003e parameter in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2522\"\u003e#2522\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2523\"\u003e#2523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eOption.show_envvar\u003c/code\u003e now also shows environment variable in error messages. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2695\"\u003e#2695\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2696\"\u003e#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.close\u003c/code\u003e will be called on exit. This results in all \u003ccode\u003eContext.call_on_close\u003c/code\u003e callbacks and context managers added via \u003ccode\u003eContext.with_resource\u003c/code\u003e to be closed on exit as well. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2680\"\u003e#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eProgressBar(hidden: bool)\u003c/code\u003e to allow hiding the progressbar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2609\"\u003e#2609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eUserWarning\u003c/code\u003e will be shown when multiple parameters attempt to use the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eOption.envvar\u003c/code\u003e with \u003ccode\u003eOption.flag_value\u003c/code\u003e, the \u003ccode\u003eflag_value\u003c/code\u003e will always be used instead of the value of the environment variable. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2746\"\u003e#2746\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2788\"\u003e#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eChoice.get_invalid_choice_message\u003c/code\u003e method for customizing the invalid choice message. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2621\"\u003e#2621\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2622\"\u003e#2622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf help is shown because \u003ccode\u003eno_args_is_help\u003c/code\u003e is enabled (defaults to \u003ccode\u003eTrue\u003c/code\u003e for groups, \u003ccode\u003eFalse\u003c/code\u003e for commands), the exit code is 2 instead of 0. \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContexts created during shell completion are closed properly, fixing a \u003ccode\u003eResourceWarning\u003c/code\u003e when using \u003ccode\u003eclick.File\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2644\"\u003e#2644\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2800\"\u003e#2800\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2767\"\u003e#2767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eclick.edit(filename)\u003c/code\u003e now supports passing an iterable of filenames in case the editor supports editing multiple files at once. Its return type is now also typed: \u003ccode\u003eAnyStr\u003c/code\u003e if \u003ccode\u003etext\u003c/code\u003e is passed, otherwise \u003ccode\u003eNone\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2067\"\u003e#2067\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2068\"\u003e#2068\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. :issue:\u003ccode\u003e2894\u003c/code\u003e\n:issue:\u003ccode\u003e2897\u003c/code\u003e :pr:\u003ccode\u003e2930\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. :issue:\u003ccode\u003e2906\u003c/code\u003e :pr:\u003ccode\u003e2907\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. :issue:\u003ccode\u003e2682\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in CliRunner. :issue:\u003ccode\u003e2787\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.7, 3.8, and 3.9. :pr:\u003ccode\u003e2588\u003c/code\u003e :pr:\u003ccode\u003e2893\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e2438\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. :pr:\u003ccode\u003e2543\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e2598\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all\ncommands. :issue:\u003ccode\u003e2589\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group\ncommands. :issue:\u003ccode\u003e2590\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe current parser and related classes and methods, are deprecated.\n:issue:\u003ccode\u003e2205\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of\n\u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any\nremaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is\nunneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable deferred evaluation of annotations with\n\u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. :pr:\u003ccode\u003e2270\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen generating a command's name from a decorated function's name, the\nsuffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed.\n:issue:\u003ccode\u003e2322\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within\n\u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified.\n:issue:\u003ccode\u003e2356\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is\n\u003ccode\u003eFalse\u003c/code\u003e. :pr:\u003ccode\u003e2509\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra\nitems used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. :issue:\u003ccode\u003e2516\u003c/code\u003e\n:pr:\u003ccode\u003e2517\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/fd183b2ced1cb5857784fe7fb22f4982f671f098\"\u003e\u003ccode\u003efd183b2\u003c/code\u003e\u003c/a\u003e release version 8.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/262bdf02288daf9a37b9e815b44acafd62b5c6fe\"\u003e\u003ccode\u003e262bdf0\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/80efdf6c10c51884416d11b3b575f61157af77fa\"\u003e\u003ccode\u003e80efdf6\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/cfa6f4ad3e0078db43f866246b483544afa33ed3\"\u003e\u003ccode\u003ecfa6f4a\u003c/code\u003e\u003c/a\u003e Flush sys.stderr when CliRunner finalizes (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f3a4363d1e8383df496adb31f2a6ed037f85380c\"\u003e\u003ccode\u003ef3a4363\u003c/code\u003e\u003c/a\u003e flush sys.stderr when CliRunner.invoke finalizes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b7cf06970e40a3144eb963ff34ed7c38934afb40\"\u003e\u003ccode\u003eb7cf069\u003c/code\u003e\u003c/a\u003e fix shell completion for nested groups (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c575d6b466a1e594d5d6df8f0a1c11d7359a821\"\u003e\u003ccode\u003e7c575d6\u003c/code\u003e\u003c/a\u003e parametrize test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ac6a2acfdb4550c35ce69ce54db502ba96c96324\"\u003e\u003ccode\u003eac6a2ac\u003c/code\u003e\u003c/a\u003e Fix shell completion for nested groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/884af5c20fdc95c9c7352df35c37273391464fb9\"\u003e\u003ccode\u003e884af5c\u003c/code\u003e\u003c/a\u003e Fix flag value set when is_flag=True and type is provided (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2930\"\u003e#2930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4fd2fea0db423d242aedcae0a5f664efe0a93484\"\u003e\u003ccode\u003e4fd2fea\u003c/code\u003e\u003c/a\u003e Fix condition for setting flag value when type is provided\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.6.1 to 2.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.9.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release.  Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns.query.https() and dns.asyncquery.https() now support HTTP/3 and the http_version\nparameter may be used to specify which version to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the cryptography module is installed, then dnspython will now create deterministic\nECDSA signatures by default.  Cryptography, if installed, must be at least version 43.\nThanks to Jakob Schlyter for adding the feature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe RESINFO and WALLET RdataTypes are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe COOKIE and Report-Channel EDNS0 options are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAll supported RdataTypes can now be imported at a single time rather than lazily on\nfirst use by calling dns.rdata.load_all_types().\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe SVCB and HTTPS records now support the ohttp parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003exfr() and inbound_xfr() now share a common implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTokens are now supported for QUIC and HTTP/3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.from_wire() now saves the input wire format in the Message's \u0026quot;wire\u0026quot;\nattribute.  Likewise, dns.message.Message.to_wire() now records the generated\nwire format in that attribute.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe dns.message.Message object now has a get_options() helper to retrieve EDNS0\noptions of a specified type, and an extended_errors() helper to retrieve the list\nof EDE options in a message (if any).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.make_response() now has a copy mode which controls how sections are\ncopied.  By default, a copy mode appropriate for the opcode is used.  This is\ncurrently dns.message.CopyMode.QUESTION for all opcodes.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf an IP address is used as the hostname in a URL, the https query code now passes\nthe sni_hostname to httpx as this is required to get httpx to validate the certificate\nand check for an IP subject alternative name.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported aioquic version is now 1.0.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.9.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/889385e71021f53e1dc4f117d92aed66bb90d087\"\u003e\u003ccode\u003e889385e\u003c/code\u003e\u003c/a\u003e 2.7.0 release prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/bb4bc91f3143a89f8e12941bd8404908f9eb5a09\"\u003e\u003ccode\u003ebb4bc91\u003c/code\u003e\u003c/a\u003e fix(answer): add typing to range (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/4eaf0e25b511bd48586022baa805329bdf304653\"\u003e\u003ccode\u003e4eaf0e2\u003c/code\u003e\u003c/a\u003e Use the port from the URL if provided for H3 \u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1139\"\u003e#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a287921934b1b0fa521ae181da0b017180ee2907\"\u003e\u003ccode\u003ea287921\u003c/code\u003e\u003c/a\u003e fix doco typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/142f7ba586922ae5e036ed54793145b8fc4b4882\"\u003e\u003ccode\u003e142f7ba\u003c/code\u003e\u003c/a\u003e fix typo (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8ce60d2e9758c040fbe981cfdc14e42d7073f2b0\"\u003e\u003ccode\u003e8ce60d2\u003c/code\u003e\u003c/a\u003e CI 2.7 testing and also remove python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/4e15806137974775c8bb5a47b828b42f15656382\"\u003e\u003ccode\u003e4e15806\u003c/code\u003e\u003c/a\u003e 2.7.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/2d6e17c0393343c0e022fa9ab1a00c2d5c6a3736\"\u003e\u003ccode\u003e2d6e17c\u003c/code\u003e\u003c/a\u003e fix typing after reorganization\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/ab59c9a339237b99869fd3a4b0492ddf1a8146ce\"\u003e\u003ccode\u003eab59c9a\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/2b763dc130b400cfa7b01c74cfd72e3c5a1554d4\"\u003e\u003ccode\u003e2b763dc\u003c/code\u003e\u003c/a\u003e linting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.6.1...v2.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-cors` from 6.0.0 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/corydolphin/flask-cors/releases\"\u003eflask-cors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInvert regex sorting to make it correctly match the intent (sorting by specificity descending) \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1.dev\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/a5003f391e56f74f11a3e509cd180787c75eb6b0\"\u003e\u003ccode\u003ea5003f3\u003c/code\u003e\u003c/a\u003e Fix README file extension in pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/4ad56d6c20252d36031c74ba8386a81e94286f40\"\u003e\u003ccode\u003e4ad56d6\u003c/code\u003e\u003c/a\u003e Fix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 6.8.0 to 8.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev8.7.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.metadata()\u003c/code\u003e (and \u003ccode\u003eDistribution.metadata\u003c/code\u003e) can now return \u003ccode\u003eNone\u003c/code\u003e if the metadata directory exists but not metadata file is present. (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise consistent ValueError for invalid EntryPoint.value (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed indentation logic to also honor blank lines.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#119650\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeferred import of zipfile.Path (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeferred import of json (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRely on zipp overlay for zipfile.Path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.4.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/708dff4f1ab89bdd126e3e8c56098d04282c5809\"\u003e\u003ccode\u003e708dff4\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b3065f03cc3395f46ed575e612e213f92a064879\"\u003e\u003ccode\u003eb3065f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/519\"\u003e#519\u003c/a\u003e from python/bugfix/493-metadata-missing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/e4351c226765f53a40316fa6aab50488aee8a90f\"\u003e\u003ccode\u003ee4351c2\u003c/code\u003e\u003c/a\u003e Add a new test capturing the new expectation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/5a657051f7386de6f0560c200d78e941be2c8058\"\u003e\u003ccode\u003e5a65705\u003c/code\u003e\u003c/a\u003e Refactor the casting into a wrapper for brevity and to document its purpose.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0830c39b8a23e48024365120c0e97a6f7c36c5ec\"\u003e\u003ccode\u003e0830c39\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/22bb567692d8e7bd216f864a9d8dee1272ee8674\"\u003e\u003ccode\u003e22bb567\u003c/code\u003e\u003c/a\u003e Fix type errors where metadata could be None.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/57f31d77e18fef11dfadfd44775f253971c36920\"\u003e\u003ccode\u003e57f31d7\u003c/code\u003e\u003c/a\u003e Allow metadata to return None when there is no metadata present.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b9c4be4253250ad604610db66204e5fa70fa2455\"\u003e\u003ccode\u003eb9c4be4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e from python/bugfix/488-bad-ep-value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9f8af013635833cf3ac348413c9ac63b37caa3dd\"\u003e\u003ccode\u003e9f8af01\u003c/code\u003e\u003c/a\u003e Prefer a cached property, as the property is likely to be retrieved at least ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/f179e28888b2c6caf12baaf5449ff1cd82513dfe\"\u003e\u003ccode\u003ef179e28\u003c/code\u003e\u003c/a\u003e Also raise ValueError on construction if the value is invalid.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v6.8.0...v8.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `itsdangerous` from 2.1.2 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/releases\"\u003eitsdangerous's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003cp\u003eThis is a feature release, which includes new features, removes previously deprecated code, and adds new deprecations. The 2.2.x branch is now the supported fix branch, the 2.1.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003eChanges: \u003ca href=\"https://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\"\u003ehttps://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/itsdangerous/milestone/8?closed=1\"\u003ehttps://github.com/pallets/itsdangerous/milestone/8?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking. By default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a different \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return type of its \u003ccode\u003edumps\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/blob/main/CHANGES.rst\"\u003eitsdangerous's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-16\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7. :pr:\u003ccode\u003e372\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e326\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e371\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking.\nBy default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a\ndifferent \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return\ntype of its \u003ccode\u003edumps\u003c/code\u003e method. :issue:\u003ccode\u003e347\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e375\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/096c8d42545d3b68ea21a4f890fb2b2d8979c0bd\"\u003e\u003ccode\u003e096c8d4\u003c/code\u003e\u003c/a\u003e release version 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/7f4dcf83a07bb3d53f4e0e65ef1b43327b4cca90\"\u003e\u003ccode\u003e7f4dcf8\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/93ae366874bbd4f69d90495c45b2cd336387496c\"\u003e\u003ccode\u003e93ae366\u003c/code\u003e\u003c/a\u003e change entry for generic serializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/135eb234ed4a07520779ffb679407b7d27c8ffe6\"\u003e\u003ccode\u003e135eb23\u003c/code\u003e\u003c/a\u003e Generic serializer (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/999ce7af1f0502a224d33338e6ded8bc1e81cb2f\"\u003e\u003ccode\u003e999ce7a\u003c/code\u003e\u003c/a\u003e Improve generic typing further\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/52890d78bb6d92eac4d8d84f33f61be8bd803da7\"\u003e\u003ccode\u003e52890d7\u003c/code\u003e\u003c/a\u003e improve generic typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/385c0eb7501b121b1fddafe19c547073f5a458a0\"\u003e\u003ccode\u003e385c0eb\u003c/code\u003e\u003c/a\u003e type \u003ccode\u003eSerializer\u003c/code\u003e as generic (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/01001c63af4a1c58b65328b2aad3df75a6edc843\"\u003e\u003ccode\u003e01001c6\u003c/code\u003e\u003c/a\u003e type Serializer as generic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/bc88e945d31c407e16c3f4e1c713c12dd598e58d\"\u003e\u003ccode\u003ebc88e94\u003c/code\u003e\u003c/a\u003e improve typing (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/69a3bca7582859bc8ce83ccc28b0cf33f7909388\"\u003e\u003ccode\u003e69a3bca\u003c/code\u003e\u003c/a\u003e improve typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/itsdangerous/compare/2.1.2...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nest-asyncio` from 1.5.8 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/erdewit/nest_asyncio/releases\"\u003enest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev1.6.0\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/19f396f9396bfd34b1b0caeb9b4c631ee3d7eb21\"\u003e\u003ccode\u003e19f396f\u003c/code\u003e\u003c/a\u003e Remove redundant blank line.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c31e7c44f063819ea2d0738e3c72c25458d3fd1b\"\u003e\u003ccode\u003ec31e7c4\u003c/code\u003e\u003c/a\u003e Pre-empt current task before running handle, allowing unpatched tasks, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/80\"\u003e#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/35618de086e8844d24039d2fcd090b8f1647c743\"\u003e\u003ccode\u003e35618de\u003c/code\u003e\u003c/a\u003e v1.5.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c4b8289fe4f4a3192fd1d501e74df08fd93ed348\"\u003e\u003ccode\u003ec4b8289\u003c/code\u003e\u003c/a\u003e Fix patching an already running Proactor loop, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/87\"\u003e#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/d5a13b0d5f156ac9076fbc244f49fb9d48af9bbc\"\u003e\u003ccode\u003ed5a13b0\u003c/code\u003e\u003c/a\u003e Update link to build icon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/a48a68a47e182bd7e1f86c60dfc07d7b8509508b\"\u003e\u003ccode\u003ea48a68a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/84\"\u003e#84\u003c/a\u003e from 5j9/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c20e77426bfb9be50d514a850bc4cabbbc69f114\"\u003e\u003ccode\u003ec20e774\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/f7ce59048cdaace5a1a82c78ef476c3bbb3b664a\"\u003e\u003ccode\u003ef7ce590\u003c/code\u003e\u003c/a\u003e v1.5.8\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/erdewit/nest_asyncio/compare/v1.5.8...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.8.0 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent partial matching of \u003ccode\u003eiss\u003c/code\u003e claim. Thanks \u003ca href=\"https://github.com/fabianbadoi\"\u003e\u003ccode\u003e@​fabianbadoi\u003c/code\u003e\u003c/a\u003e! (See: \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\"\u003ehttps://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: use sequence for typing rather than list by \u003ca href=\"https://github.com/imnotjames\"\u003e\u003ccode\u003e@​imnotjames\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/970\"\u003ejpadilla/pyjwt#970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/972\"\u003ejpadilla/pyjwt#972\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/971\"\u003ejpadilla/pyjwt#971\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an RTD config file to resolve RTD build failures by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/977\"\u003ejpadilla/pyjwt#977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update \u003ccode\u003eiat\u003c/code\u003e exception docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/974\"\u003ejpadilla/pyjwt#974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove algorithm requirement for JWT API by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/975\"\u003ejpadilla/pyjwt#975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/978\"\u003ejpadilla/pyjwt#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate SECURITY.md by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/973\"\u003ejpadilla/pyjwt#973\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs fix: decode_complete scope and algorithms by \u003ca href=\"https://github.com/RbnRncn\"\u003e\u003ccode\u003e@​RbnRncn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/982\"\u003ejpadilla/pyjwt#982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix doctest for docs/usage.rst by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/986\"\u003ejpadilla/pyjwt#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix test_utils.py not to xfail by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/987\"\u003ejpadilla/pyjwt#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect jwt.decode audience param doc expression by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/994\"\u003ejpadilla/pyjwt#994\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PS256 encoding and decoding usage by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/992\"\u003ejpadilla/pyjwt#992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd API docs for PyJWK by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/980\"\u003ejpadilla/pyjwt#980\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor project configuration files from setup.cfg to pyproject.toml PEP-518 by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/995\"\u003ejpadilla/pyjwt#995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd JWK support to JWT encode by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/979\"\u003ejpadilla/pyjwt#979\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit hooks to lint pyproject.toml by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1002\"\u003ejpadilla/pyjwt#1002\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd EdDSA algorithm encoding/decoding usage by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/993\"\u003ejpadilla/pyjwt#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRuff linter and formatter changes by \u003ca href=\"https://github.com/gagandeepp\"\u003e\u003ccode\u003e@​gagandeepp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1001\"\u003ejpadilla/pyjwt#1001\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate \u003ccode\u003esub\u003c/code\u003e and \u003ccode\u003ejti\u003c/code\u003e claims for the token by \u003ca href=\"https://github.com/Divan009\"\u003e\u003ccode\u003e@​Divan009\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1005\"\u003ejpadilla/pyjwt#1005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ES256 usage  by \u003ca href=\"https://github.com/Gautam-Hegde\"\u003e\u003ccode\u003e@​Gautam-Hegde\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1003\"\u003ejpadilla/pyjwt#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEncode EC keys with a fixed bit length by \u003ca href=\"https://github.com/way-dave\"\u003e\u003ccode\u003e@​way-dave\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/990\"\u003ejpadilla/pyjwt#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1000\"\u003ejpadilla/pyjwt#1000\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8 by \u003ca href=\"https://github.com/kkirsche\"\u003e\u003ccode\u003e@​kkirsche\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1007\"\u003ejpadilla/pyjwt#1007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare 2.10.0 release by \u003ca href=\"https://github.com/benvdh\"\u003e\u003ccode\u003e@​benvdh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1011\"\u003ejpadilla/pyjwt#1011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump codecov/codecov-action from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1014\"\u003ejpadilla/pyjwt#1014\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1006\"\u003ejpadilla/pyjwt#1006\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imnotjames\"\u003e\u003ccode\u003e@​imnotjames\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/970\"\u003ejpadilla/pyjwt#970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/977\"\u003ejpadilla/pyjwt#977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/974\"\u003ejpadilla/pyjwt#974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RbnRncn\"\u003e\u003ccode\u003e@​RbnRncn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/982\"\u003ejpadilla/pyjwt#982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/994\"\u003ejpadilla/pyjwt#994\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/995\"\u003ejpadilla/pyjwt#995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gagandeepp\"\u003e\u003ccode\u003e@​gagandeepp\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1001\"\u003ejpadilla/pyjwt#1001\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Divan009\"\u003e\u003ccode\u003e@​Divan009\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1005\"\u003ejpadilla/pyjwt#1005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Gautam-Hegde\"\u003e\u003ccode\u003e@​Gautam-Hegde\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1003\"\u003ejpadilla/pyjwt#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/way-dave\"\u003e\u003ccode\u003e@​way-dave\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/990\"\u003ejpadilla/pyjwt#990\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.9.0...2.10.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.9.0...2.10.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.10.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.10.0.....\n\n_Description has been truncated_","html_url":"https://github.com/asusoda/platform/pull/78","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asusoda%2Fplatform/issues/78","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/78/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2025-09-04T14:04:30.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"2799610803","node_id":"PR_kwDOOwBP6c6m3quz","number":16,"state":"closed","title":"deps(deps): bump aiosignal from 1.3.1 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["Wk4021"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-04T14:06:57.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-04T14:04:30.000Z","updated_at":"2025-09-04T14:06:58.000Z","time_to_close":147,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps)","packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"}],"path":null,"ecosystem":"pip"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps [aiosignal](https://github.com/aio-libs/aiosignal) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiosignal\u0026package-manager=pip\u0026previous-version=1.3.1\u0026new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Wk4021/Discord-Reputation-Bot/pull/16","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wk4021%2FDiscord-Reputation-Bot/issues/16","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/16/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2025-09-03T23:46:33.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"2797549848","node_id":"PR_kwDOKXLyYM6mvzkY","number":76,"state":"closed","title":"Bump the python-deps group across 1 directory with 25 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-09-05T07:27:35.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-03T23:46:33.000Z","updated_at":"2025-09-05T07:27:35.000Z","time_to_close":114062,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-deps","update_count":25,"packages":[{"name":"aiosignal","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/aio-libs/aiosignal"},{"name":"async-timeout","old_version":"4.0.3","new_version":"5.0.1","repository_url":"https://github.com/aio-libs/async-timeout"},{"name":"attrs","old_version":"23.1.0","new_version":"25.3.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.2.1","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.6.1","new_version":"2.7.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"flask-cors","old_version":"6.0.0","new_version":"6.0.1","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"importlib-metadata","old_version":"6.8.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"nest-asyncio","old_version":"1.5.8","new_version":"1.6.0","repository_url":"https://github.com/erdewit/nest_asyncio"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pymongo","old_version":"4.6.3","new_version":"4.14.1","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"python-engineio","old_version":"4.9.0","new_version":"4.12.2","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-socketio","old_version":"5.11.2","new_version":"5.13.0","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"simple-websocket","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/miguelgrinberg/simple-websocket"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"werkzeug","old_version":"3.0.6","new_version":"3.1.3","repository_url":"https://github.com/pallets/werkzeug"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.181.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"selenium","old_version":"4.32.0","new_version":"4.35.0","repository_url":"https://github.com/SeleniumHQ/Selenium"},{"name":"cryptography","old_version":"45.0.6","new_version":"45.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"notion-client","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/ramnes/notion-sdk-py"},{"name":"google-genai","old_version":"1.30.0","new_version":"1.32.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"anthropic","old_version":"0.64.0","new_version":"0.65.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"1.102.0","new_version":"1.104.2","repository_url":"https://github.com/openai/openai-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 25 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosignal](https://github.com/aio-libs/aiosignal) | `1.3.1` | `1.4.0` |\n| [async-timeout](https://github.com/aio-libs/async-timeout) | `4.0.3` | `5.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `23.1.0` | `25.3.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.2.1` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.6.1` | `2.7.0` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.0` | `6.0.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.8.0` | `8.7.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [nest-asyncio](https://github.com/erdewit/nest_asyncio) | `1.5.8` | `1.6.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.6.3` | `4.14.1` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.9.0` | `4.12.2` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.11.2` | `5.13.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [simple-websocket](https://github.com/miguelgrinberg/simple-websocket) | `1.0.0` | `1.1.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.0.6` | `3.1.3` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.181.0` |\n| [selenium](https://github.com/SeleniumHQ/Selenium) | `4.32.0` | `4.35.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.6` | `45.0.7` |\n| [notion-client](https://github.com/ramnes/notion-sdk-py) | `2.4.0` | `2.5.0` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.30.0` | `1.32.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.64.0` | `0.65.0` |\n| [openai](https://github.com/openai/openai-python) | `1.102.0` | `1.104.2` |\n\n\nUpdates `aiosignal` from 1.3.1 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/releases\"\u003eaiosignal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e1.3.2\u003c/h2\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/413\"\u003e#413\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support. (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/645\"\u003e#645\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiosignal/blob/master/CHANGES.rst\"\u003eaiosignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2025-07-03)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded decorator functionality to \u003ccode\u003eSignal\u003c/code\u003e as a convenient way to add a callback -- by \u003ccode\u003e@Vizonex\u003c/code\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python \u0026lt;3.13).\nParameters for a \u003ccode\u003eSignal\u003c/code\u003e callback should now be defined like \u003ccode\u003eSignal[int, str]\u003c/code\u003e -- by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Dreamsorcerer\"\u003e\u003ccode\u003e@​Dreamsorcerer\u003c/code\u003e\u003c/a\u003e.\n\u003ccode\u003e[#699](https://github.com/aio-libs/aiosignal/issues/699) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/699\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003e[#710](https://github.com/aio-libs/aiosignal/issues/710) \u0026lt;https://github.com/aio-libs/aiosignal/pulls/710\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the sphinxcontrib-asyncio documentation dependency.\n\u003ccode\u003e[#528](https://github.com/aio-libs/aiosignal/issues/528) \u0026lt;https://github.com/aio-libs/aiosignal/pull/528\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e1.3.2 (2024-12-13)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.7 support.\n\u003ccode\u003e[#413](https://github.com/aio-libs/aiosignal/issues/413) \u0026lt;https://github.com/aio-libs/aiosignal/issues/413\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped Python 3.8 support.\n\u003ccode\u003e[#645](https://github.com/aio-libs/aiosignal/issues/645) \u0026lt;https://github.com/aio-libs/aiosignal/issues/645\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#362](https://github.com/aio-libs/aiosignal/issues/362) \u0026lt;https://github.com/aio-libs/aiosignal/issues/362\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/1cf80149c869d410c90a58e85e9c703be6ef8692\"\u003e\u003ccode\u003e1cf8014\u003c/code\u003e\u003c/a\u003e Fix deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/892494c5c72553e281e57e924cf055e6125fb0fc\"\u003e\u003ccode\u003e892494c\u003c/code\u003e\u003c/a\u003e Release v1.4 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/fa360821631383aed6a534da6f73ad149ec666f7\"\u003e\u003ccode\u003efa36082\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/b7f68f12fed7c4b84a6866984e7adafcd18fe265\"\u003e\u003ccode\u003eb7f68f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/2b1acac380eaaa91a643bfc9c24fa1f3942f0d45\"\u003e\u003ccode\u003e2b1acac\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/17456ed5f968c0001a8823c2076f999fbf448157\"\u003e\u003ccode\u003e17456ed\u003c/code\u003e\u003c/a\u003e Build(deps): Bump tox from 4.26.0 to 4.27.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/4c236903da2e71b85652c07bed69013189a39406\"\u003e\u003ccode\u003e4c23690\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.0 to 8.4.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/7be2f6833be08bb14207bc627f9931665cd947ce\"\u003e\u003ccode\u003e7be2f68\u003c/code\u003e\u003c/a\u003e Build(deps): Bump mypy from 1.16.0 to 1.16.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/5d62945d07c9413720e968cc3f25c66307d9a337\"\u003e\u003ccode\u003e5d62945\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.9.0 to 7.9.1 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiosignal/commit/a6d85c1c3430621814d6163ea442828e7f31b34b\"\u003e\u003ccode\u003ea6d85c1\u003c/code\u003e\u003c/a\u003e Build(deps): Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 (\u003ca href=\"https://redirect.github.com/aio-libs/aiosignal/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiosignal/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-timeout` from 4.0.3 to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/releases\"\u003easync-timeout's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst\"\u003easync-timeout's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.1 (2024-11-06)\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#423](https://github.com/aio-libs/async-timeout/issues/423) \u0026lt;https://github.com/aio-libs/async-timeout/issues/423\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.0.0 (2024-10-31)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003easyncio_timeout\u003c/code\u003e fully compatible with the standard \u003ccode\u003easyncio.Timeout\u003c/code\u003e but keep backward compatibility with existing \u003ccode\u003easyncio_timeout.Timeout\u003c/code\u003e API. (\u003ccode\u003e[#422](https://github.com/aio-libs/async-timeout/issues/422) \u0026lt;https://github.com/aio-libs/async-timeout/issues/422\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn the \u003ccode\u003eCHANGES/README.rst \u0026lt;https://github.com/aio-libs/async-timeout/tree/master/CHANGES/README.rst\u0026gt;\u003c/code\u003e_ page,\na link to the \u003ccode\u003eTowncrier philosophy\u003c/code\u003e has been fixed. (\u003ccode\u003e[#388](https://github.com/aio-libs/async-timeout/issues/388) \u0026lt;https://github.com/aio-libs/async-timeout/issues/388\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop deprecated sync context manager support, use \u003ccode\u003easync with timeout(...): ...\u003c/code\u003e instead. (\u003ccode\u003e[#421](https://github.com/aio-libs/async-timeout/issues/421) \u0026lt;https://github.com/aio-libs/async-timeout/issues/421\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/cc52d410e733b302873e6e52db9a9b6578d053a4\"\u003e\u003ccode\u003ecc52d41\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/1af7d7165d598af03e51952a679c690690dc7f8e\"\u003e\u003ccode\u003e1af7d71\u003c/code\u003e\u003c/a\u003e Bump to 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3bf26d96e3d1830a0e72ddab9c6a2c87e1f4380a\"\u003e\u003ccode\u003e3bf26d9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/423\"\u003e#423\u003c/a\u003e: add requirements.txt to sdist package (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/380e8ba5bf77e3cd184df8a5f51dc929d93d8553\"\u003e\u003ccode\u003e380e8ba\u003c/code\u003e\u003c/a\u003e Mention condition import of asyncio.timeout / async_timeout.timeout in README...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/8a232d0f7fc1af88c8d921500d78bbefc2bc545c\"\u003e\u003ccode\u003e8a232d0\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/3d3e3e45420ac6ea0ef77c9e32388e252e12ac4d\"\u003e\u003ccode\u003e3d3e3e4\u003c/code\u003e\u003c/a\u003e Bump to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/d5c21f3dee7eeb06823af77284ad2a899611b28e\"\u003e\u003ccode\u003ed5c21f3\u003c/code\u003e\u003c/a\u003e Mimic asyncio.Timeout behavior (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/a1111c2597b9ce8d34b823c1b993689339ea9fd6\"\u003e\u003ccode\u003ea1111c2\u003c/code\u003e\u003c/a\u003e Drop deprecated sync context manager support (\u003ca href=\"https://redirect.github.com/aio-libs/async-timeout/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/00fd343ce6ba2ccc291c0f6e09fea8998cbfe3a1\"\u003e\u003ccode\u003e00fd343\u003c/code\u003e\u003c/a\u003e Imports cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-timeout/commit/7b61b33ae0ecee0e0bb0e09f2e5787c647d4ffb8\"\u003e\u003ccode\u003e7b61b33\u003c/code\u003e\u003c/a\u003e Update CI config file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-timeout/compare/v4.0.3...v5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 23.1.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003cp\u003eIt leverages charset-normalizer in a better way! Check it out, you will gain up to being 3X faster and get a real/respectable support with it.\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebuild-requirements.txt\u003c/code\u003e as per using \u003ccode\u003epyproject.toml\u003c/code\u003e native build configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/integration.py\u003c/code\u003e and \u003ccode\u003ebin/serve.py\u003c/code\u003e in favor of downstream integration test (see noxfile).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e in favor of \u003ccode\u003epyproject.toml\u003c/code\u003e metadata configuration.\u003c/li\u003e\n\u003cli\u003eUnused \u003ccode\u003eutils.range_scan\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConverting content to Unicode bytes may insert \u003ccode\u003eutf_8\u003c/code\u003e instead of preferred \u003ccode\u003eutf-8\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning \u0026quot;'count' is passed as positional argument\u0026quot; when converting to Unicode bytes on Python 3.13+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0\"\u003e3.4.0\u003c/a\u003e (2024-10-08)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.1/\"\u003ehttps://pypi.org/project/click/8.2.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/24?closed=1\"\u003ehttps://github.com/pallets/click/milestone/24?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2894\"\u003e#2894\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2897\"\u003e#2897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2906\"\u003e#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2682\"\u003e#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2787\"\u003e#2787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.0/\"\u003ehttps://pypi.org/project/click/8.2.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/en/stable/changes/\"\u003ehttps://click.palletsprojects.com/en/stable/changes/\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/15\"\u003ehttps://github.com/pallets/click/milestone/15\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8,and 3.9. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2588\"\u003e#2588\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pallets/click/issues/2893\"\u003e#2893\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2438\"\u003e#2438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2543\"\u003e#2543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2598\"\u003e#2598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2589\"\u003e#2589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2590\"\u003e#2590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe current parser and related classes and methods, are deprecated.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2205\"\u003e#2205\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of \u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any remaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is unneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable deferred evaluation of annotations with \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2270\"\u003e#2270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen generating a command's name from a decorated function's name, the suffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2322\"\u003e#2322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within \u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2356\"\u003e#2356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is \u003ccode\u003eFalse\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2509\"\u003e#2509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra items used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2516\"\u003e#2516\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2517\"\u003e#2517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep stdout and stderr streams independent in \u003ccode\u003eCliRunner\u003c/code\u003e. Always collect stderr output and never raise an exception. Add a new output stream to simulate what the user sees in its terminal. Removes the \u003ccode\u003emix_stderr\u003c/code\u003e parameter in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2522\"\u003e#2522\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2523\"\u003e#2523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eOption.show_envvar\u003c/code\u003e now also shows environment variable in error messages. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2695\"\u003e#2695\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2696\"\u003e#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.close\u003c/code\u003e will be called on exit. This results in all \u003ccode\u003eContext.call_on_close\u003c/code\u003e callbacks and context managers added via \u003ccode\u003eContext.with_resource\u003c/code\u003e to be closed on exit as well. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2680\"\u003e#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eProgressBar(hidden: bool)\u003c/code\u003e to allow hiding the progressbar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2609\"\u003e#2609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eUserWarning\u003c/code\u003e will be shown when multiple parameters attempt to use the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eOption.envvar\u003c/code\u003e with \u003ccode\u003eOption.flag_value\u003c/code\u003e, the \u003ccode\u003eflag_value\u003c/code\u003e will always be used instead of the value of the environment variable. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2746\"\u003e#2746\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2788\"\u003e#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eChoice.get_invalid_choice_message\u003c/code\u003e method for customizing the invalid choice message. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2621\"\u003e#2621\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2622\"\u003e#2622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf help is shown because \u003ccode\u003eno_args_is_help\u003c/code\u003e is enabled (defaults to \u003ccode\u003eTrue\u003c/code\u003e for groups, \u003ccode\u003eFalse\u003c/code\u003e for commands), the exit code is 2 instead of 0. \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContexts created during shell completion are closed properly, fixing a \u003ccode\u003eResourceWarning\u003c/code\u003e when using \u003ccode\u003eclick.File\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2644\"\u003e#2644\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2800\"\u003e#2800\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2767\"\u003e#2767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eclick.edit(filename)\u003c/code\u003e now supports passing an iterable of filenames in case the editor supports editing multiple files at once. Its return type is now also typed: \u003ccode\u003eAnyStr\u003c/code\u003e if \u003ccode\u003etext\u003c/code\u003e is passed, otherwise \u003ccode\u003eNone\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2067\"\u003e#2067\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2068\"\u003e#2068\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. :issue:\u003ccode\u003e2894\u003c/code\u003e\n:issue:\u003ccode\u003e2897\u003c/code\u003e :pr:\u003ccode\u003e2930\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. :issue:\u003ccode\u003e2906\u003c/code\u003e :pr:\u003ccode\u003e2907\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. :issue:\u003ccode\u003e2682\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in CliRunner. :issue:\u003ccode\u003e2787\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.7, 3.8, and 3.9. :pr:\u003ccode\u003e2588\u003c/code\u003e :pr:\u003ccode\u003e2893\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e2438\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. :pr:\u003ccode\u003e2543\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e2598\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all\ncommands. :issue:\u003ccode\u003e2589\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group\ncommands. :issue:\u003ccode\u003e2590\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe current parser and related classes and methods, are deprecated.\n:issue:\u003ccode\u003e2205\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of\n\u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any\nremaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is\nunneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable deferred evaluation of annotations with\n\u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. :pr:\u003ccode\u003e2270\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen generating a command's name from a decorated function's name, the\nsuffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed.\n:issue:\u003ccode\u003e2322\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within\n\u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified.\n:issue:\u003ccode\u003e2356\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is\n\u003ccode\u003eFalse\u003c/code\u003e. :pr:\u003ccode\u003e2509\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra\nitems used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. :issue:\u003ccode\u003e2516\u003c/code\u003e\n:pr:\u003ccode\u003e2517\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/fd183b2ced1cb5857784fe7fb22f4982f671f098\"\u003e\u003ccode\u003efd183b2\u003c/code\u003e\u003c/a\u003e release version 8.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/262bdf02288daf9a37b9e815b44acafd62b5c6fe\"\u003e\u003ccode\u003e262bdf0\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/80efdf6c10c51884416d11b3b575f61157af77fa\"\u003e\u003ccode\u003e80efdf6\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/cfa6f4ad3e0078db43f866246b483544afa33ed3\"\u003e\u003ccode\u003ecfa6f4a\u003c/code\u003e\u003c/a\u003e Flush sys.stderr when CliRunner finalizes (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f3a4363d1e8383df496adb31f2a6ed037f85380c\"\u003e\u003ccode\u003ef3a4363\u003c/code\u003e\u003c/a\u003e flush sys.stderr when CliRunner.invoke finalizes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b7cf06970e40a3144eb963ff34ed7c38934afb40\"\u003e\u003ccode\u003eb7cf069\u003c/code\u003e\u003c/a\u003e fix shell completion for nested groups (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c575d6b466a1e594d5d6df8f0a1c11d7359a821\"\u003e\u003ccode\u003e7c575d6\u003c/code\u003e\u003c/a\u003e parametrize test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ac6a2acfdb4550c35ce69ce54db502ba96c96324\"\u003e\u003ccode\u003eac6a2ac\u003c/code\u003e\u003c/a\u003e Fix shell completion for nested groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/884af5c20fdc95c9c7352df35c37273391464fb9\"\u003e\u003ccode\u003e884af5c\u003c/code\u003e\u003c/a\u003e Fix flag value set when is_flag=True and type is provided (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2930\"\u003e#2930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4fd2fea0db423d242aedcae0a5f664efe0a93484\"\u003e\u003ccode\u003e4fd2fea\u003c/code\u003e\u003c/a\u003e Fix condition for setting flag value when type is provided\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.6.1 to 2.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.9.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release.  Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns.query.https() and dns.asyncquery.https() now support HTTP/3 and the http_version\nparameter may be used to specify which version to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the cryptography module is installed, then dnspython will now create deterministic\nECDSA signatures by default.  Cryptography, if installed, must be at least version 43.\nThanks to Jakob Schlyter for adding the feature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe RESINFO and WALLET RdataTypes are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe COOKIE and Report-Channel EDNS0 options are now supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAll supported RdataTypes can now be imported at a single time rather than lazily on\nfirst use by calling dns.rdata.load_all_types().\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe SVCB and HTTPS records now support the ohttp parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003exfr() and inbound_xfr() now share a common implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTokens are now supported for QUIC and HTTP/3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.from_wire() now saves the input wire format in the Message's \u0026quot;wire\u0026quot;\nattribute.  Likewise, dns.message.Message.to_wire() now records the generated\nwire format in that attribute.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe dns.message.Message object now has a get_options() helper to retrieve EDNS0\noptions of a specified type, and an extended_errors() helper to retrieve the list\nof EDE options in a message (if any).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns.message.make_response() now has a copy mode which controls how sections are\ncopied.  By default, a copy mode appropriate for the opcode is used.  This is\ncurrently dns.message.CopyMode.QUESTION for all opcodes.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf an IP address is used as the hostname in a URL, the https query code now passes\nthe sni_hostname to httpx as this is required to get httpx to validate the certificate\nand check for an IP subject alternative name.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported aioquic version is now 1.0.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.9.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/889385e71021f53e1dc4f117d92aed66bb90d087\"\u003e\u003ccode\u003e889385e\u003c/code\u003e\u003c/a\u003e 2.7.0 release prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/bb4bc91f3143a89f8e12941bd8404908f9eb5a09\"\u003e\u003ccode\u003ebb4bc91\u003c/code\u003e\u003c/a\u003e fix(answer): add typing to range (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/4eaf0e25b511bd48586022baa805329bdf304653\"\u003e\u003ccode\u003e4eaf0e2\u003c/code\u003e\u003c/a\u003e Use the port from the URL if provided for H3 \u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1139\"\u003e#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a287921934b1b0fa521ae181da0b017180ee2907\"\u003e\u003ccode\u003ea287921\u003c/code\u003e\u003c/a\u003e fix doco typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/142f7ba586922ae5e036ed54793145b8fc4b4882\"\u003e\u003ccode\u003e142f7ba\u003c/code\u003e\u003c/a\u003e fix typo (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8ce60d2e9758c040fbe981cfdc14e42d7073f2b0\"\u003e\u003ccode\u003e8ce60d2\u003c/code\u003e\u003c/a\u003e CI 2.7 testing and also remove python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/4e15806137974775c8bb5a47b828b42f15656382\"\u003e\u003ccode\u003e4e15806\u003c/code\u003e\u003c/a\u003e 2.7.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/2d6e17c0393343c0e022fa9ab1a00c2d5c6a3736\"\u003e\u003ccode\u003e2d6e17c\u003c/code\u003e\u003c/a\u003e fix typing after reorganization\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/ab59c9a339237b99869fd3a4b0492ddf1a8146ce\"\u003e\u003ccode\u003eab59c9a\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/2b763dc130b400cfa7b01c74cfd72e3c5a1554d4\"\u003e\u003ccode\u003e2b763dc\u003c/code\u003e\u003c/a\u003e linting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.6.1...v2.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-cors` from 6.0.0 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/corydolphin/flask-cors/releases\"\u003eflask-cors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInvert regex sorting to make it correctly match the intent (sorting by specificity descending) \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.1.dev\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix README file extension in pyproject.toml by \u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joshuamorton\"\u003e\u003ccode\u003e@​joshuamorton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/392\"\u003ecorydolphin/flask-cors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lafrech\"\u003e\u003ccode\u003e@​lafrech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/pull/386\"\u003ecorydolphin/flask-cors#386\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\"\u003ehttps://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1.dev\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/a5003f391e56f74f11a3e509cd180787c75eb6b0\"\u003e\u003ccode\u003ea5003f3\u003c/code\u003e\u003c/a\u003e Fix README file extension in pyproject.toml (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/corydolphin/flask-cors/commit/4ad56d6c20252d36031c74ba8386a81e94286f40\"\u003e\u003ccode\u003e4ad56d6\u003c/code\u003e\u003c/a\u003e Fix regex sorting issue from \u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/391\"\u003e#391\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/corydolphin/flask-cors/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/corydolphin/flask-cors/compare/6.0.0...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 6.8.0 to 8.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev8.7.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.metadata()\u003c/code\u003e (and \u003ccode\u003eDistribution.metadata\u003c/code\u003e) can now return \u003ccode\u003eNone\u003c/code\u003e if the metadata directory exists but not metadata file is present. (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise consistent ValueError for invalid EntryPoint.value (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed indentation logic to also honor blank lines.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.6.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#119650\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeferred import of zipfile.Path (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeferred import of json (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRely on zipp overlay for zipfile.Path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.4.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/708dff4f1ab89bdd126e3e8c56098d04282c5809\"\u003e\u003ccode\u003e708dff4\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b3065f03cc3395f46ed575e612e213f92a064879\"\u003e\u003ccode\u003eb3065f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/519\"\u003e#519\u003c/a\u003e from python/bugfix/493-metadata-missing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/e4351c226765f53a40316fa6aab50488aee8a90f\"\u003e\u003ccode\u003ee4351c2\u003c/code\u003e\u003c/a\u003e Add a new test capturing the new expectation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/5a657051f7386de6f0560c200d78e941be2c8058\"\u003e\u003ccode\u003e5a65705\u003c/code\u003e\u003c/a\u003e Refactor the casting into a wrapper for brevity and to document its purpose.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0830c39b8a23e48024365120c0e97a6f7c36c5ec\"\u003e\u003ccode\u003e0830c39\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/22bb567692d8e7bd216f864a9d8dee1272ee8674\"\u003e\u003ccode\u003e22bb567\u003c/code\u003e\u003c/a\u003e Fix type errors where metadata could be None.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/57f31d77e18fef11dfadfd44775f253971c36920\"\u003e\u003ccode\u003e57f31d7\u003c/code\u003e\u003c/a\u003e Allow metadata to return None when there is no metadata present.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b9c4be4253250ad604610db66204e5fa70fa2455\"\u003e\u003ccode\u003eb9c4be4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/518\"\u003e#518\u003c/a\u003e from python/bugfix/488-bad-ep-value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9f8af013635833cf3ac348413c9ac63b37caa3dd\"\u003e\u003ccode\u003e9f8af01\u003c/code\u003e\u003c/a\u003e Prefer a cached property, as the property is likely to be retrieved at least ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/f179e28888b2c6caf12baaf5449ff1cd82513dfe\"\u003e\u003ccode\u003ef179e28\u003c/code\u003e\u003c/a\u003e Also raise ValueError on construction if the value is invalid.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v6.8.0...v8.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `itsdangerous` from 2.1.2 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/releases\"\u003eitsdangerous's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003cp\u003eThis is a feature release, which includes new features, removes previously deprecated code, and adds new deprecations. The 2.2.x branch is now the supported fix branch, the 2.1.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003eChanges: \u003ca href=\"https://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\"\u003ehttps://itsdangerous.palletsprojects.com/en/2.2.x/changes/#version-2-2-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/itsdangerous/milestone/8?closed=1\"\u003ehttps://github.com/pallets/itsdangerous/milestone/8?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking. By default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a different \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return type of its \u003ccode\u003edumps\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/itsdangerous/blob/main/CHANGES.rst\"\u003eitsdangerous's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-16\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7. :pr:\u003ccode\u003e372\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e326\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;itsdangerous\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e371\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSerializer\u003c/code\u003e and the return type of \u003ccode\u003edumps\u003c/code\u003e is generic for type checking.\nBy default it is \u003ccode\u003eSerializer[str]\u003c/code\u003e and \u003ccode\u003edumps\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e. If a\ndifferent \u003ccode\u003eserializer\u003c/code\u003e argument is given, it will try to infer the return\ntype of its \u003ccode\u003edumps\u003c/code\u003e method. :issue:\u003ccode\u003e347\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e375\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/096c8d42545d3b68ea21a4f890fb2b2d8979c0bd\"\u003e\u003ccode\u003e096c8d4\u003c/code\u003e\u003c/a\u003e release version 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/7f4dcf83a07bb3d53f4e0e65ef1b43327b4cca90\"\u003e\u003ccode\u003e7f4dcf8\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/93ae366874bbd4f69d90495c45b2cd336387496c\"\u003e\u003ccode\u003e93ae366\u003c/code\u003e\u003c/a\u003e change entry for generic serializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/135eb234ed4a07520779ffb679407b7d27c8ffe6\"\u003e\u003ccode\u003e135eb23\u003c/code\u003e\u003c/a\u003e Generic serializer (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/999ce7af1f0502a224d33338e6ded8bc1e81cb2f\"\u003e\u003ccode\u003e999ce7a\u003c/code\u003e\u003c/a\u003e Improve generic typing further\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/52890d78bb6d92eac4d8d84f33f61be8bd803da7\"\u003e\u003ccode\u003e52890d7\u003c/code\u003e\u003c/a\u003e improve generic typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/385c0eb7501b121b1fddafe19c547073f5a458a0\"\u003e\u003ccode\u003e385c0eb\u003c/code\u003e\u003c/a\u003e type \u003ccode\u003eSerializer\u003c/code\u003e as generic (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/01001c63af4a1c58b65328b2aad3df75a6edc843\"\u003e\u003ccode\u003e01001c6\u003c/code\u003e\u003c/a\u003e type Serializer as generic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/bc88e945d31c407e16c3f4e1c713c12dd598e58d\"\u003e\u003ccode\u003ebc88e94\u003c/code\u003e\u003c/a\u003e improve typing (\u003ca href=\"https://redirect.github.com/pallets/itsdangerous/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/itsdangerous/commit/69a3bca7582859bc8ce83ccc28b0cf33f7909388\"\u003e\u003ccode\u003e69a3bca\u003c/code\u003e\u003c/a\u003e improve typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/itsdangerous/compare/2.1.2...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nest-asyncio` from 1.5.8 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/erdewit/nest_asyncio/releases\"\u003enest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev1.6.0\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/19f396f9396bfd34b1b0caeb9b4c631ee3d7eb21\"\u003e\u003ccode\u003e19f396f\u003c/code\u003e\u003c/a\u003e Remove redundant blank line.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c31e7c44f063819ea2d0738e3c72c25458d3fd1b\"\u003e\u003ccode\u003ec31e7c4\u003c/code\u003e\u003c/a\u003e Pre-empt current task before running handle, allowing unpatched tasks, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/80\"\u003e#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/35618de086e8844d24039d2fcd090b8f1647c743\"\u003e\u003ccode\u003e35618de\u003c/code\u003e\u003c/a\u003e v1.5.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c4b8289fe4f4a3192fd1d501e74df08fd93ed348\"\u003e\u003ccode\u003ec4b8289\u003c/code\u003e\u003c/a\u003e Fix patching an already running Proactor loop, fixes \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/87\"\u003e#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/d5a13b0d5f156ac9076fbc244f49fb9d48af9bbc\"\u003e\u003ccode\u003ed5a13b0\u003c/code\u003e\u003c/a\u003e Update link to build icon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/a48a68a47e182bd7e1f86c60dfc07d7b8509508b\"\u003e\u003ccode\u003ea48a68a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/erdewit/nest_asyncio/issues/84\"\u003e#84\u003c/a\u003e from 5j9/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/c20e77426bfb9be50d514a850bc4cabbbc69f114\"\u003e\u003ccode\u003ec20e774\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/erdewit/nest_asyncio/commit/f7ce59048cdaace5a1a82c78ef476c3bbb3b664a\"\u003e\u003ccode\u003ef7ce590\u003c/code\u003e\u003c/a\u003e v1.5.8\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/erdewit/nest_asyncio/compare/v1.5.8...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.8.0 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent partial matching of \u003ccode\u003eiss\u003c/code\u003e claim. Thanks \u003ca href=\"https://github.com/fabianbadoi\"\u003e\u003ccode\u003e@​fabianbadoi\u003c/code\u003e\u003c/a\u003e! (See: \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\"\u003ehttps://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: use sequence for typing rather than list by \u003ca href=\"https://github.com/imnotjames\"\u003e\u003ccode\u003e@​imnotjames\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/970\"\u003ejpadilla/pyjwt#970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/972\"\u003ejpadilla/pyjwt#972\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/971\"\u003ejpadilla/pyjwt#971\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an RTD config file to resolve RTD build failures by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/977\"\u003ejpadilla/pyjwt#977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update \u003ccode\u003eiat\u003c/code\u003e exception docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/974\"\u003ejpadilla/pyjwt#974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove algorithm requirement for JWT API by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/975\"\u003ejpadilla/pyjwt#975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/978\"\u003ejpadilla/pyjwt#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate SECURITY.md by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/973\"\u003ejpadilla/pyjwt#973\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs fix: decode_complete scope and algorithms by \u003ca href=\"https://github.com/RbnRncn\"\u003e\u003ccode\u003e@​RbnRncn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/982\"\u003ejpadilla/pyjwt#982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix doctest for docs/usage.rst by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/986\"\u003ejpadilla/pyjwt#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix test_utils.py not to xfail by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/987\"\u003ejpadilla/pyjwt#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect jwt.decode audience param doc expression by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/994\"\u003ejpadilla/pyjwt#994\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PS256 encoding and decoding usage by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/992\"\u003ejpadilla/pyjwt#992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd API docs for PyJWK by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/980\"\u003ejpadilla/pyjwt#980\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor project configuration files from setup.cfg to pyproject.toml PEP-518 by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/995\"\u003ejpadilla/pyjwt#995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd JWK support to JWT encode by \u003ca href=\"https://github.com/luhn\"\u003e\u003ccode\u003e@​luhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/979\"\u003ejpadilla/pyjwt#979\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit hooks to lint pyproject.toml by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1002\"\u003ejpadilla/pyjwt#1002\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd EdDSA algorithm encoding/decoding usage by \u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/993\"\u003ejpadilla/pyjwt#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRuff linter and formatter changes by \u003ca href=\"https://github.com/gagandeepp\"\u003e\u003ccode\u003e@​gagandeepp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1001\"\u003ejpadilla/pyjwt#1001\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate \u003ccode\u003esub\u003c/code\u003e and \u003ccode\u003ejti\u003c/code\u003e claims for the token by \u003ca href=\"https://github.com/Divan009\"\u003e\u003ccode\u003e@​Divan009\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1005\"\u003ejpadilla/pyjwt#1005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ES256 usage  by \u003ca href=\"https://github.com/Gautam-Hegde\"\u003e\u003ccode\u003e@​Gautam-Hegde\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1003\"\u003ejpadilla/pyjwt#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEncode EC keys with a fixed bit length by \u003ca href=\"https://github.com/way-dave\"\u003e\u003ccode\u003e@​way-dave\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/990\"\u003ejpadilla/pyjwt#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1000\"\u003ejpadilla/pyjwt#1000\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8 by \u003ca href=\"https://github.com/kkirsche\"\u003e\u003ccode\u003e@​kkirsche\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1007\"\u003ejpadilla/pyjwt#1007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare 2.10.0 release by \u003ca href=\"https://github.com/benvdh\"\u003e\u003ccode\u003e@​benvdh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1011\"\u003ejpadilla/pyjwt#1011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump codecov/codecov-action from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1014\"\u003ejpadilla/pyjwt#1014\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1006\"\u003ejpadilla/pyjwt#1006\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imnotjames\"\u003e\u003ccode\u003e@​imnotjames\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/970\"\u003ejpadilla/pyjwt#970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/977\"\u003ejpadilla/pyjwt#977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/974\"\u003ejpadilla/pyjwt#974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RbnRncn\"\u003e\u003ccode\u003e@​RbnRncn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/982\"\u003ejpadilla/pyjwt#982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/peter279k\"\u003e\u003ccode\u003e@​peter279k\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/994\"\u003ejpadilla/pyjwt#994\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/995\"\u003ejpadilla/pyjwt#995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gagandeepp\"\u003e\u003ccode\u003e@​gagandeepp\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1001\"\u003ejpadilla/pyjwt#1001\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Divan009\"\u003e\u003ccode\u003e@​Divan009\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1005\"\u003ejpadilla/pyjwt#1005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Gautam-Hegde\"\u003e\u003ccode\u003e@​Gautam-Hegde\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1003\"\u003ejpadilla/pyjwt#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/way-dave\"\u003e\u003ccode\u003e@​way-dave\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/990\"\u003ejpadilla/pyjwt#990\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.9.0...2.10.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.9.0...2.10.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.10.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Prevent partial ma...\n\n_Description has been truncated_","html_url":"https://github.com/asusoda/platform/pull/76","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asusoda%2Fplatform/issues/76","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/76/packages"}}]}