{"id":37693,"name":"respx","ecosystem":"pip","repository_url":"https://github.com/lundberg/respx","issues_count":45,"created_at":"2025-06-09T13:14:27.326Z","updated_at":"2025-06-09T13:14:27.326Z","purl":"pkg:pypi/respx","metadata":{"id":2902327,"name":"respx","ecosystem":"pypi","description":"A utility for mocking out the Python HTTPX and HTTP Core libraries.","homepage":"https://lundberg.github.io/respx/","licenses":"BSD-3-Clause","normalized_licenses":["BSD-3-Clause"],"repository_url":"https://github.com/lundberg/respx","keywords_array":["httpx","httpcore","mock","responses","requests","async","http"],"namespace":null,"versions_count":46,"first_release_published_at":"2019-11-16T11:08:24.000Z","latest_release_published_at":"2024-12-19T22:33:57.000Z","latest_release_number":"0.22.0","last_synced_at":"2025-06-09T03:01:42.056Z","created_at":"2022-04-10T12:28:12.742Z","updated_at":"2025-06-09T11:52:46.851Z","registry_url":"https://pypi.org/project/respx/","install_command":"pip install respx --index-url https://pypi.org/simple","documentation_url":"https://respx.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 5 - Production/Stable","Intended Audience :: Developers","License :: OSI Approved :: BSD License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9"],"normalized_name":"respx"},"repo_metadata":{"id":38864055,"uuid":"221497383","full_name":"lundberg/respx","owner":"lundberg","description":"Mock HTTPX with awesome request patterns and response side effects 🦋","archived":false,"fork":false,"pushed_at":"2025-04-15T04:08:43.000Z","size":1563,"stargazers_count":692,"open_issues_count":22,"forks_count":46,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-01T23:10:11.619Z","etag":null,"topics":["httpx","mock","pytest","testing"],"latest_commit_sha":null,"homepage":"https://lundberg.github.io/respx","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lundberg.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"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-11-13T15:57:09.000Z","updated_at":"2025-05-31T17:57:55.000Z","dependencies_parsed_at":"2024-03-18T17:28:28.360Z","dependency_job_id":"beba26d1-c07a-4b57-973a-7d39bb199e29","html_url":"https://github.com/lundberg/respx","commit_stats":{"total_commits":353,"total_committers":20,"mean_commits":17.65,"dds":0.09915014164305946,"last_synced_commit":"42930fc9d401c24476e159e9bed4181ea459cbc4"},"previous_names":[],"tags_count":47,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lundberg","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":258747607,"owners_count":22751137,"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":"lundberg","name":"Jonas Lundberg","uuid":"137268","kind":"user","description":"","email":"","website":null,"location":"Stockholm, Sweden","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/137268?v=4","repositories_count":4,"last_synced_at":"2023-04-05T14:00:24.638Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/lundberg","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-04T16:32:51.387Z","updated_at":"2023-04-05T14:00:24.650Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lundberg","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lundberg/repositories"},"tags":[{"name":"0.21.1","sha":"1f55faa934ed821cdc0f29186d28ad4614493673","kind":"commit","published_at":"2024-03-27T20:41:11.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.21.1","html_url":"https://github.com/lundberg/respx/releases/tag/0.21.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.21.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.21.1/manifests"},{"name":"0.21.0","sha":"15522db36d6a08f2c062831ec664df2b9d2e1f69","kind":"commit","published_at":"2024-03-19T16:19:59.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.21.0","html_url":"https://github.com/lundberg/respx/releases/tag/0.21.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.21.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.21.0/manifests"},{"name":"0.20.2","sha":"58ad17e9cee2ea81183a5855acbf4bf45dc9faa0","kind":"commit","published_at":"2023-07-20T22:41:35.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.20.2","html_url":"https://github.com/lundberg/respx/releases/tag/0.20.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.20.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.20.2/manifests"},{"name":"0.20.1","sha":"6f8d05fea8ff9524e488e3f4b3611d78507dab6e","kind":"commit","published_at":"2022-11-18T16:58:50.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.20.1","html_url":"https://github.com/lundberg/respx/releases/tag/0.20.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.20.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.20.1/manifests"},{"name":"0.20.0","sha":"8d9e14937fcb976edff5dbad5cb9d00a81f16a68","kind":"commit","published_at":"2022-09-16T09:27:02.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.20.0","html_url":"https://github.com/lundberg/respx/releases/tag/0.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.20.0/manifests"},{"name":"0.19.3","sha":"d5d70510189ceb3c04edbe862f77d760801e92c4","kind":"commit","published_at":"2022-09-14T09:58:54.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.19.3","html_url":"https://github.com/lundberg/respx/releases/tag/0.19.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.19.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.19.3/manifests"},{"name":"0.19.2","sha":"c76f632690cdfb2c878fe8fea999df0a26083eb3","kind":"commit","published_at":"2022-02-03T10:16:49.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.19.2","html_url":"https://github.com/lundberg/respx/releases/tag/0.19.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.19.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.19.2/manifests"},{"name":"0.19.1","sha":"61b749c5ce2c8a64adf4769a5160a5cca41c25a8","kind":"commit","published_at":"2022-01-10T10:07:41.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.19.1","html_url":"https://github.com/lundberg/respx/releases/tag/0.19.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.19.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.19.1/manifests"},{"name":"0.19.0","sha":"3981b5b4e3301bb6099bed8b45ecbdd8c5aec89f","kind":"commit","published_at":"2021-11-15T15:39:25.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.19.0","html_url":"https://github.com/lundberg/respx/releases/tag/0.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.19.0/manifests"},{"name":"0.18.2","sha":"97a9e2867c284e9fcc5b89ba2306f1902cb3baef","kind":"commit","published_at":"2021-10-22T07:23:22.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.18.2","html_url":"https://github.com/lundberg/respx/releases/tag/0.18.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.18.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.18.2/manifests"},{"name":"0.18.1","sha":"7eb84ec6aa7663b7641cb6f0c94f1c20fb963406","kind":"commit","published_at":"2021-10-20T16:24:45.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.18.1","html_url":"https://github.com/lundberg/respx/releases/tag/0.18.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.18.1/manifests"},{"name":"0.18.0","sha":"ab621805118d85a0f9a5778a34b9b810c1f04d7a","kind":"commit","published_at":"2021-10-14T13:31:46.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.18.0","html_url":"https://github.com/lundberg/respx/releases/tag/0.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.18.0/manifests"},{"name":"0.18.0b0","sha":"0b86d4185dd44baa17800d336644ed0b46cb9f8b","kind":"commit","published_at":"2021-09-15T08:20:33.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.18.0b0","html_url":"https://github.com/lundberg/respx/releases/tag/0.18.0b0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.18.0b0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.18.0b0/manifests"},{"name":"0.17.1","sha":"065242e5b1a17dbbe20d2951269a8e4c82b8bfae","kind":"commit","published_at":"2021-07-05T15:22:04.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.17.1","html_url":"https://github.com/lundberg/respx/releases/tag/0.17.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.17.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.17.1/manifests"},{"name":"0.17.0","sha":"9ba09c92685165f5473490aebeff5cfe95a7d3fc","kind":"commit","published_at":"2021-04-27T17:21:23.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.17.0","html_url":"https://github.com/lundberg/respx/releases/tag/0.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.17.0/manifests"},{"name":"0.16.3","sha":"13178e21b46db24eed4089be2bcc645a3d116da0","kind":"commit","published_at":"2020-12-14T15:42:39.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.16.3","html_url":"https://github.com/lundberg/respx/releases/tag/0.16.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.16.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.16.3/manifests"},{"name":"0.16.2","sha":"77e7bd82e22454908936e442409a488ff943cd2a","kind":"commit","published_at":"2020-11-26T16:07:55.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.16.2","html_url":"https://github.com/lundberg/respx/releases/tag/0.16.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.16.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.16.2/manifests"},{"name":"0.16.1","sha":"2307b3c63099689a4154d5be8ef5f260fd4baf27","kind":"commit","published_at":"2020-11-16T22:01:39.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.16.1","html_url":"https://github.com/lundberg/respx/releases/tag/0.16.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.16.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.16.1/manifests"},{"name":"0.16.0","sha":"51327dbda516dc30992d24ce4586e65bc6c403c3","kind":"commit","published_at":"2020-11-13T16:13:35.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.16.0","html_url":"https://github.com/lundberg/respx/releases/tag/0.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.16.0/manifests"},{"name":"0.15.1","sha":"75ffa45e059a5b6e282fe305264ef9b383e37551","kind":"commit","published_at":"2020-11-10T19:58:08.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.15.1","html_url":"https://github.com/lundberg/respx/releases/tag/0.15.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.15.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.15.1/manifests"},{"name":"0.15.0","sha":"85bb130bca1da5899f6cf33d0e0a6b3d927151b4","kind":"commit","published_at":"2020-11-09T06:38:32.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.15.0","html_url":"https://github.com/lundberg/respx/releases/tag/0.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.15.0/manifests"},{"name":"0.14.0","sha":"1c68e57eccd5a2ddb27ebe54cb34588fc11e2dc7","kind":"commit","published_at":"2020-10-15T08:37:22.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.14.0","html_url":"https://github.com/lundberg/respx/releases/tag/0.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.14.0/manifests"},{"name":"0.13.0","sha":"cecf61084b9668765803c0109a383c3dd44d678d","kind":"commit","published_at":"2020-09-30T15:16:14.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.13.0","html_url":"https://github.com/lundberg/respx/releases/tag/0.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.13.0/manifests"},{"name":"0.12.1","sha":"fc8a7c67a7e5e3c259697af8942f51bac95a3ff1","kind":"commit","published_at":"2020-08-21T14:01:06.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.12.1","html_url":"https://github.com/lundberg/respx/releases/tag/0.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.12.1/manifests"},{"name":"0.12.0","sha":"57a369d1a685a4134436197df49d3c40ec8949c0","kind":"commit","published_at":"2020-08-17T13:42:46.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.12.0","html_url":"https://github.com/lundberg/respx/releases/tag/0.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.12.0/manifests"},{"name":"0.11.3","sha":"cbe91018842b6c10eb2e4fc009087cb8f02bbec6","kind":"commit","published_at":"2020-08-13T11:33:08.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.11.3","html_url":"https://github.com/lundberg/respx/releases/tag/0.11.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.11.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.11.3/manifests"},{"name":"0.11.2","sha":"8e6774358090de320afaceb14f4135f5b23e1423","kind":"commit","published_at":"2020-06-25T19:52:00.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.11.2","html_url":"https://github.com/lundberg/respx/releases/tag/0.11.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.11.2/manifests"},{"name":"0.11.1","sha":"e4994013259bcf1b44aa202f55d0449198e312f0","kind":"commit","published_at":"2020-06-01T10:38:20.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.11.1","html_url":"https://github.com/lundberg/respx/releases/tag/0.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.11.1/manifests"},{"name":"0.11.0","sha":"31e5e5fe8afcee660d6e4724921ffc6f58f4d78c","kind":"commit","published_at":"2020-05-29T16:29:41.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.11.0","html_url":"https://github.com/lundberg/respx/releases/tag/0.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.11.0/manifests"},{"name":"0.10.1","sha":"c62fdc9949955936bf050efad9a2ddca636f2e44","kind":"commit","published_at":"2020-03-11T11:13:51.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.10.1","html_url":"https://github.com/lundberg/respx/releases/tag/0.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.10.1/manifests"},{"name":"0.10.0","sha":"f440340894d684bee3cd80289af3a26f7aa8e1a3","kind":"commit","published_at":"2020-01-30T09:55:13.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.10.0","html_url":"https://github.com/lundberg/respx/releases/tag/0.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.10.0/manifests"},{"name":"0.9.0","sha":"d5f58eb934dde012a709c4300c8dd86c0c99edc8","kind":"commit","published_at":"2020-01-22T10:28:01.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.9.0","html_url":"https://github.com/lundberg/respx/releases/tag/0.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.9.0/manifests"},{"name":"0.8.3","sha":"4c03eee0698e4c0b9ff80c0d6f2df8cf0a2d5ab8","kind":"commit","published_at":"2020-01-10T12:49:07.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.8.3","html_url":"https://github.com/lundberg/respx/releases/tag/0.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.8.3/manifests"},{"name":"0.8.1","sha":"743974d7cabfd8d7d79f4b1beb7281d037cc9c3d","kind":"commit","published_at":"2019-12-09T08:31:10.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.8.1","html_url":"https://github.com/lundberg/respx/releases/tag/0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.8.1/manifests"},{"name":"0.8","sha":"ac32f3c62f6e30bee266c24c4ec774999e5f5ad0","kind":"commit","published_at":"2019-11-27T15:18:20.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.8","html_url":"https://github.com/lundberg/respx/releases/tag/0.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.8/manifests"},{"name":"0.7.4","sha":"63b039309462d64bfca895a9cbf3cf45e9acb9de","kind":"commit","published_at":"2019-11-24T11:49:39.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.7.4","html_url":"https://github.com/lundberg/respx/releases/tag/0.7.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.7.4/manifests"},{"name":"0.7.3","sha":"4d1b0f054bc7301ff0a93e3defe47cbb9c01e664","kind":"commit","published_at":"2019-11-21T15:26:46.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.7.3","html_url":"https://github.com/lundberg/respx/releases/tag/0.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.7.3/manifests"},{"name":"0.7.2","sha":"94e57c3faca77010dd0cb793b4b61416a106d727","kind":"commit","published_at":"2019-11-21T11:09:51.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.7.2","html_url":"https://github.com/lundberg/respx/releases/tag/0.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.7.2/manifests"},{"name":"0.7.1","sha":"64898c33a1eb9061a2ab41206a3749c1d400793d","kind":"commit","published_at":"2019-11-20T18:28:27.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.7.1","html_url":"https://github.com/lundberg/respx/releases/tag/0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.7.1/manifests"},{"name":"0.7","sha":"cad93496daff21df27de1e4f74eadf0ed8b218ce","kind":"commit","published_at":"2019-11-19T22:01:51.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.7","html_url":"https://github.com/lundberg/respx/releases/tag/0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.7/manifests"},{"name":"0.6","sha":"05747d93cdac6c9c91e909f63c95bd56410da15b","kind":"commit","published_at":"2019-11-18T15:19:00.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.6","html_url":"https://github.com/lundberg/respx/releases/tag/0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.6/manifests"},{"name":"0.5","sha":"1227ab8cb2fa0ca67a4cd65b2d63fac73df0973d","kind":"commit","published_at":"2019-11-18T07:42:21.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.5","html_url":"https://github.com/lundberg/respx/releases/tag/0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.5/manifests"},{"name":"0.4","sha":"3d50d73888a816d39d6806273085589869543a49","kind":"commit","published_at":"2019-11-16T12:40:11.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.4","html_url":"https://github.com/lundberg/respx/releases/tag/0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.4/manifests"},{"name":"0.3.1","sha":"db18b7f4c890cb928a5a1ce095314a59ced4c93c","kind":"commit","published_at":"2019-11-16T11:08:14.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.3.1","html_url":"https://github.com/lundberg/respx/releases/tag/0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.3.1/manifests"},{"name":"0.3","sha":"65f640c6ef8902d0928ce542db26292d1a21205f","kind":"commit","published_at":"2019-11-15T16:21:43.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.3","html_url":"https://github.com/lundberg/respx/releases/tag/0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.3/manifests"},{"name":"0.2","sha":"9a350a5a50672b4ef55f2b7a2f218c9d5d30ed3f","kind":"commit","published_at":"2019-11-14T10:03:03.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.2","html_url":"https://github.com/lundberg/respx/releases/tag/0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.2/manifests"},{"name":"0.1","sha":"ea9ef0c13470e6ca861e312a29297c7be3c52bda","kind":"commit","published_at":"2019-11-13T17:48:50.000Z","download_url":"https://codeload.github.com/lundberg/respx/tar.gz/0.1","html_url":"https://github.com/lundberg/respx/releases/tag/0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lundberg%2Frespx/tags/0.1/manifests"}]},"repo_metadata_updated_at":"2025-06-09T11:52:46.851Z","dependent_packages_count":93,"downloads":2231296,"downloads_period":"last-month","dependent_repos_count":777,"rankings":{"downloads":0.46225873467769146,"dependent_repos_count":0.43067206158097304,"dependent_packages_count":0.24494903638904458,"stargazers_count":2.7891385967300573,"forks_count":6.441334080452059,"docker_downloads_count":0.26645613342544167,"average":1.7724681072092112},"purl":"pkg:pypi/respx","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/respx","docker_dependents_count":69,"docker_downloads_count":755282178,"usage_url":"https://repos.ecosyste.ms/usage/pypi/respx","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/respx/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/respx/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/respx/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/respx/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/respx/related_packages","maintainers":[{"uuid":"5monkeys","login":"5monkeys","name":null,"email":null,"url":null,"packages_count":14,"html_url":"https://pypi.org/user/5monkeys/","role":null,"created_at":"2023-02-25T08:34:18.065Z","updated_at":"2023-02-25T08:34:18.065Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/5monkeys/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":691253,"maintainers_count":293209,"namespaces_count":0,"keywords_count":228922,"github":"pypi","metadata":{"funded_packages_count":48987},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-09T06:55:20.705Z","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":40,"unique_repositories_count_past_30_days":6,"recent_issues":[{"uuid":"4691254149","node_id":"PR_kwDOS-MBEM7n4eDg","number":5,"state":"open","title":"deps: Update respx requirement from \u003e=0.21 to \u003e=0.23.1","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-06-18T09:57:14.000Z","updated_at":"2026-06-18T09:57:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: Update","packages":[{"name":"respx","old_version":"\u003e=0.21","new_version":"\u003e=0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [respx](https://github.com/lundberg/respx) 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/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.21.1] - 2024-03-27\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efiles\u003c/code\u003e pattern not handling \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eBytesIO\u003c/code\u003e, thanks \u003ca href=\"https://github.com/pierremonico\"\u003e\u003ccode\u003e@​pierremonico\u003c/code\u003e\u003c/a\u003e for input\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.21.0...0.23.1\"\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/Olaw2jr/gns3-mcp/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olaw2jr%2Fgns3-mcp/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"},{"uuid":"4637862168","node_id":"PR_kwDOS18aos7lL2_V","number":11,"state":"closed","title":"chore(deps-dev): update respx requirement from \u003c1,\u003e=0.21 to \u003e=0.23.1,\u003c1","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-13T03:16:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-11T06:36:38.000Z","updated_at":"2026-06-13T03:17:04.000Z","time_to_close":160818,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): update","packages":[{"name":"respx","old_version":"\u003c1,\u003e=0.21","new_version":"\u003e=0.23.1,\u003c1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [respx](https://github.com/lundberg/respx) 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/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.21.1] - 2024-03-27\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efiles\u003c/code\u003e pattern not handling \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eBytesIO\u003c/code\u003e, thanks \u003ca href=\"https://github.com/pierremonico\"\u003e\u003ccode\u003e@​pierremonico\u003c/code\u003e\u003c/a\u003e for input\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.21.0...0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/MaddogWarner/adguard-sync-mdw/pull/11","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaddogWarner%2Fadguard-sync-mdw/issues/11","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/11/packages"},{"uuid":"4614965747","node_id":"PR_kwDOS0UxLc7kAn8N","number":12,"state":"closed","title":"Bump the python-dev-deps group across 1 directory with 10 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-09T03:43:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-08T17:08:19.000Z","updated_at":"2026-06-09T03:45:17.000Z","time_to_close":38137,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-dev-deps","update_count":10,"packages":[{"name":"uvicorn","old_version":"0.30.6","new_version":"0.49.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydantic","old_version":"2.8.2","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"tree-sitter","old_version":"0.23.0","new_version":"0.25.2","repository_url":"https://github.com/tree-sitter/py-tree-sitter"},{"name":"tree-sitter-python","old_version":"0.23.2","new_version":"0.25.0","repository_url":"https://github.com/tree-sitter/tree-sitter-python"},{"name":"tree-sitter-typescript","old_version":"0.23.0","new_version":"0.23.2","repository_url":"https://github.com/tree-sitter/tree-sitter-typescript"},{"name":"ruff","old_version":"0.5.5","new_version":"0.15.16","repository_url":"https://github.com/astral-sh/ruff"},{"name":"respx","old_version":"0.21.1","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"},{"name":"bandit","old_version":"1.7.9","new_version":"1.9.4","repository_url":"https://github.com/PyCQA/bandit"},{"name":"pip-audit","old_version":"2.7.3","new_version":"2.10.0","repository_url":"https://github.com/pypa/pip-audit"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dev-deps group with 10 updates in the /server directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.30.6` | `0.49.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.8.2` | `2.13.4` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [tree-sitter](https://github.com/tree-sitter/py-tree-sitter) | `0.23.0` | `0.25.2` |\n| [tree-sitter-python](https://github.com/tree-sitter/tree-sitter-python) | `0.23.2` | `0.25.0` |\n| [tree-sitter-typescript](https://github.com/tree-sitter/tree-sitter-typescript) | `0.23.0` | `0.23.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.5.5` | `0.15.16` |\n| [respx](https://github.com/lundberg/respx) | `0.21.1` | `0.23.1` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.7.9` | `1.9.4` |\n| [pip-audit](https://github.com/pypa/pip-audit) | `2.7.3` | `2.10.0` |\n\n\nUpdates `uvicorn` from 0.30.6 to 0.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump httptools minimum version to 0.8.0 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2962\"\u003eKludex/uvicorn#2962\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConsume duplicate forwarding headers in ProxyHeadersMiddleware (reverses the 0.48.0 behavior of ignoring them) by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2971\"\u003eKludex/uvicorn#2971\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.48.0...0.49.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.48.0...0.49.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2940\"\u003eKludex/uvicorn#2940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2944\"\u003eKludex/uvicorn#2944\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.47.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEagerly import the ASGI app in the parent process by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2919\"\u003eKludex/uvicorn#2919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003essl_context_factory\u003c/code\u003e for custom \u003ccode\u003eSSLContext\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2920\"\u003eKludex/uvicorn#2920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003efd=0\u003c/code\u003e as a valid file descriptor with reload/workers by \u003ca href=\"https://github.com/eltoder\"\u003e\u003ccode\u003e@​eltoder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2927\"\u003eKludex/uvicorn#2927\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.46.0...0.47.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.46.0...0.47.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.46.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2915\"\u003eKludex/uvicorn#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2916\"\u003eKludex/uvicorn#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2917\"\u003eKludex/uvicorn#2917\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.45.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2903\"\u003eKludex/uvicorn#2903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2905\"\u003eKludex/uvicorn#2905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2907\"\u003eKludex/uvicorn#2907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2906\"\u003eKludex/uvicorn#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert empty context for ASGI runs by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2911\"\u003eKludex/uvicorn#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2912\"\u003eKludex/uvicorn#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e) by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2913\"\u003eKludex/uvicorn#2913\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/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2870\"\u003eKludex/uvicorn#2870\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.44.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2888\"\u003eKludex/uvicorn#2888\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/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.49.0 (June 3, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump \u003ccode\u003ehttptools\u003c/code\u003e minimum version to 0.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2962\"\u003e#2962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConsume duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (reverses the 0.48.0 behavior of ignoring them) (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2971\"\u003e#2971\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.48.0 (May 24, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.47.0 (May 14, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003essl_context_factory\u003c/code\u003e for custom \u003ccode\u003eSSLContext\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2920\"\u003e#2920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEagerly import the ASGI app in the parent process (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTreat \u003ccode\u003efd=0\u003c/code\u003e as a valid file descriptor with reload/workers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2927\"\u003e#2927\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.46.0 (April 23, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2916\"\u003e#2916\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2917\"\u003e#2917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.45.0 (April 21, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\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/Kludex/uvicorn/commit/3ef2e3e08e3d9ad9572800f8bc54f3eaed9eab0a\"\u003e\u003ccode\u003e3ef2e3e\u003c/code\u003e\u003c/a\u003e Version 0.49.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2973\"\u003e#2973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/eeb64b1d1c95a14096ed3313377c74b485f558fc\"\u003e\u003ccode\u003eeeb64b1\u003c/code\u003e\u003c/a\u003e Consume duplicate forwarding headers in ProxyHeadersMiddleware (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2971\"\u003e#2971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/630f4aca14e79183617c71be714030842a1041c5\"\u003e\u003ccode\u003e630f4ac\u003c/code\u003e\u003c/a\u003e Make the watchfiles reload tests deterministic (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2972\"\u003e#2972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9154922e3730f7aba68ecc3ecbf536680ee8fd1c\"\u003e\u003ccode\u003e9154922\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group across 1 directory with 6 updates ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/739727a1d80e468d1e47e98bbd824ee9e3c9554b\"\u003e\u003ccode\u003e739727a\u003c/code\u003e\u003c/a\u003e Migrate docs deploy from Cloudflare Pages to Workers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2967\"\u003e#2967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/be4a240488d3fb678a11b8e8f83505266f5f1de7\"\u003e\u003ccode\u003ebe4a240\u003c/code\u003e\u003c/a\u003e Gate docs preview deploy on Cloudflare token presence (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2966\"\u003e#2966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/c489d7e10dfe653a2bba914feedf2a632a026e6f\"\u003e\u003ccode\u003ec489d7e\u003c/code\u003e\u003c/a\u003e Bump httptools minimum version to 0.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2962\"\u003e#2962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9f547bd82ef52bcba206e04170b359bd6daa25b3\"\u003e\u003ccode\u003e9f547bd\u003c/code\u003e\u003c/a\u003e Skip docs preview deploy for Dependabot PRs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/44446b894e37ca76830d6aa83df4349795400ed4\"\u003e\u003ccode\u003e44446b8\u003c/code\u003e\u003c/a\u003e Migrate documentation from MkDocs Material to Zensical (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cfd659c4f18b526adce9c255c96707bab20af40c\"\u003e\u003ccode\u003ecfd659c\u003c/code\u003e\u003c/a\u003e Bump pymdown-extensions to 10.21.3 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2958\"\u003e#2958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.30.6...0.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.8.2 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.8.2...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `httpx` from 0.27.2 to 0.28.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/httpx/releases\"\u003ehttpx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.28.1\u003c/h2\u003e\n\u003ch2\u003e0.28.1 (6th December, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL case where \u003ccode\u003everify=False\u003c/code\u003e together with client side certificates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.28.0\u003c/h2\u003e\n\u003ch2\u003e0.28.0 (28th November, 2024)\u003c/h2\u003e\n\u003cp\u003eThe 0.28 release includes a limited set of deprecations.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003eWe are working towards a simplified SSL configuration API.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFor users of the standard \u003ccode\u003everify=True\u003c/code\u003e or \u003ccode\u003everify=False\u003c/code\u003e cases, or \u003ccode\u003everify=\u0026lt;ssl_context\u0026gt;\u003c/code\u003e case this should require no changes. The following cases have been deprecated...\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003everify\u003c/code\u003e argument as a string argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ecert\u003c/code\u003e argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOur revised \u003ca href=\"https://github.com/encode/httpx/blob/HEAD/docs/advanced/ssl.md\"\u003eSSL documentation\u003c/a\u003e covers how to implement the same behaviour with a more constrained API.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe following changes are also included\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eproxies\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eapp\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eJSON request bodies use a compact representation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReview URL percent escape sets, based on WHATWG spec. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3371\"\u003e#3371\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/encode/httpx/issues/3373\"\u003e#3373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ecertifi\u003c/code\u003e and \u003ccode\u003ehttpcore\u003c/code\u003e are only imported if required. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003esocks5h\u003c/code\u003e as a valid proxy scheme. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3178\"\u003e#3178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCleanup \u003ccode\u003eRequest()\u003c/code\u003e method signature in line with \u003ccode\u003eclient.request()\u003c/code\u003e and \u003ccode\u003ehttpx.request()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: When passing \u003ccode\u003eparams={}\u003c/code\u003e, always strictly update rather than merge with an existing querystring. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\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/encode/httpx/blob/master/CHANGELOG.md\"\u003ehttpx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.28.1 (6th December, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL case where \u003ccode\u003everify=False\u003c/code\u003e together with client side certificates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.28.0 (28th November, 2024)\u003c/h2\u003e\n\u003cp\u003eBe aware that the default \u003cem\u003eJSON request bodies now use a more compact representation\u003c/em\u003e. This is generally considered a prefered style, tho may require updates to test suites.\u003c/p\u003e\n\u003cp\u003eThe 0.28 release includes a limited set of deprecations...\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003eWe are working towards a simplified SSL configuration API.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFor users of the standard \u003ccode\u003everify=True\u003c/code\u003e or \u003ccode\u003everify=False\u003c/code\u003e cases, or \u003ccode\u003everify=\u0026lt;ssl_context\u0026gt;\u003c/code\u003e case this should require no changes. The following cases have been deprecated...\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003everify\u003c/code\u003e argument as a string argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ecert\u003c/code\u003e argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOur revised \u003ca href=\"https://github.com/encode/httpx/blob/master/docs/advanced/ssl.md\"\u003eSSL documentation\u003c/a\u003e covers how to implement the same behaviour with a more constrained API.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe following changes are also included\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eproxies\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eapp\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eJSON request bodies use a compact representation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReview URL percent escape sets, based on WHATWG spec. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3371\"\u003e#3371\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/encode/httpx/issues/3373\"\u003e#3373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ecertifi\u003c/code\u003e and \u003ccode\u003ehttpcore\u003c/code\u003e are only imported if required. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003esocks5h\u003c/code\u003e as a valid proxy scheme. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3178\"\u003e#3178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCleanup \u003ccode\u003eRequest()\u003c/code\u003e method signature in line with \u003ccode\u003eclient.request()\u003c/code\u003e and \u003ccode\u003ehttpx.request()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: When passing \u003ccode\u003eparams={}\u003c/code\u003e, always strictly update rather than merge with an existing querystring. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\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/encode/httpx/commit/26d48e0634e6ee9cdc0533996db289ce4b430177\"\u003e\u003ccode\u003e26d48e0\u003c/code\u003e\u003c/a\u003e Version 0.28.1 (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3445\"\u003e#3445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/89599a9541af14bcf906fc4ed58ccbdf403802ba\"\u003e\u003ccode\u003e89599a9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003everify=False\u003c/code\u003e, \u003ccode\u003ecert=...\u003c/code\u003e case. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3442\"\u003e#3442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/8ecb86f0d74ffc52d4663214fae9526bee89358d\"\u003e\u003ccode\u003e8ecb86f\u003c/code\u003e\u003c/a\u003e Add test for request params behavior changes (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3440\"\u003e#3440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/0cb7e5a2e736628e2f506d259fcf0d48cd2bde82\"\u003e\u003ccode\u003e0cb7e5a\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 11 updates (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3434\"\u003e#3434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/15e21e9ea3cad4f06e22a7e704aabefdf43d2e29\"\u003e\u003ccode\u003e15e21e9\u003c/code\u003e\u003c/a\u003e Updating deprecated docstring Client() class (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3426\"\u003e#3426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/80960fa31918d7663c3f4c3ad61661cf0e80628f\"\u003e\u003ccode\u003e80960fa\u003c/code\u003e\u003c/a\u003e Version 0.28.0. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3419\"\u003e#3419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/a33c87852b8a0dddc65e5f739af1e0a6fca4b91f\"\u003e\u003ccode\u003ea33c878\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eextensions\u003c/code\u003e type annotation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3380\"\u003e#3380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/ce7e14da27abba6574be9b3ea7cd5990556a9343\"\u003e\u003ccode\u003ece7e14d\u003c/code\u003e\u003c/a\u003e Error on verify as str. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3418\"\u003e#3418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/47f4a96ffaaaa07dca1614409549b5d7a6e7af49\"\u003e\u003ccode\u003e47f4a96\u003c/code\u003e\u003c/a\u003e Handle empty zstd responses (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3412\"\u003e#3412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/189fc4bcbe5f314128775dec66a616ac9a31ad48\"\u003e\u003ccode\u003e189fc4b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md, fix typo(s) (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/httpx/compare/0.27.2...0.28.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tree-sitter` from 0.23.0 to 0.25.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/releases\"\u003etree-sitter's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: bump actions/download-artifact from 4 to 5 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/401\"\u003etree-sitter/py-tree-sitter#401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: bump actions/checkout from 4 to 5 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/403\"\u003etree-sitter/py-tree-sitter#403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: bump tree_sitter/core from \u003ccode\u003e3624198\u003c/code\u003e to \u003ccode\u003e629093d\u003c/code\u003e by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/405\"\u003etree-sitter/py-tree-sitter#405\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: properly detect MSVC compiler by \u003ca href=\"https://github.com/tree-sitter-ci-bot\"\u003e\u003ccode\u003e@​tree-sitter-ci-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/407\"\u003etree-sitter/py-tree-sitter#407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: bump actions/upload-pages-artifact from 3 to 4 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/404\"\u003etree-sitter/py-tree-sitter#404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: bump actions/setup-python from 5 to 6 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/411\"\u003etree-sitter/py-tree-sitter#411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: bump tree_sitter/core from \u003ccode\u003e629093d\u003c/code\u003e to \u003ccode\u003ea467ea8\u003c/code\u003e by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/412\"\u003etree-sitter/py-tree-sitter#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(parser): fix memleak of source_view by \u003ca href=\"https://github.com/tree-sitter-ci-bot\"\u003e\u003ccode\u003e@​tree-sitter-ci-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/416\"\u003etree-sitter/py-tree-sitter#416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: bump tree_sitter/core from \u003ccode\u003ea467ea8\u003c/code\u003e to \u003ccode\u003eda6fe9b\u003c/code\u003e by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/417\"\u003etree-sitter/py-tree-sitter#417\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/compare/v0.25.1...v0.25.2\"\u003ehttps://github.com/tree-sitter/py-tree-sitter/compare/v0.25.1...v0.25.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.25.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(docs): QueryCursor page was missing from index by \u003ca href=\"https://github.com/MisakaVan\"\u003e\u003ccode\u003e@​MisakaVan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/385\"\u003etree-sitter/py-tree-sitter#385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: pattern_index parameter to generic predicates is incorrect by \u003ca href=\"https://github.com/davidt\"\u003e\u003ccode\u003e@​davidt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/388\"\u003etree-sitter/py-tree-sitter#388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(readme): update query usage examples by \u003ca href=\"https://github.com/TomJGooding\"\u003e\u003ccode\u003e@​TomJGooding\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/390\"\u003etree-sitter/py-tree-sitter#390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(query_cursor): fix missing space in hint by \u003ca href=\"https://github.com/TomJGooding\"\u003e\u003ccode\u003e@​TomJGooding\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/391\"\u003etree-sitter/py-tree-sitter#391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: bump pypa/cibuildwheel from 3.0 to 3.1 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/392\"\u003etree-sitter/py-tree-sitter#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: work around GCC optimizer bug for aarch64 by \u003ca href=\"https://github.com/tree-sitter-ci-bot\"\u003e\u003ccode\u003e@​tree-sitter-ci-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/393\"\u003etree-sitter/py-tree-sitter#393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: bump tree_sitter/core from \u003ccode\u003e58edb3a\u003c/code\u003e to \u003ccode\u003e3624198\u003c/code\u003e by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/397\"\u003etree-sitter/py-tree-sitter#397\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release 0.25.1 by \u003ca href=\"https://github.com/tree-sitter-ci-bot\"\u003e\u003ccode\u003e@​tree-sitter-ci-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/398\"\u003etree-sitter/py-tree-sitter#398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(pypi): disable free-threaded builds by \u003ca href=\"https://github.com/tree-sitter-ci-bot\"\u003e\u003ccode\u003e@​tree-sitter-ci-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/399\"\u003etree-sitter/py-tree-sitter#399\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/MisakaVan\"\u003e\u003ccode\u003e@​MisakaVan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/385\"\u003etree-sitter/py-tree-sitter#385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidt\"\u003e\u003ccode\u003e@​davidt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/388\"\u003etree-sitter/py-tree-sitter#388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TomJGooding\"\u003e\u003ccode\u003e@​TomJGooding\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/390\"\u003etree-sitter/py-tree-sitter#390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter-ci-bot\"\u003e\u003ccode\u003e@​tree-sitter-ci-bot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/393\"\u003etree-sitter/py-tree-sitter#393\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/compare/v0.25.0...v0.25.1\"\u003ehttps://github.com/tree-sitter/py-tree-sitter/compare/v0.25.0...v0.25.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003cp\u003eBreaking changes are marked with \u003cstrong\u003e!\u003c/strong\u003e.\u003c/p\u003e\n\u003ch3\u003eAdditions:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eLanguage.name\u003c/code\u003e \u003cem\u003e(getter)\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eLanguage.abi_version\u003c/code\u003e \u003cem\u003e(getter)\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eLanguage.semantic_version\u003c/code\u003e \u003cem\u003e(getter)\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eLanguage.supertypes\u003c/code\u003e \u003cem\u003e(getter)\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eLanguage.subtypes(supertype)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eNode.first_child_for_byte(byte)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eNode.first_named_child_for_byte(byte)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eQuery.string_count\u003c/code\u003e \u003cem\u003e(getter)\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eQuery.capture_name(index)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eQuery.capture_quantifier(pattern_index, capture_index)\u003c/code\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/tree-sitter/py-tree-sitter/commit/e2a5b21449c30c6a4fb49a55567a4699c3271f10\"\u003e\u003ccode\u003ee2a5b21\u003c/code\u003e\u003c/a\u003e chore: release 0.25.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/commit/bddf8addf994b8029223e45f9f10b583dc700f2e\"\u003e\u003ccode\u003ebddf8ad\u003c/code\u003e\u003c/a\u003e build: bump tree_sitter/core from \u003ccode\u003ea467ea8\u003c/code\u003e to \u003ccode\u003eda6fe9b\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/commit/2a94c018de52dc5e107e12ea15bd02c1af67b44e\"\u003e\u003ccode\u003e2a94c01\u003c/code\u003e\u003c/a\u003e fix(parser): fix memleak of source_view\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/commit/10ff18df42c524a088d0f540c14e595853ffc105\"\u003e\u003ccode\u003e10ff18d\u003c/code\u003e\u003c/a\u003e build: bump tree_sitter/core from \u003ccode\u003e629093d\u003c/code\u003e to \u003ccode\u003ea467ea8\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/commit/8452c1bc047af6e03c83260824019b26c3bf52b1\"\u003e\u003ccode\u003e8452c1b\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-python from 5 to 6 in the actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/commit/d2d8789c7904cd10efcdc02bc9b8046a71fb26c1\"\u003e\u003ccode\u003ed2d8789\u003c/code\u003e\u003c/a\u003e ci: bump actions/upload-pages-artifact from 3 to 4 in the actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/commit/d36bde57f944a241b4ad164e47143503cf5a68ea\"\u003e\u003ccode\u003ed36bde5\u003c/code\u003e\u003c/a\u003e build: properly detect MSVC compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/commit/ec0eab3540c06412e87ec134c597906b86ffa6e5\"\u003e\u003ccode\u003eec0eab3\u003c/code\u003e\u003c/a\u003e build: bump tree_sitter/core from \u003ccode\u003e3624198\u003c/code\u003e to \u003ccode\u003e629093d\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/commit/5bae23014238bb03ad46b1bfce5cd211693eaf85\"\u003e\u003ccode\u003e5bae230\u003c/code\u003e\u003c/a\u003e ci: bump actions/checkout from 4 to 5 in the actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/commit/794a34f1c2979b226252c79bb03d3f28d3384508\"\u003e\u003ccode\u003e794a34f\u003c/code\u003e\u003c/a\u003e ci: bump actions/download-artifact from 4 to 5 in the actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/compare/v0.23.0...v0.25.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tree-sitter-python` from 0.23.2 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/releases\"\u003etree-sitter-python's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-python.tar.gz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003ch2\u003ev0.23.6\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-python.tar.xz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003ch2\u003ev0.23.5\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-python.tar.xz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003ch2\u003ev0.23.4\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-python.tar.xz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003ch2\u003ev0.23.3\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-python.tar.xz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\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/tree-sitter/tree-sitter-python/commit/293fdc02038ee2bf0e2e206711b69c90ac0d413f\"\u003e\u003ccode\u003e293fdc0\u003c/code\u003e\u003c/a\u003e 0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/commit/34a91a25148ef5665d061eb7b17da71f4dba5be5\"\u003e\u003ccode\u003e34a91a2\u003c/code\u003e\u003c/a\u003e chore: generate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/commit/8ad8a51712c3f42feef039f9c358b59e035845c0\"\u003e\u003ccode\u003e8ad8a51\u003c/code\u003e\u003c/a\u003e ci: update failing files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/commit/a0b84ed4d2fcafdf5c4c28b88875b16ac7d668d6\"\u003e\u003ccode\u003ea0b84ed\u003c/code\u003e\u003c/a\u003e test: update tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/commit/1b1ca93298f0a67987abbda88a861d65da28cdb4\"\u003e\u003ccode\u003e1b1ca93\u003c/code\u003e\u003c/a\u003e fix: give a higher lexical precedence to the \u003ccode\u003e*\u003c/code\u003e in \u003ccode\u003eexcept*\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/commit/a4c106f37ade66eb0d184935d7e897c672635b1a\"\u003e\u003ccode\u003ea4c106f\u003c/code\u003e\u003c/a\u003e feat: allow multiple exception expressions without parenthesis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/commit/29e3bc2baf6b16eac59c3b54e81ace4ca123e04f\"\u003e\u003ccode\u003e29e3bc2\u003c/code\u003e\u003c/a\u003e refactor!: simplify exceptions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/commit/d8f9e696415c1c549909f6d24c6796d9e1b55c1b\"\u003e\u003ccode\u003ed8f9e69\u003c/code\u003e\u003c/a\u003e feat: add PEP 750 template string support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/commit/7ff26dacd720393d3cfeda14351f168a79146a33\"\u003e\u003ccode\u003e7ff26da\u003c/code\u003e\u003c/a\u003e feat: simplify try statement by accepting missing else/except/finally blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/commit/afdba005d0bfba9951dc336939bbc0ab67ac9df1\"\u003e\u003ccode\u003eafdba00\u003c/code\u003e\u003c/a\u003e build: update bindings\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/compare/v0.23.2...v0.25.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tree-sitter-typescript` from 0.23.0 to 0.23.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/releases\"\u003etree-sitter-typescript's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.23.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-typescript.tar.xz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-typescript.tar.xz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\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/tree-sitter/tree-sitter-typescript/commit/f975a621f4e7f532fe322e13c4f79495e0a7b2e7\"\u003e\u003ccode\u003ef975a62\u003c/code\u003e\u003c/a\u003e 0.23.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/commit/61e2a7730c8163ca4109f393a6285c9dc1721016\"\u003e\u003ccode\u003e61e2a77\u003c/code\u003e\u003c/a\u003e 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/commit/7bfe051cb1364c735a10bd82c9768df94fe16992\"\u003e\u003ccode\u003e7bfe051\u003c/code\u003e\u003c/a\u003e fix(rust): don't fetch files from node_modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/commit/aa6c28ffda6179d74ce7f120b6c90a1970164d06\"\u003e\u003ccode\u003eaa6c28f\u003c/code\u003e\u003c/a\u003e fix: remove glimmer tags\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/commit/9230875b05158461ae83001065252d2450efc7e0\"\u003e\u003ccode\u003e9230875\u003c/code\u003e\u003c/a\u003e build: move tree-sitter-javascript to \u003ccode\u003edependencies\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/commit/14af1670c16cab8422d2a504dc4e5961293934e3\"\u003e\u003ccode\u003e14af167\u003c/code\u003e\u003c/a\u003e chore: regenerate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/commit/31725c1c2e0e1e9cae46b06d5db8744c06840675\"\u003e\u003ccode\u003e31725c1\u003c/code\u003e\u003c/a\u003e build: update bindings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/commit/89e04209c9fa699bfeda532c214c6cd165e43ea5\"\u003e\u003ccode\u003e89e0420\u003c/code\u003e\u003c/a\u003e feat(node): support single-file executables via \u003ccode\u003ebun build --compile\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/commit/73c4447796b251295b498227bad028d88dc1918b\"\u003e\u003ccode\u003e73c4447\u003c/code\u003e\u003c/a\u003e chore: regenerate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/commit/18bb23acd962f0d96126dcfc165271873c355c04\"\u003e\u003ccode\u003e18bb23a\u003c/code\u003e\u003c/a\u003e build: update bindings\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/compare/v0.23.0...v0.23.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.5.5 to 0.15.16\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.16\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (\u003ccode\u003eASYNC119\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24644\"\u003e#24644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Narrow diagnostic range and exclude cases without exception handlers (\u003ccode\u003ePLW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25440\"\u003e#25440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat \u003ccode\u003eyield\u003c/code\u003e before \u003ccode\u003ebreak\u003c/code\u003e from a terminal loop as terminal (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25447\"\u003e#25447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Avoid flagging \u003ccode\u003eruff:ignore\u003c/code\u003e comments as code (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25537\"\u003e#25537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix \u003ccode\u003eERA001\u003c/code\u003e/\u003ccode\u003eRUF100\u003c/code\u003e conflict when \u003ccode\u003enoqa\u003c/code\u003e is on commented-out code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25414\"\u003e#25414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Avoid removing the \u003ccode\u003eformat\u003c/code\u003e call when it would change behavior (\u003ccode\u003eF523\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25320\"\u003e#25320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (\u003ccode\u003ePLE2510\u003c/code\u003e, \u003ccode\u003ePLE2512\u003c/code\u003e, \u003ccode\u003ePLE2513\u003c/code\u003e, \u003ccode\u003ePLE2514\u003c/code\u003e, \u003ccode\u003ePLE2515\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25544\"\u003e#25544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid converting \u003ccode\u003eformat\u003c/code\u003e calls with more kinds of side effects (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25484\"\u003e#25484\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid fixes for ambiguous \u003ccode\u003eargnames\u003c/code\u003e and \u003ccode\u003eargvalues\u003c/code\u003e combinations (\u003ccode\u003ePT006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24776\"\u003e#24776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop excess capacity from statement suites during parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25368\"\u003e#25368\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Improve discoverability of rules enabled for each convention (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24973\"\u003e#24973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Restore example code for Python versions before 3.15 (\u003ccode\u003eRUF017\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25439\"\u003e#25439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo \u003ccode\u003ebin/active\u003c/code\u003e → \u003ccode\u003ebin/activate\u003c/code\u003e in tutorial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25473\"\u003e#25473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Redslayer112\"\u003e\u003ccode\u003e@​Redslayer112\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koriyoshi2041\"\u003e\u003ccode\u003e@​koriyoshi2041\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/George-Ogden\"\u003e\u003ccode\u003e@​George-Ogden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/loganrosen\"\u003e\u003ccode\u003e@​loganrosen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RafaelJohn9\"\u003e\u003ccode\u003e@​RafaelJohn9\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\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/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.16\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (\u003ccode\u003eASYNC119\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24644\"\u003e#24644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Narrow diagnostic range and exclude cases without exception handlers (\u003ccode\u003ePLW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25440\"\u003e#25440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat \u003ccode\u003eyield\u003c/code\u003e before \u003ccode\u003ebreak\u003c/code\u003e from a terminal loop as terminal (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25447\"\u003e#25447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Avoid flagging \u003ccode\u003eruff:ignore\u003c/code\u003e comments as code (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25537\"\u003e#25537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix \u003ccode\u003eERA001\u003c/code\u003e/\u003ccode\u003eRUF100\u003c/code\u003e conflict when \u003ccode\u003enoqa\u003c/code\u003e is on commented-out code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25414\"\u003e#25414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Avoid removing the \u003ccode\u003eformat\u003c/code\u003e call when it would change behavior (\u003ccode\u003eF523\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25320\"\u003e#25320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (\u003ccode\u003ePLE2510\u003c/code\u003e, \u003ccode\u003ePLE2512\u003c/code\u003e, \u003ccode\u003ePLE2513\u003c/code\u003e, \u003ccode\u003ePLE2514\u003c/code\u003e, \u003ccode\u003ePLE2515\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25544\"\u003e#25544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid converting \u003ccode\u003eformat\u003c/code\u003e calls with more kinds of side effects (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25484\"\u003e#25484\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid fixes for ambiguous \u003ccode\u003eargnames\u003c/code\u003e and \u003ccode\u003eargvalues\u003c/code\u003e combinations (\u003ccode\u003ePT006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24776\"\u003e#24776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop excess capacity from statement suites during parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25368\"\u003e#25368\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Improve discoverability of rules enabled for each convention (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24973\"\u003e#24973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Restore example code for Python versions before 3.15 (\u003ccode\u003eRUF017\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25439\"\u003e#25439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo \u003ccode\u003ebin/active\u003c/code\u003e → \u003ccode\u003ebin/activate\u003c/code\u003e in tutorial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25473\"\u003e#25473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Redslayer112\"\u003e\u003ccode\u003e@​Redslayer112\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koriyoshi2041\"\u003e\u003ccode\u003e@​koriyoshi2041\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/George-Ogden\"\u003e\u003ccode\u003e@​George-Ogden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/loganrosen\"\u003e\u003ccode\u003e@​loganrosen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RafaelJohn9\"\u003e\u003ccode\u003e@​RafaelJohn9\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.15\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/astral-sh/ruff/commit/6c498ab5394edc5622d7f348e12956bf86203716\"\u003e\u003ccode\u003e6c498ab\u003c/code\u003e\u003c/a\u003e Bump 0.15.16 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25635\"\u003e#25635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e51e132831c4e1c4a5ac00fca4c9256354ab99bf\"\u003e\u003ccode\u003ee51e132\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (`AS...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7c6dcd9f2611999c449143d241c582dedf287964\"\u003e\u003ccode\u003e7c6dcd9\u003c/code\u003e\u003c/a\u003e [ty] Add caching for pattern match narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25613\"\u003e#25613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/27058fc071b542bf06395ba89cabed061d313ca6\"\u003e\u003ccode\u003e27058fc\u003c/code\u003e\u003c/a\u003e [ty] Compact retained definition and expression identities (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25606\"\u003e#25606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bf80d05f007c939799f530c9e775ed9449f5b2eb\"\u003e\u003ccode\u003ebf80d05\u003c/code\u003e\u003c/a\u003e Fix CODEOWNERS syntax (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25622\"\u003e#25622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10ccd511e94a81d1e836b174f1c553a73ff3f1b3\"\u003e\u003ccode\u003e10ccd51\u003c/code\u003e\u003c/a\u003e Shrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0d7135f4d23e7f4d8404daed16b9ef11d14f3fb9\"\u003e\u003ccode\u003e0d7135f\u003c/code\u003e\u003c/a\u003e [ty] Upgrade Salsa (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25545\"\u003e#25545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/49493a3cea83a08fa9aa143695017c816a540f1d\"\u003e\u003ccode\u003e49493a3\u003c/code\u003e\u003c/a\u003e [ty] Show type alias value on hover (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25381\"\u003e#25381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/85207d3b7657a84252f266766cb0d56034dc21cc\"\u003e\u003ccode\u003e85207d3\u003c/code\u003e\u003c/a\u003e [ty] sys.implementation.version is not sys.version_info (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25608\"\u003e#25608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a8a0614348c1fcf47fc9b666eff61a103914d520\"\u003e\u003ccode\u003ea8a0614\u003c/code\u003e\u003c/a\u003e [ty] Avoid retaining duplicate function signatures (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25609\"\u003e#25609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.5.5...0.15.16\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `respx` from 0.21.1 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.23.0\u003c/h2\u003e\n\u003ch2\u003e0.23.0 (7th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.22.0\u003c/h2\u003e\n\u003ch2\u003e0.22.0 (19th December 2024)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.21.1...0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bandit` from 1.7.9 to 1.9.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/bandit/releases\"\u003ebandit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.9.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: fixed some typos in comments by \u003ca href=\"https://github.com/jakob1379\"\u003e\u003ccode\u003e@​jakob1379\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1351\"\u003ePyCQA/bandit#1351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump docker/login-action from 3.6.0 to 3.7.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1353\"\u003ePyCQA/bandit#1353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump docker/build-push-action from 6.18.0 to 6.19.2 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1357\"\u003ePyCQA/bandit#1357\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix B613 crash when reading from stdin by \u003ca href=\"https://github.com/worksbyfriday\"\u003e\u003ccode\u003e@​worksbyfriday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1361\"\u003ePyCQA/bandit#1361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude filename in nosec 'no failed test' warning by \u003ca href=\"https://github.com/worksbyfriday\"\u003e\u003ccode\u003e@​worksbyfriday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1363\"\u003ePyCQA/bandit#1363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix B615 false positive when revision is set via variable by \u003ca href=\"https://github.com/worksbyfriday\"\u003e\u003ccode\u003e@​worksbyfriday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1358\"\u003ePyCQA/bandit#1358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLower version guard in check_ast_node to Python 3.12 by \u003ca href=\"https://github.com/rcgray\"\u003e\u003ccode\u003e@​rcgray\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1355\"\u003ePyCQA/bandit#1355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix B106 reporting wrong line number on multiline function calls by \u003ca href=\"https://github.com/worksbyfriday\"\u003e\u003ccode\u003e@​worksbyfriday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1360\"\u003ePyCQA/bandit#1360\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/jakob1379\"\u003e\u003ccode\u003e@​jakob1379\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1351\"\u003ePyCQA/bandit#1351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/worksbyfriday\"\u003e\u003ccode\u003e@​worksbyfriday\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1361\"\u003ePyCQA/bandit#1361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rcgray\"\u003e\u003ccode\u003e@​rcgray\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1355\"\u003ePyCQA/bandit#1355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyCQA/bandit/compare/1.9.3...1.9.4\"\u003ehttps://github.com/PyCQA/bandit/compare/1.9.3...1.9.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.9.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redire...\n\n_Description has been truncated_","html_url":"https://github.com/sochaty/dhi/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sochaty%2Fdhi/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"},{"uuid":"4567388939","node_id":"PR_kwDOOb2ots7hlJiP","number":1272,"state":"closed","title":"chore(deps-dev): Bump respx from 0.22.0 to 0.23.1","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-02T23:08:23.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-02T00:40:31.000Z","updated_at":"2026-06-02T23:08:32.000Z","time_to_close":80872,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): Bump","packages":[{"name":"respx","old_version":"0.22.0","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Bumps [respx](https://github.com/lundberg/respx) from 0.22.0 to 0.23.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.23.0\u003c/h2\u003e\n\u003ch2\u003e0.23.0 (7th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.22.0...0.23.1\"\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=respx\u0026package-manager=pip\u0026previous-version=0.22.0\u0026new-version=0.23.1)](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/fderuiter/imednet-python-sdk/pull/1272","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/fderuiter%2Fimednet-python-sdk/issues/1272","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1272/packages"},{"uuid":"4552065301","node_id":"PR_kwDOSrwtv87g1B2p","number":8,"state":"open","title":"chore(deps-dev): Update respx requirement from \u003e=0.21 to \u003e=0.23.1","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-29T22:41:31.000Z","updated_at":"2026-05-29T22:45:23.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): Update","packages":[{"name":"respx","old_version":"\u003e=0.21","new_version":"\u003e=0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [respx](https://github.com/lundberg/respx) 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/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.21.1] - 2024-03-27\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efiles\u003c/code\u003e pattern not handling \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eBytesIO\u003c/code\u003e, thanks \u003ca href=\"https://github.com/pierremonico\"\u003e\u003ccode\u003e@​pierremonico\u003c/code\u003e\u003c/a\u003e for input\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.21.0...0.23.1\"\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/DataCore-VietNam/datacore-python/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataCore-VietNam%2Fdatacore-python/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"},{"uuid":"4509852043","node_id":"PR_kwDOSmCdNs7esuQG","number":12,"state":"closed","title":"deps(deps-dev): update respx requirement from \u003e=0.21 to \u003e=0.23.1","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-23T23:09:25.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-23T23:05:24.000Z","updated_at":"2026-05-23T23:09:55.000Z","time_to_close":241,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps-dev): update","packages":[{"name":"respx","old_version":"\u003e=0.21","new_version":"\u003e=0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [respx](https://github.com/lundberg/respx) 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/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.21.1] - 2024-03-27\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efiles\u003c/code\u003e pattern not handling \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eBytesIO\u003c/code\u003e, thanks \u003ca href=\"https://github.com/pierremonico\"\u003e\u003ccode\u003e@​pierremonico\u003c/code\u003e\u003c/a\u003e for input\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.21.0...0.23.1\"\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/bsdwiz/faro/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsdwiz%2Ffaro/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"},{"uuid":"4465449252","node_id":"PR_kwDORw6c6s7cdykn","number":176,"state":"open","title":"chore(deps)(deps): update respx requirement from \u003c1.0.0,\u003e=0.21.0 to \u003e=0.23.1,\u003c1.0.0 in /backend","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-05-18T00:31:48.000Z","updated_at":"2026-05-18T00:36:49.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): update","packages":[{"name":"respx","old_version":"\u003c1.0.0,\u003e=0.21.0","new_version":"\u003e=0.23.1,\u003c1.0.0","repository_url":"https://github.com/lundberg/respx"}],"path":"/backend","ecosystem":"pip"},"body":"Updates the requirements on [respx](https://github.com/lundberg/respx) 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/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.21.1] - 2024-03-27\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efiles\u003c/code\u003e pattern not handling \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eBytesIO\u003c/code\u003e, thanks \u003ca href=\"https://github.com/pierremonico\"\u003e\u003ccode\u003e@​pierremonico\u003c/code\u003e\u003c/a\u003e for input\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.21.0...0.23.1\"\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/hdj82-bot/classauto.live-/pull/176","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdj82-bot%2Fclassauto.live-/issues/176","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/176/packages"},{"uuid":"4428000474","node_id":"PR_kwDORiZsj87anO7N","number":722,"state":"closed","title":"build(deps): Update respx requirement from \u003e=0.21 to \u003e=0.23.1","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-23T11:29:07.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-12T09:44:54.000Z","updated_at":"2026-05-23T11:29:16.000Z","time_to_close":956653,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Update","packages":[{"name":"respx","old_version":"\u003e=0.21","new_version":"\u003e=0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [respx](https://github.com/lundberg/respx) 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/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.21.1] - 2024-03-27\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efiles\u003c/code\u003e pattern not handling \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eBytesIO\u003c/code\u003e, thanks \u003ca href=\"https://github.com/pierremonico\"\u003e\u003ccode\u003e@​pierremonico\u003c/code\u003e\u003c/a\u003e for input\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.22.0...0.23.1\"\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/niuulabs/volundr/pull/722","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/niuulabs%2Fvolundr/issues/722","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/722/packages"},{"uuid":"4388989227","node_id":"PR_kwDOR_1vWs7YpI9a","number":35,"state":"open","title":"chore(deps): update respx requirement from \u003e=0.21 to \u003e=0.23.1 in /BE","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-05-06T05:32:55.000Z","updated_at":"2026-05-06T05:33:01.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): update","packages":[{"name":"respx","old_version":"\u003e=0.21","new_version":"\u003e=0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":"/BE","ecosystem":"pip"},"body":"Updates the requirements on [respx](https://github.com/lundberg/respx) 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/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.21.1] - 2024-03-27\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efiles\u003c/code\u003e pattern not handling \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eBytesIO\u003c/code\u003e, thanks \u003ca href=\"https://github.com/pierremonico\"\u003e\u003ccode\u003e@​pierremonico\u003c/code\u003e\u003c/a\u003e for input\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.21.0...0.23.1\"\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/rahulyer002/ConnectLocal/pull/35","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahulyer002%2FConnectLocal/issues/35","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/35/packages"},{"uuid":"4380110325","node_id":"PR_kwDORwUiN87YMMPx","number":18,"state":"closed","title":"build(deps): bump the minor-and-patch group across 1 directory with 21 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-12T01:07:03.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-04T22:32:18.000Z","updated_at":"2026-05-12T01:07:05.000Z","time_to_close":614085,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"minor-and-patch","update_count":21,"packages":[{"name":"certifi","old_version":"2026.2.25","new_version":"2026.4.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.6","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.1","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"cloudpathlib","old_version":"0.23.0","new_version":"0.24.0","repository_url":"https://github.com/drivendataorg/cloudpathlib"},{"name":"fastapi","old_version":"0.115.12","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"idna","old_version":"3.11","new_version":"3.13","repository_url":"https://github.com/kjd/idna"},{"name":"numpy","old_version":"2.4.3","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"packaging","old_version":"26.0","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.9.1","new_version":"2.14.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.46.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyinstaller","old_version":"6.19.0","new_version":"6.20.0","repository_url":"https://github.com/pyinstaller/pyinstaller"},{"name":"pyinstaller-hooks-contrib","old_version":"2026.3","new_version":"2026.4","repository_url":"https://github.com/pyinstaller/pyinstaller-hooks-contrib"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"respx","old_version":"0.22.0","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"},{"name":"smart-open","old_version":"7.5.1","new_version":"7.6.0","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"spacy","old_version":"3.8.13","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"},{"name":"typer","old_version":"0.24.1","new_version":"0.25.1","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.34.3","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-and-patch group with 21 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.4.22` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.6` | `3.4.7` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.3` |\n| [cloudpathlib](https://github.com/drivendataorg/cloudpathlib) | `0.23.0` | `0.24.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.12` | `0.136.1` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.13` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.3` | `2.4.4` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.2` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.9.1` | `2.14.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.5` | `2.46.3` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pyinstaller](https://github.com/pyinstaller/pyinstaller) | `6.19.0` | `6.20.0` |\n| [pyinstaller-hooks-contrib](https://github.com/pyinstaller/pyinstaller-hooks-contrib) | `2026.3` | `2026.4` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [respx](https://github.com/lundberg/respx) | `0.22.0` | `0.23.1` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.5.1` | `7.6.0` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.13` | `3.8.14` |\n| [typer](https://github.com/fastapi/typer) | `0.24.1` | `0.25.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.3` | `0.46.0` |\n\n\nUpdates `certifi` from 2026.2.25 to 2026.4.22\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/5dddfb072243da27adde885b73ba9b809c3224ca\"\u003e\u003ccode\u003e5dddfb0\u003c/code\u003e\u003c/a\u003e 2026.04.22 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/f99eccdaf87f7c10e521a58a700ca3eb94a0787e\"\u003e\u003ccode\u003ef99eccd\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/918bed055f7291719512af186c1c24710f845660\"\u003e\u003ccode\u003e918bed0\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/405\"\u003e#405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/0a49067eb434e53e1f8df5f7707d5dc05ef9def4\"\u003e\u003ccode\u003e0a49067\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/acf6ce8e39e3b125f4349e11904295e4fe4c1bed\"\u003e\u003ccode\u003eacf6ce8\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/feb0ed26163a9417ea0fb8eb52d47e79fcf202ab\"\u003e\u003ccode\u003efeb0ed2\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7.0.0 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d9c11a50369cc377abb40f7909ded3d6da4d98a3\"\u003e\u003ccode\u003ed9c11a5\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2026.02.25...2026.04.22\"\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.4.6 to 3.4.7\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.7\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\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/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.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\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/jawah/charset_normalizer/commit/0f07891bf516b5d5231f1bd4dd2d8da7d4d09a9a\"\u003e\u003ccode\u003e0f07891\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/729\"\u003e#729\u003c/a\u003e from jawah/release-3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/fdbeb299479e8f4d737e4d227cd0b2bd5d273dc0\"\u003e\u003ccode\u003efdbeb29\u003c/code\u003e\u003c/a\u003e chore: update dev, and ci requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b66f922bfbdbdd9dd46af18a8964d4fb888756d4\"\u003e\u003ccode\u003eb66f922\u003c/code\u003e\u003c/a\u003e chore: add ft classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f94249d0a2c712f2d03124f4de6b77f5e03aaa96\"\u003e\u003ccode\u003ef94249d\u003c/code\u003e\u003c/a\u003e chore: add test cases for utf_7 recent fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/95c866f6c984bbd043e7e3ed0628aa4f3f8d5a26\"\u003e\u003ccode\u003e95c866f\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4f429bb764c7e893f99bb4bceb60856da1baacfb\"\u003e\u003ccode\u003e4f429bb\u003c/code\u003e\u003c/a\u003e chore: bump mypy pre-commit to v1.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b579cd6cab9bd83aa3fc0ca169d4df022bf4888c\"\u003e\u003ccode\u003eb579cd6\u003c/code\u003e\u003c/a\u003e fix: correctly remove SIG remnant in utf-7 decoded string\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/58bf944a77cc0883fc46a6ee8edac3549fea5d59\"\u003e\u003ccode\u003e58bf944\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 4.32.4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/44cf8a1b676a2532a8f1694e62e4f4f98f9132e1\"\u003e\u003ccode\u003e44cf8a1\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/362bc20073f737b1ba4ca2f68cffb0c4cc024d20\"\u003e\u003ccode\u003e362bc20\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump docker/setup-qemu-action from 3.7.0 to 4.0.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.6...3.4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.3.1 to 8.3.3\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.3\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.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/click/8.3.3/\"\u003ehttps://pypi.org/project/click/8.3.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-3\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/30\"\u003ehttps://github.com/pallets/click/milestone/30\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse :func:\u003ccode\u003eshlex.split\u003c/code\u003e to split pager and editor commands into \u003ccode\u003eargv\u003c/code\u003e\nlists for :class:\u003ccode\u003esubprocess.Popen\u003c/code\u003e, removing \u003ccode\u003eshell=True\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/1026\"\u003e#1026\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1477\"\u003e#1477\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2775\"\u003e#2775\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eTypeError\u003c/code\u003e when rendering help for an option whose default value is\nan object that doesn't support equality comparison with strings, such as\n\u003ccode\u003esemver.Version\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3298\"\u003e#3298\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3299\"\u003e#3299\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pager test pollution under parallel execution by using pytest's\n\u003ccode\u003etmp_path\u003c/code\u003e fixture instead of a shared temporary file path. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3238\"\u003e#3238\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values in a \u003ccode\u003edefault_map\u003c/code\u003e as absent, so they fall\nthrough to the next default source instead of being used as the value.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3224\"\u003e#3224\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3240\"\u003e#3240\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch \u003ccode\u003epdb.Pdb\u003c/code\u003e in \u003ccode\u003eCliRunner\u003c/code\u003e isolation so \u003ccode\u003epdb.set_trace()\u003c/code\u003e,\n\u003ccode\u003ebreakpoint()\u003c/code\u003e, and debuggers subclassing \u003ccode\u003epdb.Pdb\u003c/code\u003e (ipdb, pdbpp) can\ninteract with the real terminal instead of the captured I/O streams.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/654\"\u003e#654\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/824\"\u003e#824\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/843\"\u003e#843\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/951\"\u003e#951\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3235\"\u003e#3235\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd optional randomized parallel test execution using \u003ccode\u003epytest-randomly\u003c/code\u003e and\n\u003ccode\u003epytest-xdist\u003c/code\u003e to detect test pollution and race conditions. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3151\"\u003e#3151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd contributor documentation for running stress tests, randomized\nparallel tests, and Flask smoke tests. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3151\"\u003e#3151\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3177\"\u003e#3177\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow custom \u003ccode\u003eshow_default\u003c/code\u003e string in prompts, matching the existing\nhelp text behavior. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2836\"\u003e#2836\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2837\"\u003e#2837\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3165\"\u003e#3165\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3262\"\u003e#3262\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3280\"\u003e#3280\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3328\"\u003e#3328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edefault=True\u003c/code\u003e with boolean \u003ccode\u003eflag_value\u003c/code\u003e always returning the\n\u003ccode\u003eflag_value\u003c/code\u003e instead of \u003ccode\u003eTrue\u003c/code\u003e. The \u003ccode\u003edefault=True\u003c/code\u003e to \u003ccode\u003eflag_value\u003c/code\u003e\nsubstitution now only applies to non-boolean flags, where \u003ccode\u003eTrue\u003c/code\u003e acts as a\nsentinel meaning \u0026quot;activate this flag by default\u0026quot;. For boolean flags,\n\u003ccode\u003edefault=True\u003c/code\u003e is returned as a literal value. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3111\"\u003e#3111\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3239\"\u003e#3239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003emake_default_short_help\u003c/code\u003e as private API. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3189\"\u003e#3189\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3250\"\u003e#3250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCliRunner\u003c/code\u003e's redirected streams now expose the original file descriptor\nvia \u003ccode\u003efileno()\u003c/code\u003e, so that \u003ccode\u003efaulthandler\u003c/code\u003e, \u003ccode\u003esubprocess\u003c/code\u003e, and other\nC-level consumers no longer crash with \u003ccode\u003eio.UnsupportedOperation\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2865\"\u003e#2865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange :class:\u003ccode\u003eParameterSource\u003c/code\u003e to an :class:\u003ccode\u003e~enum.IntEnum\u003c/code\u003e and reorder\nits members from most to least explicit, so values can be compared to\ncheck whether a parameter was explicitly provided. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2879\"\u003e#2879\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3248\"\u003e#3248\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.3.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.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.3.2/\"\u003ehttps://pypi.org/project/click/8.3.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/29\"\u003ehttps://github.com/pallets/click/milestone/29\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.3\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse :func:\u003ccode\u003eshlex.split\u003c/code\u003e to split pager and editor commands into \u003ccode\u003eargv\u003c/code\u003e\nlists for :class:\u003ccode\u003esubprocess.Popen\u003c/code\u003e, removing \u003ccode\u003eshell=True\u003c/code\u003e.\n:issue:\u003ccode\u003e1026\u003c/code\u003e :pr:\u003ccode\u003e1477\u003c/code\u003e :pr:\u003ccode\u003e2775\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eTypeError\u003c/code\u003e when rendering help for an option whose default value is\nan object that doesn't support equality comparison with strings, such as\n\u003ccode\u003esemver.Version\u003c/code\u003e. :issue:\u003ccode\u003e3298\u003c/code\u003e :pr:\u003ccode\u003e3299\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix pager test pollution under parallel execution by using pytest's\n\u003ccode\u003etmp_path\u003c/code\u003e fixture instead of a shared temporary file path. :pr:\u003ccode\u003e3238\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values in a \u003ccode\u003edefault_map\u003c/code\u003e as absent, so they fall\nthrough to the next default source instead of being used as the value.\n:issue:\u003ccode\u003e3224\u003c/code\u003e :pr:\u003ccode\u003e3240\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePatch \u003ccode\u003epdb.Pdb\u003c/code\u003e in \u003ccode\u003eCliRunner\u003c/code\u003e isolation so \u003ccode\u003epdb.set_trace()\u003c/code\u003e,\n\u003ccode\u003ebreakpoint()\u003c/code\u003e, and debuggers subclassing \u003ccode\u003epdb.Pdb\u003c/code\u003e (ipdb, pdbpp) can\ninteract with the real terminal instead of the captured I/O streams.\n:issue:\u003ccode\u003e654\u003c/code\u003e :issue:\u003ccode\u003e824\u003c/code\u003e :issue:\u003ccode\u003e843\u003c/code\u003e :pr:\u003ccode\u003e951\u003c/code\u003e :pr:\u003ccode\u003e3235\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd optional randomized parallel test execution using \u003ccode\u003epytest-randomly\u003c/code\u003e and\n\u003ccode\u003epytest-xdist\u003c/code\u003e to detect test pollution and race conditions. :pr:\u003ccode\u003e3151\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd contributor documentation for running stress tests, randomized\nparallel tests, and Flask smoke tests. :pr:\u003ccode\u003e3151\u003c/code\u003e :pr:\u003ccode\u003e3177\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eShow custom \u003ccode\u003eshow_default\u003c/code\u003e string in prompts, matching the existing\nhelp text behavior. :issue:\u003ccode\u003e2836\u003c/code\u003e :pr:\u003ccode\u003e2837\u003c/code\u003e :pr:\u003ccode\u003e3165\u003c/code\u003e :pr:\u003ccode\u003e3262\u003c/code\u003e :pr:\u003ccode\u003e3280\u003c/code\u003e\n:pr:\u003ccode\u003e3328\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edefault=True\u003c/code\u003e with boolean \u003ccode\u003eflag_value\u003c/code\u003e always returning the\n\u003ccode\u003eflag_value\u003c/code\u003e instead of \u003ccode\u003eTrue\u003c/code\u003e. The \u003ccode\u003edefault=True\u003c/code\u003e to \u003ccode\u003eflag_value\u003c/code\u003e\nsubstitution now only applies to non-boolean flags, where \u003ccode\u003eTrue\u003c/code\u003e acts as a\nsentinel meaning \u0026quot;activate this flag by default\u0026quot;. For boolean flags,\n\u003ccode\u003edefault=True\u003c/code\u003e is returned as a literal value. :issue:\u003ccode\u003e3111\u003c/code\u003e :pr:\u003ccode\u003e3239\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003emake_default_short_help\u003c/code\u003e as private API. :issue:\u003ccode\u003e3189\u003c/code\u003e :pr:\u003ccode\u003e3250\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCliRunner\u003c/code\u003e's redirected streams now expose the original file descriptor\nvia \u003ccode\u003efileno()\u003c/code\u003e, so that \u003ccode\u003efaulthandler\u003c/code\u003e, \u003ccode\u003esubprocess\u003c/code\u003e, and other\nC-level consumers no longer crash with \u003ccode\u003eio.UnsupportedOperation\u003c/code\u003e.\n:issue:\u003ccode\u003e2865\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eChange :class:\u003ccode\u003eParameterSource\u003c/code\u003e to an :class:\u003ccode\u003e~enum.IntEnum\u003c/code\u003e and reorder\nits members from most to least explicit, so values can be compared to\ncheck whether a parameter was explicitly provided. :issue:\u003ccode\u003e2879\u003c/code\u003e :pr:\u003ccode\u003e3248\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.3.2\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix handling of \u003ccode\u003eflag_value\u003c/code\u003e when \u003ccode\u003eis_flag=False\u003c/code\u003e to allow such options to be\nused without an explicit value. :issue:\u003ccode\u003e3084\u003c/code\u003e :pr:\u003ccode\u003e3152\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when using \u003ccode\u003elookup_default()\u003c/code\u003e.\n:issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3199\u003c/code\u003e :pr:\u003ccode\u003e3202\u003c/code\u003e :pr:\u003ccode\u003e3209\u003c/code\u003e :pr:\u003ccode\u003e3212\u003c/code\u003e :pr:\u003ccode\u003e3224\u003c/code\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/pallets/click/commit/c06d2d0a6aee6bcc50bd8257be2a4a592f4e75d0\"\u003e\u003ccode\u003ec06d2d0\u003c/code\u003e\u003c/a\u003e Release 8.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f1f191ecd2c790b161187c78e7c88440e9524e5c\"\u003e\u003ccode\u003ef1f191e\u003c/code\u003e\u003c/a\u003e Apply format guidelines to commits since latest 8.3.2 release (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3343\"\u003e#3343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bb59ba0fd279ca085d1113f0499b6a602ca31081\"\u003e\u003ccode\u003ebb59ba0\u003c/code\u003e\u003c/a\u003e Apply format guidelines to commits since latest 8.3.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4a352253c9ff013e36d11e4a6820d36d00ff2cd4\"\u003e\u003ccode\u003e4a35225\u003c/code\u003e\u003c/a\u003e Reduce blast-radius of \u003ccode\u003eUNSET\u003c/code\u003e in \u003ccode\u003edefault_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3240\"\u003e#3240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/c07bb936de43fd303f9cfbefe248ab23fd2199c8\"\u003e\u003ccode\u003ec07bb93\u003c/code\u003e\u003c/a\u003e Merge branch 'stable' into unset-in-default-map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/c7e1ba8448cbcb2cdd9c1c7f4a592e863dcc3995\"\u003e\u003ccode\u003ec7e1ba8\u003c/code\u003e\u003c/a\u003e Reorder \u003ccode\u003eParameterSource\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3248\"\u003e#3248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/76552ff1e8c85837f911fc34037e702ae4327eda\"\u003e\u003ccode\u003e76552ff\u003c/code\u003e\u003c/a\u003e Show default string in prompt (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3328\"\u003e#3328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ac5cec5fe54e5a691e7bac17f441ce9498e0744c\"\u003e\u003ccode\u003eac5cec5\u003c/code\u003e\u003c/a\u003e Reorder ParameterSource from most to least explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8c452e00e6772931b7071d9316b82b77e5b8f280\"\u003e\u003ccode\u003e8c452e0\u003c/code\u003e\u003c/a\u003e Merge branch 'stable' into show-default-string-in-prompt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8c95c73bd5ef89eac638f85f1904a104ba4b1a32\"\u003e\u003ccode\u003e8c95c73\u003c/code\u003e\u003c/a\u003e Reconcile default value passing and default activation (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3239\"\u003e#3239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.3.1...8.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cloudpathlib` from 0.23.0 to 0.24.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/drivendataorg/cloudpathlib/releases\"\u003ecloudpathlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for S3 Multi-Region Access Point (MRAP) URLs in \u003ccode\u003eS3Path\u003c/code\u003e (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/556\"\u003e#556\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for Pydantic serialization (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/537\"\u003e#537\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/538\"\u003e#538\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/drivendataorg/cloudpathlib/blob/master/HISTORY.md\"\u003ecloudpathlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.24.0 (2026-04-29)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for S3 Multi-Region Access Point (MRAP) URLs in \u003ccode\u003eS3Path\u003c/code\u003e (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/556\"\u003e#556\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for Pydantic serialization (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/537\"\u003e#537\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/538\"\u003e#538\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/drivendataorg/cloudpathlib/commit/1d65750d99ac320b8f46016322d6b8fe1995d90f\"\u003e\u003ccode\u003e1d65750\u003c/code\u003e\u003c/a\u003e Add support for S3 Multi-Region Access Point (MRAP) URLs (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/557\"\u003e#557\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/5124aa0a53cfdbaeea71aaccd6e397a686196552\"\u003e\u003ccode\u003e5124aa0\u003c/code\u003e\u003c/a\u003e Reformat with black 26.1.0 (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/542\"\u003e#542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/1ca2eed598119743d92e23e1b8d7585b27b25faa\"\u003e\u003ccode\u003e1ca2eed\u003c/code\u003e\u003c/a\u003e Feat/pydantic serialization (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/538\"\u003e#538\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/539\"\u003e#539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/drivendataorg/cloudpathlib/compare/v0.23.0...v0.24.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.115.12 to 0.136.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.3\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/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.12...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.11 to 3.13\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.13 (2026-04-22)\n+++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect classification error for codepoint U+A7F1\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.12 (2026-04-21)\n+++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 17.0.0.\u003c/li\u003e\n\u003cli\u003eIssue a deprecation warning for the transitional argument.\u003c/li\u003e\n\u003cli\u003eAdded lazy-loading to provide some performance improvements.\u003c/li\u003e\n\u003cli\u003eRemoved vestiges of code related to Python 2 support, including\nsegmentation of data structures specific to Jython.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Rodrigo Nogueira for contributions to this release.\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/kjd/idna/commit/89cdfd27338896cee6b1ee18e64c96ac28684ce0\"\u003e\u003ccode\u003e89cdfd2\u003c/code\u003e\u003c/a\u003e Release v3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1eb068687543118147417a8d8a70674e2c172891\"\u003e\u003ccode\u003e1eb0686\u003c/code\u003e\u003c/a\u003e Pre-release 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/5f20d1e41eea3b3873d18d83d7a384784f72a92e\"\u003e\u003ccode\u003e5f20d1e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/220\"\u003e#220\u003c/a\u003e from kjd/unicode-next\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/4ea84252ab21e62a79e5a3273746112b5dcfb810\"\u003e\u003ccode\u003e4ea8425\u003c/code\u003e\u003c/a\u003e Regenerate idnadata.py with correct NFKC_CF data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/fd47341a08bbdcffda33694211ca4de10170cd41\"\u003e\u003ccode\u003efd47341\u003c/code\u003e\u003c/a\u003e Use NFKC_CF from Unicode data files instead of Python's unicodedata module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a5304a4cdbd7b31595f8ac42ffdfa88f5b936467\"\u003e\u003ccode\u003ea5304a4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/219\"\u003e#219\u003c/a\u003e from kjd/release-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/d80d6f9254d699961fa2c669a1534cde9d4ee5b6\"\u003e\u003ccode\u003ed80d6f9\u003c/code\u003e\u003c/a\u003e Release v3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1bb44ddb3f2a9dcf97a6ac11aba34e5b6ed31291\"\u003e\u003ccode\u003e1bb44dd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/218\"\u003e#218\u003c/a\u003e from kjd/release-candidate-3.12rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/909c49d15b8d159be163bccc7972116baffdb47b\"\u003e\u003ccode\u003e909c49d\u003c/code\u003e\u003c/a\u003e Release candidate for 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/c5459a10370f005dc09921aee3201b5a45699f9d\"\u003e\u003ccode\u003ec5459a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/217\"\u003e#217\u003c/a\u003e from kjd/housekeeping-2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.11...v3.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.4.3 to 2.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.4 (Mar 29, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.4 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.4 is a patch release that fixes bugs discovered after the 2.4.3\nrelease. It should finally close issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e, the OpenBLAS threading problem\non ARM.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 8 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eDaniel Haag +\u003c/li\u003e\n\u003cli\u003eDenis Prokopenko +\u003c/li\u003e\n\u003cli\u003eHarshith J +\u003c/li\u003e\n\u003cli\u003eKoki Watanabe\u003c/li\u003e\n\u003cli\u003eMarten van Kerkwijk\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 7 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30978\"\u003e#30978\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31049\"\u003e#31049\u003c/a\u003e: BUG: Add test to reproduce problem described in \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30818\"\u003e#30818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31052\"\u003e#31052\u003c/a\u003e: BUG: fix FNV-1a 64-bit selection by using NPY_SIZEOF_UINTP (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31035\"\u003e#31035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31053\"\u003e#31053\u003c/a\u003e: BUG: avoid warning on ufunc with where=True and no output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31058\"\u003e#31058\u003c/a\u003e: DOC: document caveats of ndarray.resize on 3.14 and newer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31079\"\u003e#31079\u003c/a\u003e: TST: fix POWER VSX feature mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30801\"\u003e#30801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31084\"\u003e#31084\u003c/a\u003e: MAINT: numpy.i: Replace deprecated \u003ccode\u003esprintf\u003c/code\u003e with \u003ccode\u003esnprintf\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/numpy/numpy/commit/be93fe2960dbf49b4647f5783c66d967fb2c65b5\"\u003e\u003ccode\u003ebe93fe2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31090\"\u003e#31090\u003c/a\u003e from charris/prepare-2.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/f5245dc7ea5c6279c59cb0d5de81113229841290\"\u003e\u003ccode\u003ef5245dc\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/02e838ba270a5ca3dd8afc5a31c090cd34a56615\"\u003e\u003ccode\u003e02e838b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31084\"\u003e#31084\u003c/a\u003e from charris/backport-31056\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fa74b2d05f8f7604bf6635d5280c3216c8ec667f\"\u003e\u003ccode\u003efa74b2d\u003c/code\u003e\u003c/a\u003e MAINT: numpy.i: Replace deprecated \u003ccode\u003esprintf\u003c/code\u003e with \u003ccode\u003esnprintf\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31056\"\u003e#31056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/533a6db96dfa2556a61102a58c35fd64eaf3fa2b\"\u003e\u003ccode\u003e533a6db\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31079\"\u003e#31079\u003c/a\u003e from charris/backport-20801\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9e496cbd0a281195bd779ae1833f2a8f4a1d46a7\"\u003e\u003ccode\u003e9e496cb\u003c/code\u003e\u003c/a\u003e TST: fix POWER VSX feature mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30801\"\u003e#30801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8052c4b69ef18e582709af946f93f9e58b848f39\"\u003e\u003ccode\u003e8052c4b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31058\"\u003e#31058\u003c/a\u003e from charris/backport-31021\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7f13b5ad2b69fd6ea6aa3af7036b2dcf98e96486\"\u003e\u003ccode\u003e7f13b5a\u003c/code\u003e\u003c/a\u003e MAINT: Skip test on PyPy.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/4c5fdd66c8f379a1e2b3f40fa62bd0b87769d1c7\"\u003e\u003ccode\u003e4c5fdd6\u003c/code\u003e\u003c/a\u003e MAINT: Remove unused import of tracemalloc.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/a3ca5ed354b26e0fd6e35bf29765a24271ed7c3a\"\u003e\u003ccode\u003ea3ca5ed\u003c/code\u003e\u003c/a\u003e Update numpy/_core/src/multiarray/shape.c\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.4.3...v2.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 26.0 to 26.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten by \u003ca href=\"https://github.com/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) by \u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1163\"\u003epypa/packaging#1163\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1168\"\u003epypa/packaging#1168\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1170\"\u003epypa/packaging#1170\u003c/a\u003e, and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1171\"\u003epypa/packaging#1171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: re-export ExceptionGroup for now by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1164\"\u003epypa/packaging#1164\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add errors section and fix missing details by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1159\"\u003epypa/packaging#1159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(dev): document property-based test suite by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1167\"\u003epypa/packaging#1167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in DirectUrl documentation by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1169\"\u003epypa/packaging#1169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(specifiers): add is_unsatisfiable() usage example by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1166\"\u003epypa/packaging#1166\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1158\"\u003epypa/packaging#1158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1174\"\u003epypa/packaging#1174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse native uv integration in rtd by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1175\"\u003epypa/packaging#1175\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/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1163\"\u003epypa/packaging#1163\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/packaging/compare/26.1...26.2\"\u003ehttps://github.com/pypa/packaging/compare/26.1...26.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e26.1\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cdel\u003ePEP 783: add handling for Emscripten wheel tags by \u003ca href=\"https://github.com/hoodmane\"\u003e\u003ccode\u003e@​hoodmane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/804\"\u003epypa/packaging#804\u003c/a\u003e\u003c/del\u003e (old name used in implementation, will be fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1099\"\u003epypa/packaging#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1065\"\u003epypa/packaging#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/944\"\u003epypa/packaging#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1071\"\u003epypa/packaging#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1119\"\u003epypa/packaging#1119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1110\"\u003epypa/packaging#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1068\"\u003epypa/packaging#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1146\"\u003epypa/packaging#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1078\"\u003epypa/packaging#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1150\"\u003epypa/packaging#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1140\"\u003epypa/packaging#1140\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/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.2 - 2026-04-24\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFixes:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten in (:pull:\u003ccode\u003e1160\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\u003cbr /\u003e\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\u003cbr /\u003e\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) (:pull:\u003ccode\u003e1163\u003c/code\u003e, :pull:\u003ccode\u003e1168\u003c/code\u003e, :pull:\u003ccode\u003e1170\u003c/code\u003e, :pull:\u003ccode\u003e1171\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRe-export \u003ccode\u003eExceptionGroup\u003c/code\u003e in metadata for now in (:pull:\u003ccode\u003e1164\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd errors section and fix missing details in (:pull:\u003ccode\u003e1159\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument our property-based test suite in (:pull:\u003ccode\u003e1167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eDirectUrl\u003c/code\u003e typo in (:pull:\u003ccode\u003e1167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd example of \u003ccode\u003eis_unsatisfiable\u003c/code\u003e in (:pull:\u003ccode\u003e1166\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor in (:pull:\u003ccode\u003e1158\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees in (:pull:\u003ccode\u003e1174\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse new native ReadTheDocs uv integration in (:pull:\u003ccode\u003e1175\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e26.1 - 2026-04-14\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 783: add handling for Emscripten wheel tags in (:pull:\u003ccode\u003e804\u003c/code\u003e) (old name used in implementation, fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag in (:pull:\u003ccode\u003e1099\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package in (:pull:\u003ccode\u003e1065\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module in (:pull:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module in (:pull:\u003ccode\u003e1071\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) in (:pull:\u003ccode\u003e1119\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags in (:pull:\u003ccode\u003e1110\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e in (:pull:\u003ccode\u003e1068\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's in (:pull:\u003ccode\u003e1146\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e in (:pull:\u003ccode\u003e1078\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e in (:pull:\u003ccode\u003e1150\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1140\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026gt;V\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1141\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private in (:pull:\u003ccode\u003e1125\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII in (:pull:\u003ccode\u003e1102\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\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/pypa/packaging/commit/84a87ee42483d7352f9502d78a9553da8859aa7a\"\u003e\u003ccode\u003e84a87ee\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4a616b65bed23c8c6d58e6b0fc1a4434d4ff1f14\"\u003e\u003ccode\u003e4a616b6\u003c/code\u003e\u003c/a\u003e docs: a few more updates to prepare for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1176\"\u003e#1176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9de6f44f1e82d4595edf3aad1c4f6f98c85935a0\"\u003e\u003ccode\u003e9de6f44\u003c/code\u003e\u003c/a\u003e ci: use native uv integration in rtd (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1175\"\u003e#1175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/bc76e14debd1a2799d1ca8f9d9c9823f35bfa466\"\u003e\u003ccode\u003ebc76e14\u003c/code\u003e\u003c/a\u003e chore: update changelog for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f00091c08f0aa830e33ed7db00f16f11c8ac97f\"\u003e\u003ccode\u003e3f00091\u003c/code\u003e\u003c/a\u003e tests: add a pickle check (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1174\"\u003e#1174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/48a8a069805291186522de3eff73ea80a8ca96ad\"\u003e\u003ccode\u003e48a8a06\u003c/code\u003e\u003c/a\u003e fix: make Requirements/Markers pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1171\"\u003e#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/823b44ed1f904084a77ae3adf0ef130af6365f84\"\u003e\u003ccode\u003e823b44e\u003c/code\u003e\u003c/a\u003e fix: make Tags pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1170\"\u003e#1170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4bed32d920ca7211dd65fdf0a1ee06376e9c4733\"\u003e\u003ccode\u003e4bed32d\u003c/code\u003e\u003c/a\u003e fix: make Specifier / SpecifierSet pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1168\"\u003e#1168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/963118e37caae97bc8b72f72956c7fb4ca9857ec\"\u003e\u003ccode\u003e963118e\u003c/code\u003e\u003c/a\u003e fix: re-export ExceptionGroup for now (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/66e34a80256c96dea11da143682950c84b8133bb\"\u003e\u003ccode\u003e66e34a8\u003c/code\u003e\u003c/a\u003e docs(specifiers): add is_unsatisfiable() usage example (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1166\"\u003e#1166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/26.0...26.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\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/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\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/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.9.1 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix parsing env vars into Optional Strict types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/792\"\u003epydantic/pydantic-settings#792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError with mutually recursive models in CLI by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/794\"\u003epydantic/pydantic-settings#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix env_file from model_config ignored in CliApp.run() (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/795\"\u003e#795\u003c/a\u003e) by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/796\"\u003epydantic/pydantic-settings#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/798\"\u003epydantic/pydantic-settings#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Dependabot configuration by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/801\"\u003epydantic/pydantic-settings#801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump samuelcolvin/check-python-version from 4.1 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/803\"\u003epydantic/pydantic-settings#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/804\"\u003epydantic/pydantic-settings#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 5 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/805\"\u003epydantic/pydantic-settings#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/806\"\u003epydantic/pydantic-settings#806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore chardet and group GitHub Actions in Dependabot by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/808\"\u003epydantic/pydantic-settings#808\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 8 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/809\"\u003epydantic/pydantic-settings#809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/810\"\u003epydantic/pydantic-settings#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport reading .env files from FIFOs (e.g. 1Password Environments) by \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AliasChoices ignored when changing provider priority by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/813\"\u003epydantic/pydantic-settings#813\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve KeyError in run_subcommand for underscore field names by \u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/814\"\u003epydantic/pydantic-settings#814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eLiteral[numeric Enum]\u003c/code\u003e coercion for CLI and env vars by \u003ca href=\"https://github.com/m9810223\"\u003e\u003ccode\u003e@​m9810223\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/811\"\u003epydantic/pydantic-settings#811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix nested discriminated unions not discovered by env/CLI providers by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/816\"\u003epydantic/pydantic-settings#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/820\"\u003epydantic/pydantic-settings#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI ensure env nested max split internally. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/821\"\u003epydantic/pydantic-settings#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/824\"\u003epydantic/pydantic-settings#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eboto3-stubs\u003c/code\u003e to \u003ccode\u003etypes-boto3\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/831\"\u003epydantic/pydantic-settings#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI not recog...\n\n_Description has been truncated_","html_url":"https://github.com/saagpatel/JobMarketHeatmap/pull/18","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/saagpatel%2FJobMarketHeatmap/issues/18","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/18/packages"},{"uuid":"4375152102","node_id":"PR_kwDOR3PWh87X7xfq","number":67,"state":"open","title":"chore(deps-dev): update respx requirement from \u003e=0.21 to \u003e=0.23.1 in /python-sdk","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-04T08:43:34.000Z","updated_at":"2026-05-04T08:43:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): update","packages":[{"name":"respx","old_version":"\u003e=0.21","new_version":"\u003e=0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":"/python-sdk","ecosystem":"pip"},"body":"Updates the requirements on [respx](https://github.com/lundberg/respx) 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/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.21.1] - 2024-03-27\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efiles\u003c/code\u003e pattern not handling \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eBytesIO\u003c/code\u003e, thanks \u003ca href=\"https://github.com/pierremonico\"\u003e\u003ccode\u003e@​pierremonico\u003c/code\u003e\u003c/a\u003e for input\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.21.0...0.23.1\"\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/proofoftrust21/satrank/pull/67","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/proofoftrust21%2Fsatrank/issues/67","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/67/packages"},{"uuid":"4373514879","node_id":"PR_kwDONc1GDc7X2euN","number":85,"state":"closed","title":"chore(deps): bump the python-dependencies group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":["Jakan-Kink"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-04T07:18:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-04T01:18:47.000Z","updated_at":"2026-05-04T07:18:51.000Z","time_to_close":21603,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-dependencies","update_count":5,"packages":[{"name":"greenlet","old_version":"3.4.0","new_version":"3.5.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"psycopg","old_version":"3.3.3","new_version":"3.3.4","repository_url":"https://github.com/psycopg/psycopg"},{"name":"stash-graphql-client","old_version":"0.12.1","new_version":"0.12.4","repository_url":"https://github.com/Jakan-Kink/stash-graphql-client"},{"name":"ruff","old_version":"0.15.11","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"respx","old_version":"0.22.0","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.4.0` | `3.5.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.3.3` | `3.3.4` |\n| [stash-graphql-client](https://github.com/Jakan-Kink/stash-graphql-client) | `0.12.1` | `0.12.4` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.11` | `0.15.12` |\n| [respx](https://github.com/lundberg/respx) | `0.22.0` | `0.23.1` |\n\n\nUpdates `greenlet` from 3.4.0 to 3.5.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.5.0 (2026-04-27)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove the \u003ccode\u003eatexit\u003c/code\u003e callback. This callback caused greenlet APIs\nto become unavailable far too soon during interpreter shutdown. Now\nthey remain available while all \u003ccode\u003eatexit\u003c/code\u003e callbacks run. Sometime\nafter \u003ccode\u003ePy_IsFinalizing\u003c/code\u003e becomes true, they may begin misbehaving.\nBecause the order in which C extensions are finalized is undefined,\nC extensions that are sensitive to this need to check the results of\nthat function before invoking greenlet APIs. As a convenience,\n\u003ccode\u003ePyGreenlet_GetCurrent\u003c/code\u003e sets an exception and returns \u003ccode\u003eNULL\u003c/code\u003e\nwhen this happens (and \u003ccode\u003egreenlet.getcurrent\u003c/code\u003e begins returning\n\u003ccode\u003eNone\u003c/code\u003e); other greenlet C API functions have undefined behaviour.\nMethods invoked directly on pre-existing \u003ccode\u003egreenlet.greenlet\u003c/code\u003e\nobjects will continue to function at least until the greenlet C\nextension has been garbage collected and finalized.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003ePR 508 \u0026lt;https://github.com/python-greenlet/greenlet/pull/508\u0026gt;\u003c/code\u003e_.\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/c7acc72000572811d6462ebe01733a974f194990\"\u003e\u003ccode\u003ec7acc72\u003c/code\u003e\u003c/a\u003e Preparing release 3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/d08f99bf40801c5d57af6e13631c0ba68300ecf7\"\u003e\u003ccode\u003ed08f99b\u003c/code\u003e\u003c/a\u003e CHANGES: Update link from \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/507\"\u003e#507\u003c/a\u003e to more full description in \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/508\"\u003e#508\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/fd3391e33cedc7a17a86059f18dfbec2b3a320bd\"\u003e\u003ccode\u003efd3391e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/508\"\u003e#508\u003c/a\u003e from python-greenlet/issue507-remove-atexit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/004e1e9bd5c0fa49c66b733c28ec92a3cd41fe09\"\u003e\u003ccode\u003e004e1e9\u003c/code\u003e\u003c/a\u003e Remove the atexit callback.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/b784a69a0da6abd6e66b15a2c1415d272fdd1292\"\u003e\u003ccode\u003eb784a69\u003c/code\u003e\u003c/a\u003e Back to development: 3.4.1\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python-greenlet/greenlet/compare/3.4.0...3.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg` from 3.3.3 to 3.3.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.4\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix possible spurious connection timeout in systems with very long uptimes\nin C extension (:ticket:\u003ccode\u003e[#1280](https://github.com/psycopg/psycopg/issues/1280)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix client-side adaptation of enums whose name require quotes\n(:ticket:\u003ccode\u003e[#1298](https://github.com/psycopg/psycopg/issues/1298)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eConsistently populate \u003ccode\u003e~Cursor.statusmessage\u003c/code\u003e after \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1302](https://github.com/psycopg/psycopg/issues/1302)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.3.3\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRetain \u003ccode\u003eError.pgconn\u003c/code\u003e when raising a single exception for multiple connection\nattempt errors (:ticket:\u003ccode\u003e[#1246](https://github.com/psycopg/psycopg/issues/1246)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eReturn a proper error when server sends \u003ccode\u003eErrorResponse\u003c/code\u003e for a \u003ccode\u003eSync\u003c/code\u003e after\na \u003ccode\u003eParse\u003c/code\u003e (:ticket:\u003ccode\u003e[#1260](https://github.com/psycopg/psycopg/issues/1260)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.3.2\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix race condition in adapters at startup (:ticket:\u003ccode\u003e[#1230](https://github.com/psycopg/psycopg/issues/1230)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003ePsycopg 3.3.1\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix iteration on server-side cursors (:ticket:\u003ccode\u003e[#1226](https://github.com/psycopg/psycopg/issues/1226)\u003c/code\u003e).\u003c/p\u003e\n\u003ch2\u003ePsycopg 3.3.0\u003c/h2\u003e\n\u003cp\u003e.. rubric:: New top-level features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etemplate strings queries \\\u0026lt;template-strings\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1054](https://github.com/psycopg/psycopg/issues/1054)\u003c/code\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/psycopg/psycopg/commit/83f110367cdd249cc0a352e2246ecea9e878e5a0\"\u003e\u003ccode\u003e83f1103\u003c/code\u003e\u003c/a\u003e chore: bump psycopg_pool package version to 3.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/18287707f56a2b4f0817d9c23d137f5d69db6e31\"\u003e\u003ccode\u003e1828770\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/8be14bbc18f74de7652606d2777e0950ec804cc0\"\u003e\u003ccode\u003e8be14bb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1301\"\u003e#1301\u003c/a\u003e from oliverhaas/fix/sync-pool-open-race\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/aee0bf2659db77c31154acf583baf0a98675c192\"\u003e\u003ccode\u003eaee0bf2\u003c/code\u003e\u003c/a\u003e fix(pool): fix race in the construction of the sync ConnectionPool lock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/bc4d30375557fc32f2a91c2f8b75a5d21711ea89\"\u003e\u003ccode\u003ebc4d303\u003c/code\u003e\u003c/a\u003e chore(deps): bump the actions group across 1 directory with 4 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/785379f196fc17473d312451a1fd4a06ef8dc895\"\u003e\u003ccode\u003e785379f\u003c/code\u003e\u003c/a\u003e fix: retain statusmessage after executemany with returning=False\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/8882a73871e65727549657085922d043a106127c\"\u003e\u003ccode\u003e8882a73\u003c/code\u003e\u003c/a\u003e perf: do less if X in Y: return Y[X] for cache-like patterns\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/2f785395c189e709da5fa74a02d3797bfb9db6a4\"\u003e\u003ccode\u003e2f78539\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1299\"\u003e#1299\u003c/a\u003e from dvarrazzo/fix-camel-enum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/37ef1dc4e6d19dc4af062d45a63243cb96a261c2\"\u003e\u003ccode\u003e37ef1dc\u003c/code\u003e\u003c/a\u003e test: skip test on crdb depending on precise regtype behaviour\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/7f2f1d159df881260e3086fd61ea71343ca98e58\"\u003e\u003ccode\u003e7f2f1d1\u003c/code\u003e\u003c/a\u003e fix: fix client-side representation of enums requiring quotes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg/compare/3.3.3...3.3.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `stash-graphql-client` from 0.12.1 to 0.12.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Jakan-Kink/stash-graphql-client/releases\"\u003estash-graphql-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.12.4\u003c/h2\u003e\n\u003ch2\u003e[0.12.4] - 2026-05-03\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/Jakan-Kink/stash-graphql-client/issues/28\"\u003e#28\u003c/a\u003e\u003c/strong\u003e (multi-field path, fully closes): \u003ccode\u003eFoo(id='X', name='Y')\u003c/code\u003e direct\nconstruction on a cache hit now also returns the cached entity with\nmerged field values, matching \u003ccode\u003efrom_graphql\u003c/code\u003e semantics. Previously,\nonly the id-only \u003ccode\u003eFoo(id='X')\u003c/code\u003e shape was identity-map-aware via\n\u003ccode\u003e_StashObjectMeta.__call__\u003c/code\u003e; multi-field calls fell through to\n\u003ccode\u003esuper().__call__()\u003c/code\u003e, where Pydantic v2's \u003ccode\u003e__init__\u003c/code\u003e discarded the\nwrap validator's cached return value and emitted the residual\n\u003ccode\u003eUserWarning: A custom validator is returning a value other than 'self'\u003c/code\u003e.\nThe metaclass now routes multi-field cache hits through\n\u003ccode\u003eself.model_validate(kwargs)\u003c/code\u003e, which honors the wrap validator's merge\nreturn cleanly. Behavior change: callers who relied on multi-field\n\u003ccode\u003e__init__\u003c/code\u003e returning a \u003cem\u003efresh\u003c/em\u003e instance (instead of the cached one)\nwill now receive the cached entity — consistent with the rest of the\nidentity-map contract.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.12.3\u003c/h2\u003e\n\u003ch2\u003e[0.12.3] - 2026-05-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eStashEntityStore._fetch_filter_query_relationship\u003c/code\u003e now paginates\ninternally (\u003ccode\u003eSTUB_QUERY_BATCH = 1000\u003c/code\u003e per page) instead of issuing a\nsingle \u003ccode\u003eper_page: -1\u003c/code\u003e query. Each page-fetch awaits, so concurrent\npopulates of different relationships actually interleave on the event\nloop instead of being serialized behind one giant deserialization.\u003c/li\u003e\n\u003cli\u003eRelationship-populate queries are now parameterized GraphQL — entity\nID, page, and per_page are bound as \u003ccode\u003e$id: ID!\u003c/code\u003e, \u003ccode\u003e$page: Int!\u003c/code\u003e,\n\u003ccode\u003e$per_page: Int!\u003c/code\u003e variables. Closes a latent f-string injection at\n\u003ccode\u003evalue: [\u0026quot;{entity.id}\u0026quot;]\u003c/code\u003e that was unsafe for UUID-tagged unsaved\nentities or any ID containing quote/brace characters.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIdentity-map wrap validator now short-circuits when input data carries\nonly \u003ccode\u003e{id, __typename}\u003c/code\u003e — eliminates the per-item Pydantic-init tax\n(\u003ccode\u003esignature_no_eval\u003c/code\u003e over four \u003ccode\u003ePrivateAttr\u003c/code\u003e \u003ccode\u003edefault_factory\u003c/code\u003e\ncallables) for stub-shaped relationship-populate responses. Previously,\npopulating a 5,000-scene relationship paid the full handler+merge cycle\nper item even though every item was a cache hit with nothing to merge.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_fetch_filter_query_relationship\u003c/code\u003e is now idempotent: a second call\nfor the same \u003ccode\u003e(entity, field)\u003c/code\u003e returns the existing list without\nre-issuing a network request, gated on \u003ccode\u003e_received_fields\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eConcurrent populates of the same relationship are serialized via\nper-\u003ccode\u003e(type_name, id, field_name)\u003c/code\u003e \u003ccode\u003easyncio.Lock\u003c/code\u003e with double-check\npost-acquire — the second waiter sees the field already populated\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/Jakan-Kink/stash-graphql-client/blob/main/CHANGELOG.md\"\u003estash-graphql-client's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.12.4] - 2026-05-03\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/Jakan-Kink/stash-graphql-client/issues/28\"\u003e#28\u003c/a\u003e\u003c/strong\u003e (multi-field path, fully closes): \u003ccode\u003eFoo(id='X', name='Y')\u003c/code\u003e direct\nconstruction on a cache hit now also returns the cached entity with\nmerged field values, matching \u003ccode\u003efrom_graphql\u003c/code\u003e semantics. Previously,\nonly the id-only \u003ccode\u003eFoo(id='X')\u003c/code\u003e shape was identity-map-aware via\n\u003ccode\u003e_StashObjectMeta.__call__\u003c/code\u003e; multi-field calls fell through to\n\u003ccode\u003esuper().__call__()\u003c/code\u003e, where Pydantic v2's \u003ccode\u003e__init__\u003c/code\u003e discarded the\nwrap validator's cached return value and emitted the residual\n\u003ccode\u003eUserWarning: A custom validator is returning a value other than 'self'\u003c/code\u003e.\nThe metaclass now routes multi-field cache hits through\n\u003ccode\u003eself.model_validate(kwargs)\u003c/code\u003e, which honors the wrap validator's merge\nreturn cleanly. Behavior change: callers who relied on multi-field\n\u003ccode\u003e__init__\u003c/code\u003e returning a \u003cem\u003efresh\u003c/em\u003e instance (instead of the cached one)\nwill now receive the cached entity — consistent with the rest of the\nidentity-map contract.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.12.3] - 2026-05-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eStashEntityStore._fetch_filter_query_relationship\u003c/code\u003e now paginates\ninternally (\u003ccode\u003eSTUB_QUERY_BATCH = 1000\u003c/code\u003e per page) instead of issuing a\nsingle \u003ccode\u003eper_page: -1\u003c/code\u003e query. Each page-fetch awaits, so concurrent\npopulates of different relationships actually interleave on the event\nloop instead of being serialized behind one giant deserialization.\u003c/li\u003e\n\u003cli\u003eRelationship-populate queries are now parameterized GraphQL — entity\nID, page, and per_page are bound as \u003ccode\u003e$id: ID!\u003c/code\u003e, \u003ccode\u003e$page: Int!\u003c/code\u003e,\n\u003ccode\u003e$per_page: Int!\u003c/code\u003e variables. Closes a latent f-string injection at\n\u003ccode\u003evalue: [\u0026quot;{entity.id}\u0026quot;]\u003c/code\u003e that was unsafe for UUID-tagged unsaved\nentities or any ID containing quote/brace characters.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIdentity-map wrap validator now short-circuits when input data carries\nonly \u003ccode\u003e{id, __typename}\u003c/code\u003e — eliminates the per-item Pydantic-init tax\n(\u003ccode\u003esignature_no_eval\u003c/code\u003e over four \u003ccode\u003ePrivateAttr\u003c/code\u003e \u003ccode\u003edefault_factory\u003c/code\u003e\ncallables) for stub-shaped relationship-populate responses. Previously,\npopulating a 5,000-scene relationship paid the full handler+merge cycle\nper item even though every item was a cache hit with nothing to merge.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_fetch_filter_query_relationship\u003c/code\u003e is now idempotent: a second call\nfor the same \u003ccode\u003e(entity, field)\u003c/code\u003e returns the existing list without\nre-issuing a network request, gated on \u003ccode\u003e_received_fields\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eConcurrent populates of the same relationship are serialized via\nper-\u003ccode\u003e(type_name, id, field_name)\u003c/code\u003e \u003ccode\u003easyncio.Lock\u003c/code\u003e with double-check\npost-acquire — the second waiter sees the field already populated\nand exits without a duplicate paginated fetch.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_process_list_relationship\u003c/code\u003e return annotation corrected to\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/Jakan-Kink/stash-graphql-client/commit/0983924eb13282aa52f32fa570700346d065925a\"\u003e\u003ccode\u003e0983924\u003c/code\u003e\u003c/a\u003e chore: release v0.12.4 — close \u003ca href=\"https://redirect.github.com/Jakan-Kink/stash-graphql-client/issues/28\"\u003e#28\u003c/a\u003e multi-field \u003cstrong\u003einit\u003c/strong\u003e warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Jakan-Kink/stash-graphql-client/commit/bd753e8665d720744df4ad87f3bd33d4377d5cea\"\u003e\u003ccode\u003ebd753e8\u003c/code\u003e\u003c/a\u003e fix: route multi-field cache hits through model_validate, fully closes \u003ca href=\"https://redirect.github.com/Jakan-Kink/stash-graphql-client/issues/28\"\u003e#28\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Jakan-Kink/stash-graphql-client/commit/cb0fc9d2b8f044ae9cd562ab1342b5c91d474a01\"\u003e\u003ccode\u003ecb0fc9d\u003c/code\u003e\u003c/a\u003e chore: hoist inline imports to top, restore noqa on circular metadata import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Jakan-Kink/stash-graphql-client/commit/32a24b613ef8de741b7c9ff18ecbf1f55957c6e8\"\u003e\u003ccode\u003e32a24b6\u003c/code\u003e\u003c/a\u003e chore: release v0.12.3 — paginated populate + identity-map stub fast path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Jakan-Kink/stash-graphql-client/commit/5138d6bc4933b3f28a9d43db1474eb07116fc619\"\u003e\u003ccode\u003e5138d6b\u003c/code\u003e\u003c/a\u003e perf: paginate filter-query populate, parameterize variables, lock concurrent...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Jakan-Kink/stash-graphql-client/commit/3c446436647b44aec5b105abca07ebb0b6b5642e\"\u003e\u003ccode\u003e3c44643\u003c/code\u003e\u003c/a\u003e perf: stub-data fast path in identity-map wrap validator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Jakan-Kink/stash-graphql-client/commit/321c2e3e5395eed5a6458a0f380ab63359f9483a\"\u003e\u003ccode\u003e321c2e3\u003c/code\u003e\u003c/a\u003e chore: deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Jakan-Kink/stash-graphql-client/commit/fc0eadc8b33a7bdaf50263cb2bb6d89154991a59\"\u003e\u003ccode\u003efc0eadc\u003c/code\u003e\u003c/a\u003e ## [0.12.2] - 2026-04-28\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Jakan-Kink/stash-graphql-client/compare/v0.12.1...v0.12.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.11 to 0.15.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.12\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.12/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\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/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\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/astral-sh/ruff/commit/66f93cf7ed4d36325f35a452e4afa28268fbcd28\"\u003e\u003ccode\u003e66f93cf\u003c/code\u003e\u003c/a\u003e Bump 0.15.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24815\"\u003e#24815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/476a4d02e8e3b6c157ac39979d8b698a1b6baa91\"\u003e\u003ccode\u003e476a4d0\u003c/code\u003e\u003c/a\u003e [ty] Complete support for more detailed diagnostics on possibly unbound error...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed669eab30095d6c51fe6cdef6050fb01276bcb3\"\u003e\u003ccode\u003eed669ea\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e73d952e43feb51356ee740c5a973fce81396ff6\"\u003e\u003ccode\u003ee73d952\u003c/code\u003e\u003c/a\u003e [ty] Include inferred type in \u003ccode\u003einvalid-key\u003c/code\u003e concise diagnostic for union/inte...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/80feb29b31cd98c093316df2e0407b0c70c01b55\"\u003e\u003ccode\u003e80feb29\u003c/code\u003e\u003c/a\u003e [ty] report only dead annotation-only locals as unused (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24811\"\u003e#24811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0fbf2bc27336a3d17d39af52cf89b78dcda8c7c8\"\u003e\u003ccode\u003e0fbf2bc\u003c/code\u003e\u003c/a\u003e Drop deprecated license classifier (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24808\"\u003e#24808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/43b174cc7f2fcb0080bb1d4843cd4bf6b72bbe27\"\u003e\u003ccode\u003e43b174c\u003c/code\u003e\u003c/a\u003e [ty] Infer lambda parameter types with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24317\"\u003e#24317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4f449ae4a2377569330a5ab94799d389357b5a3f\"\u003e\u003ccode\u003e4f449ae\u003c/code\u003e\u003c/a\u003e [ty] Add error context for intersection types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24772\"\u003e#24772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5b4e753acb46e96ad408e4904c15308e33efe307\"\u003e\u003ccode\u003e5b4e753\u003c/code\u003e\u003c/a\u003e [ty] Add support for goto in literal enum member inlay hint (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24792\"\u003e#24792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e7cc76275a758ce1c636ea1c2d091fd576aac794\"\u003e\u003ccode\u003ee7cc762\u003c/code\u003e\u003c/a\u003e [ty] Add error context for TypedDict assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24790\"\u003e#24790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.11...0.15.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `respx` from 0.22.0 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.23.0\u003c/h2\u003e\n\u003ch2\u003e0.23.0 (7th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.22.0...0.23.1\"\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 \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Jakan-Kink/fansly-scraper/pull/85","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jakan-Kink%2Ffansly-scraper/issues/85","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/85/packages"},{"uuid":"4363971644","node_id":"PR_kwDOR6O1Oc7XZabp","number":14,"state":"open","title":"deps(python): bump the all-dependencies group with 6 updates","user":"dependabot[bot]","labels":["🐍 python","📦 dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-01T10:34:33.000Z","updated_at":"2026-05-01T10:36:58.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(python): bump","group_name":"all-dependencies","update_count":6,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"respx","old_version":"0.22.0","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"},{"name":"ruff","old_version":"0.15.9","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.20.0","new_version":"1.20.2","repository_url":"https://github.com/python/mypy"},{"name":"sphinx-autodoc-typehints","old_version":"3.10.0","new_version":"3.10.2","repository_url":"https://github.com/tox-dev/sphinx-autodoc-typehints"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-dependencies group with 6 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [respx](https://github.com/lundberg/respx) | `0.22.0` | `0.23.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.9` | `0.15.12` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `1.20.2` |\n| [sphinx-autodoc-typehints](https://github.com/tox-dev/sphinx-autodoc-typehints) | `3.10.0` | `3.10.2` |\n\nUpdates `pydantic` from 2.12.5 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\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/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\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/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\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/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `respx` from 0.22.0 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.23.0\u003c/h2\u003e\n\u003ch2\u003e0.23.0 (7th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.22.0...0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.9 to 0.15.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.12\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.12/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\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/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\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/astral-sh/ruff/commit/66f93cf7ed4d36325f35a452e4afa28268fbcd28\"\u003e\u003ccode\u003e66f93cf\u003c/code\u003e\u003c/a\u003e Bump 0.15.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24815\"\u003e#24815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/476a4d02e8e3b6c157ac39979d8b698a1b6baa91\"\u003e\u003ccode\u003e476a4d0\u003c/code\u003e\u003c/a\u003e [ty] Complete support for more detailed diagnostics on possibly unbound error...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed669eab30095d6c51fe6cdef6050fb01276bcb3\"\u003e\u003ccode\u003eed669ea\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e73d952e43feb51356ee740c5a973fce81396ff6\"\u003e\u003ccode\u003ee73d952\u003c/code\u003e\u003c/a\u003e [ty] Include inferred type in \u003ccode\u003einvalid-key\u003c/code\u003e concise diagnostic for union/inte...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/80feb29b31cd98c093316df2e0407b0c70c01b55\"\u003e\u003ccode\u003e80feb29\u003c/code\u003e\u003c/a\u003e [ty] report only dead annotation-only locals as unused (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24811\"\u003e#24811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0fbf2bc27336a3d17d39af52cf89b78dcda8c7c8\"\u003e\u003ccode\u003e0fbf2bc\u003c/code\u003e\u003c/a\u003e Drop deprecated license classifier (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24808\"\u003e#24808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/43b174cc7f2fcb0080bb1d4843cd4bf6b72bbe27\"\u003e\u003ccode\u003e43b174c\u003c/code\u003e\u003c/a\u003e [ty] Infer lambda parameter types with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24317\"\u003e#24317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4f449ae4a2377569330a5ab94799d389357b5a3f\"\u003e\u003ccode\u003e4f449ae\u003c/code\u003e\u003c/a\u003e [ty] Add error context for intersection types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24772\"\u003e#24772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5b4e753acb46e96ad408e4904c15308e33efe307\"\u003e\u003ccode\u003e5b4e753\u003c/code\u003e\u003c/a\u003e [ty] Add support for goto in literal enum member inlay hint (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24792\"\u003e#24792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e7cc76275a758ce1c636ea1c2d091fd576aac794\"\u003e\u003ccode\u003ee7cc762\u003c/code\u003e\u003c/a\u003e [ty] Add error context for TypedDict assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24790\"\u003e#24790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.9...0.15.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.20.0 to 1.20.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.20.2\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse WAL with SQLite cache and fix close (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21154\"\u003e21154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust SQLite journal mode (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21217\"\u003e21217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrectly aggregate narrowing information on parent expressions (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21206\"\u003e21206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression related to generic callables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21208\"\u003e21208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression by avoiding widening types in some contexts (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21242\"\u003e21242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix slicing in non-strict optional mode (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21282\"\u003e21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emypyc: Fix match statement semantics for \u0026quot;or\u0026quot; pattern (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21156\"\u003e21156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emypyc: Fix issue with module dunder attributes (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21275\"\u003e21275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInitial support for Python 3.15.0a8 (Marc Mueller, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21255\"\u003e21255\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003cli\u003eNeil Schemenauer\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\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/python/mypy/commit/145a062651b5f9996b75ef32b7040bd2e885ed82\"\u003e\u003ccode\u003e145a062\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/81cd49215c288eacb987de066f02daff2553b7c7\"\u003e\u003ccode\u003e81cd492\u003c/code\u003e\u003c/a\u003e Fix slicing with nonstrict optional (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21282\"\u003e#21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/908d3441eecbaa2a6193165317177db834d7ca1a\"\u003e\u003ccode\u003e908d344\u003c/code\u003e\u003c/a\u003e [mypyc] Set dunder attrs when adding module to sys.modules (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21275\"\u003e#21275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/ba28610fac9d2b33be210ca8dcfe4bc47b7af424\"\u003e\u003ccode\u003eba28610\u003c/code\u003e\u003c/a\u003e Initial support for Python 3.15.0a8 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21255\"\u003e#21255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/7b0e09f48dbd3717ed008a273cd17e8e960c2037\"\u003e\u003ccode\u003e7b0e09f\u003c/code\u003e\u003c/a\u003e Fix match statement semantics for \u0026quot;or\u0026quot; pattern (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21156\"\u003e#21156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/92b74f226de62f7505f5ef5cb158e8ec9c58b8b7\"\u003e\u003ccode\u003e92b74f2\u003c/code\u003e\u003c/a\u003e Avoid widening types in conditional_types (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21242\"\u003e#21242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0dcbfaa40b0e360a16baea9cf851955375d91b54\"\u003e\u003ccode\u003e0dcbfaa\u003c/code\u003e\u003c/a\u003e Fix is_overlapping_types for generic callables (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21208\"\u003e#21208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/210f518dede35292033ef0d387847406a0ccef8f\"\u003e\u003ccode\u003e210f518\u003c/code\u003e\u003c/a\u003e Correctly aggregate narrowing information on parent expressions (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21206\"\u003e#21206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c34530e53a10e385d8b0f1af4baa88a596b5ceaa\"\u003e\u003ccode\u003ec34530e\u003c/code\u003e\u003c/a\u003e Only set journal mode in coordinator (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21217\"\u003e#21217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/79a3ec6d01b56a27c00e9b3320c2b1d4d73a77f9\"\u003e\u003ccode\u003e79a3ec6\u003c/code\u003e\u003c/a\u003e Use WAL with SQLite cache, fix close (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21154\"\u003e#21154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.20.0...v1.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autodoc-typehints` from 3.10.0 to 3.10.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/releases\"\u003esphinx-autodoc-typehints's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(ivar): tolerate malformed :ivar field entries by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/684\"\u003etox-dev/sphinx-autodoc-typehints#684\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.10.1...3.10.2\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.10.1...3.10.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.10.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(resolver): surface hints for \u003ca href=\"https://github.com/no\"\u003e\u003ccode\u003e@​no\u003c/code\u003e\u003c/a\u003e_type_check targets by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/681\"\u003etox-dev/sphinx-autodoc-typehints#681\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.10.0...3.10.1\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.10.0...3.10.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/tox-dev/sphinx-autodoc-typehints/commit/974fabb705774d0a64aa6fc072b4eb96b15a924d\"\u003e\u003ccode\u003e974fabb\u003c/code\u003e\u003c/a\u003e 🐛 fix(ivar): tolerate malformed :ivar field entries (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/684\"\u003e#684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/c1bbf4e9f1155ba9a8290defe81cbf4cbf51aab5\"\u003e\u003ccode\u003ec1bbf4e\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/682\"\u003e#682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/098cce3910cb1d9fa3c940c5022028d21425005b\"\u003e\u003ccode\u003e098cce3\u003c/code\u003e\u003c/a\u003e 🐛 fix(resolver): surface hints for \u003ca href=\"https://github.com/no\"\u003e\u003ccode\u003e@​no\u003c/code\u003e\u003c/a\u003e_type_check targets (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/681\"\u003e#681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.10.0...3.10.2\"\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 \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Dyl-M/liquipydia/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dyl-M%2Fliquipydia/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"},{"uuid":"4334598472","node_id":"PR_kwDOQHH1dc7V5psG","number":991,"state":"open","title":"build(deps): bump the python-minors group with 7 updates","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-04-27T09:22:57.000Z","updated_at":"2026-04-27T09:22:58.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"python-minors","update_count":7,"packages":[{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"respx","old_version":"0.22.0","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"},{"name":"anyio","old_version":"4.11.0","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"playwright","old_version":"1.49.0","new_version":"1.58.0","repository_url":"https://github.com/microsoft/playwright-python"},{"name":"pytest-playwright","old_version":"0.5.2","new_version":"0.7.2","repository_url":"https://github.com/microsoft/playwright-pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minors group with 7 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [respx](https://github.com/lundberg/respx) | `0.22.0` | `0.23.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.13.0` |\n| [playwright](https://github.com/microsoft/playwright-python) | `1.49.0` | `1.58.0` |\n| [pytest-playwright](https://github.com/microsoft/playwright-pytest) | `0.5.2` | `0.7.2` |\n\nUpdates `httpx` from 0.27.2 to 0.28.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/httpx/releases\"\u003ehttpx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.28.1\u003c/h2\u003e\n\u003ch2\u003e0.28.1 (6th December, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL case where \u003ccode\u003everify=False\u003c/code\u003e together with client side certificates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.28.0\u003c/h2\u003e\n\u003ch2\u003e0.28.0 (28th November, 2024)\u003c/h2\u003e\n\u003cp\u003eThe 0.28 release includes a limited set of deprecations.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003eWe are working towards a simplified SSL configuration API.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFor users of the standard \u003ccode\u003everify=True\u003c/code\u003e or \u003ccode\u003everify=False\u003c/code\u003e cases, or \u003ccode\u003everify=\u0026lt;ssl_context\u0026gt;\u003c/code\u003e case this should require no changes. The following cases have been deprecated...\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003everify\u003c/code\u003e argument as a string argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ecert\u003c/code\u003e argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOur revised \u003ca href=\"https://github.com/encode/httpx/blob/HEAD/docs/advanced/ssl.md\"\u003eSSL documentation\u003c/a\u003e covers how to implement the same behaviour with a more constrained API.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe following changes are also included\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eproxies\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eapp\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eJSON request bodies use a compact representation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReview URL percent escape sets, based on WHATWG spec. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3371\"\u003e#3371\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/encode/httpx/issues/3373\"\u003e#3373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ecertifi\u003c/code\u003e and \u003ccode\u003ehttpcore\u003c/code\u003e are only imported if required. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003esocks5h\u003c/code\u003e as a valid proxy scheme. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3178\"\u003e#3178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCleanup \u003ccode\u003eRequest()\u003c/code\u003e method signature in line with \u003ccode\u003eclient.request()\u003c/code\u003e and \u003ccode\u003ehttpx.request()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: When passing \u003ccode\u003eparams={}\u003c/code\u003e, always strictly update rather than merge with an existing querystring. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\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/encode/httpx/blob/master/CHANGELOG.md\"\u003ehttpx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.28.1 (6th December, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL case where \u003ccode\u003everify=False\u003c/code\u003e together with client side certificates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.28.0 (28th November, 2024)\u003c/h2\u003e\n\u003cp\u003eBe aware that the default \u003cem\u003eJSON request bodies now use a more compact representation\u003c/em\u003e. This is generally considered a prefered style, tho may require updates to test suites.\u003c/p\u003e\n\u003cp\u003eThe 0.28 release includes a limited set of deprecations...\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003eWe are working towards a simplified SSL configuration API.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFor users of the standard \u003ccode\u003everify=True\u003c/code\u003e or \u003ccode\u003everify=False\u003c/code\u003e cases, or \u003ccode\u003everify=\u0026lt;ssl_context\u0026gt;\u003c/code\u003e case this should require no changes. The following cases have been deprecated...\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003everify\u003c/code\u003e argument as a string argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ecert\u003c/code\u003e argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOur revised \u003ca href=\"https://github.com/encode/httpx/blob/master/docs/advanced/ssl.md\"\u003eSSL documentation\u003c/a\u003e covers how to implement the same behaviour with a more constrained API.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe following changes are also included\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eproxies\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eapp\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eJSON request bodies use a compact representation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReview URL percent escape sets, based on WHATWG spec. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3371\"\u003e#3371\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/encode/httpx/issues/3373\"\u003e#3373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ecertifi\u003c/code\u003e and \u003ccode\u003ehttpcore\u003c/code\u003e are only imported if required. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003esocks5h\u003c/code\u003e as a valid proxy scheme. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3178\"\u003e#3178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCleanup \u003ccode\u003eRequest()\u003c/code\u003e method signature in line with \u003ccode\u003eclient.request()\u003c/code\u003e and \u003ccode\u003ehttpx.request()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: When passing \u003ccode\u003eparams={}\u003c/code\u003e, always strictly update rather than merge with an existing querystring. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\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/encode/httpx/commit/26d48e0634e6ee9cdc0533996db289ce4b430177\"\u003e\u003ccode\u003e26d48e0\u003c/code\u003e\u003c/a\u003e Version 0.28.1 (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3445\"\u003e#3445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/89599a9541af14bcf906fc4ed58ccbdf403802ba\"\u003e\u003ccode\u003e89599a9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003everify=False\u003c/code\u003e, \u003ccode\u003ecert=...\u003c/code\u003e case. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3442\"\u003e#3442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/8ecb86f0d74ffc52d4663214fae9526bee89358d\"\u003e\u003ccode\u003e8ecb86f\u003c/code\u003e\u003c/a\u003e Add test for request params behavior changes (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3440\"\u003e#3440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/0cb7e5a2e736628e2f506d259fcf0d48cd2bde82\"\u003e\u003ccode\u003e0cb7e5a\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 11 updates (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3434\"\u003e#3434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/15e21e9ea3cad4f06e22a7e704aabefdf43d2e29\"\u003e\u003ccode\u003e15e21e9\u003c/code\u003e\u003c/a\u003e Updating deprecated docstring Client() class (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3426\"\u003e#3426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/80960fa31918d7663c3f4c3ad61661cf0e80628f\"\u003e\u003ccode\u003e80960fa\u003c/code\u003e\u003c/a\u003e Version 0.28.0. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3419\"\u003e#3419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/a33c87852b8a0dddc65e5f739af1e0a6fca4b91f\"\u003e\u003ccode\u003ea33c878\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eextensions\u003c/code\u003e type annotation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3380\"\u003e#3380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/ce7e14da27abba6574be9b3ea7cd5990556a9343\"\u003e\u003ccode\u003ece7e14d\u003c/code\u003e\u003c/a\u003e Error on verify as str. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3418\"\u003e#3418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/47f4a96ffaaaa07dca1614409549b5d7a6e7af49\"\u003e\u003ccode\u003e47f4a96\u003c/code\u003e\u003c/a\u003e Handle empty zstd responses (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3412\"\u003e#3412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/189fc4bcbe5f314128775dec66a616ac9a31ad48\"\u003e\u003ccode\u003e189fc4b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md, fix typo(s) (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/httpx/compare/0.27.2...0.28.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\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/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-timeout` from 2.3.1 to 2.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/ddabc934535081a5bf9ba7c9ca5b494aeaf8f665\"\u003e\u003ccode\u003eddabc93\u003c/code\u003e\u003c/a\u003e Add python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/617b1b6f0ab74517b92a4966b6db9e509d987972\"\u003e\u003ccode\u003e617b1b6\u003c/code\u003e\u003c/a\u003e Prepare release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/2e96621ee1b61057438c0f8c5b158eddc31654c5\"\u003e\u003ccode\u003e2e96621\u003c/code\u003e\u003c/a\u003e Change error message to clearly relate it to pytest-timeout (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-timeout/issues/180\"\u003e#180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/733b26b5d3b6f1c86876339f336cd827dc7d1a0c\"\u003e\u003ccode\u003e733b26b\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/fa5fd451afa3e7e676c7a31a9e7b058dabf0988b\"\u003e\u003ccode\u003efa5fd45\u003c/code\u003e\u003c/a\u003e Add support sys.monitoring\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/3d41ba8042ab1d07613572d95853dcc1c3602880\"\u003e\u003ccode\u003e3d41ba8\u003c/code\u003e\u003c/a\u003e Update README.rst with pytest-xdist 3.0.2 news\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/935f51cf0931dbbee8162e89b53289f1f43df499\"\u003e\u003ccode\u003e935f51c\u003c/code\u003e\u003c/a\u003e Add missing Python 3.12 trove classifier\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-timeout/compare/2.3.1...2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `respx` from 0.22.0 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.23.0\u003c/h2\u003e\n\u003ch2\u003e0.23.0 (7th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.22.0...0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.11.0 to 4.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.13.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ettl\u003c/code\u003e parameter to the \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e wrapper (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1073\"\u003e#1073\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWidened the type annotations of file I/O streams to accept \u003ccode\u003eIO[bytes]\u003c/code\u003e instead of just \u003ccode\u003eBinaryIO\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path\u003c/code\u003e not being compatible with Python 3.15 due to the removal of \u003ccode\u003epathlib.Path.is_reserved()\u003c/code\u003e and the addition of \u003ccode\u003epathlib.Path.__vfspath__()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1061\"\u003e#1061\u003c/a\u003e; PR by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the \u003ccode\u003eBrokenResourceError\u003c/code\u003e raised by the asyncio \u003ccode\u003eSocketStream\u003c/code\u003e not having the original exception as its cause (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1055\"\u003e#1055\u003c/a\u003e; PR by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the \u003ccode\u003eTypeError\u003c/code\u003e raised when using \u0026quot;func\u0026quot; as a parameter name in \u003ccode\u003epytest.mark.parametrize\u003c/code\u003e when using the pytest plugin (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1068\"\u003e#1068\u003c/a\u003e; PR by \u003ca href=\"https://github.com/JohnnyDeuss\"\u003e\u003ccode\u003e@​JohnnyDeuss\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the pytest plugin not running tests that had the \u003ccode\u003eanyio\u003c/code\u003e marker added programmatically via \u003ccode\u003epytest_collection_modifyitems\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/422\"\u003e#422\u003c/a\u003e; PR by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed cancellation exceptions leaking from a \u003ccode\u003eCancelScope\u003c/code\u003e on asyncio when they are contained in an exception group alongside non-cancellation exceptions (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1091\"\u003e#1091\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCondition.wait()\u003c/code\u003e not passing on a notification when the task is cancelled but already received a notification\u003c/li\u003e\n\u003cli\u003eFixed inverted condition in the process pool shutdown phase which would cause still-running pooled processes not to be terminated (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1074\"\u003e#1074\u003c/a\u003e; PR by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged all functions currently raising the private \u003ccode\u003eNoCurrentAsyncBackend\u003c/code\u003e exception (since v4.12.0) to instead raise the public \u003ccode\u003eNoEventLoopError\u003c/code\u003e exception (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with instance methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1042\"\u003e#1042\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for asyncio's \u003ca href=\"https://docs.python.org/3/library/asyncio-graph.html\"\u003etask call graphs\u003c/a\u003e on Python 3.14 and later when using AnyIO's task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded an asynchronous implementation of the \u003ccode\u003efunctools\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1001\"\u003e#1001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003euvloop=True\u003c/code\u003e on Windows via the \u003ca href=\"https://github.com/Vizonex/Winloop\"\u003ewinloop\u003c/a\u003e implementation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/960\"\u003e#960\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for use as a context manager to \u003ccode\u003eanyio.lowlevel.RunVar\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e__all__\u003c/code\u003e declarations to public submodules (\u003ccode\u003eanyio.lowlevel\u003c/code\u003e etc.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1009\"\u003e#1009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to set the token count of a \u003ccode\u003eCapacityLimiter\u003c/code\u003e to zero (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1019\"\u003e#1019\u003c/a\u003e; requires Python 3.10 or later when using Trio)\u003c/li\u003e\n\u003cli\u003eAdded parameters \u003ccode\u003ecase_sensitive\u003c/code\u003e and \u003ccode\u003erecurse_symlinks\u003c/code\u003e along with support for path-like objects to \u003ccode\u003eanyio.Path.glob()\u003c/code\u003e and \u003ccode\u003eanyio.Path.rglob()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1033\"\u003e#1033\u003c/a\u003e; PR by \u003ca href=\"https://github.com/northisup\"\u003e\u003ccode\u003e@​northisup\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped \u003ccode\u003esniffio\u003c/code\u003e as a direct dependency and added the \u003ccode\u003eget_available_backends()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not raising \u003ccode\u003eClosedResourceError\u003c/code\u003e and \u003ccode\u003eBrokenResourceError\u003c/code\u003e on asyncio. Previously, a non-AnyIO exception was raised in such cases (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not checkpointing before writing data on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1002\"\u003e#1002\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a race condition where cancelling a \u003ccode\u003eFuture\u003c/code\u003e from \u003ccode\u003eBlockingPortal.start_task_soon()\u003c/code\u003e would sometimes not cancel the async function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1011\"\u003e#1011\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the presence of the pytest plugin causing breakage with older versions of pytest (\u0026lt;= 6.1.2) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1028\"\u003e#1028\u003c/a\u003e; PR by \u003ca href=\"https://github.com/saper\"\u003e\u003ccode\u003e@​saper\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a rarely occurring \u003ccode\u003eRuntimeError: Set changed size during iteration\u003c/code\u003e while shutting down the process pool when using the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/985\"\u003e#985\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/agronholm/anyio/commit/afbe93ca9d0c447adf26e9c1715ac20870622bf2\"\u003e\u003ccode\u003eafbe93c\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/33bdf2e4b4f40c2df178123746147a6d2471808d\"\u003e\u003ccode\u003e33bdf2e\u003c/code\u003e\u003c/a\u003e Rearranged the changelog entries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/19e09e25bc5a23dd78a577d8c3909dd377057c78\"\u003e\u003ccode\u003e19e09e2\u003c/code\u003e\u003c/a\u003e Fixed inverted condition in _forcibly_shutdown_process_pool_on_exit (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1074\"\u003e#1074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9369d80b9e8292f2a892a9d5c73923c6a28aa08c\"\u003e\u003ccode\u003e9369d80\u003c/code\u003e\u003c/a\u003e Fixed Condition.wait() not handing over notification when cancelled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/6f122abdc6f6b166c6b6ac27d36d55cdf8fa08e8\"\u003e\u003ccode\u003e6f122ab\u003c/code\u003e\u003c/a\u003e Fixed cancellation exceptions leaking from a \u003ccode\u003eCancelScope\u003c/code\u003e on asyncio when th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/beaa45aff568a4020f2faf317321dd92f0e1f4a0\"\u003e\u003ccode\u003ebeaa45a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1097\"\u003e#1097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/602f6606dcf3f37702686a4f3e161328c537b07f\"\u003e\u003ccode\u003e602f660\u003c/code\u003e\u003c/a\u003e Widened type annotations to accept IO[bytes] in file streams\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b5dcd45170701a756ba634197398f05d4710cab3\"\u003e\u003ccode\u003eb5dcd45\u003c/code\u003e\u003c/a\u003e Added note about erasing the template\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d68670b3b4e0917d4caff2de082e03220f3e05a1\"\u003e\u003ccode\u003ed68670b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1090\"\u003e#1090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/fc17a22dd948e6a3d90d99908813f0010dfc3d2c\"\u003e\u003ccode\u003efc17a22\u003c/code\u003e\u003c/a\u003e tweak to_thread docs about abandon_on_cancel (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1088\"\u003e#1088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.11.0...4.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `playwright` from 1.49.0 to 1.58.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/playwright-python/releases\"\u003eplaywright's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.58.0\u003c/h2\u003e\n\u003ch2\u003eTrace Viewer Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNew 'system' theme option follows your OS dark/light mode preference\u003c/li\u003e\n\u003cli\u003eSearch functionality (Cmd/Ctrl+F) is now available in code editors\u003c/li\u003e\n\u003cli\u003eNetwork details panel has been reorganized for better usability\u003c/li\u003e\n\u003cli\u003eJSON responses are now automatically formatted for readability\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/cpAdm\"\u003e\u003ccode\u003e@​cpAdm\u003c/code\u003e\u003c/a\u003e for contributing these improvements!\u003c/p\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/python/docs/api/class-browsertype#browser-type-connect-over-cdp\"\u003ebrowser_type.connect_over_cdp()\u003c/a\u003e now accepts an \u003ccode\u003eis_local\u003c/code\u003e option. When set to \u003ccode\u003eTrue\u003c/code\u003e, it tells Playwright that it runs on the same host as the CDP server, enabling file system optimizations.\u003c/p\u003e\n\u003ch2\u003eBreaking Changes ⚠️\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved \u003ccode\u003e_react\u003c/code\u003e and \u003ccode\u003e_vue\u003c/code\u003e selectors. See \u003ca href=\"https://playwright.dev/python/docs/locators\"\u003elocators guide\u003c/a\u003e for alternatives.\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003e:light\u003c/code\u003e selector engine suffix. Use standard CSS selectors instead.\u003c/li\u003e\n\u003cli\u003eOption \u003ccode\u003edevtools\u003c/code\u003e from \u003ca href=\"https://playwright.dev/python/docs/api/class-browsertype#browser-type-launch\"\u003ebrowser_type.launch()\u003c/a\u003e has been removed. Use \u003ccode\u003eargs=['--auto-open-devtools-for-tabs']\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eRemoved macOS 13 support for WebKit. We recommend to upgrade your macOS version, or keep using an older Playwright version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBrowser Versions\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChromium 145.0.7632.6\u003c/li\u003e\n\u003cli\u003eMozilla Firefox 146.0.1\u003c/li\u003e\n\u003cli\u003eWebKit 26.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis version was also tested against the following stable channels:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGoogle Chrome 144\u003c/li\u003e\n\u003cli\u003eMicrosoft Edge 144\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.57.0\u003c/h2\u003e\n\u003ch2\u003eChrome for Testing\u003c/h2\u003e\n\u003cp\u003eStarting with this release, Playwright switches from Chromium, to using \u003ca href=\"https://developer.chrome.com/blog/chrome-for-testing/\"\u003eChrome for Testing\u003c/a\u003e builds. Both headed and headless browsers are subject to this. Your tests should still be passing after upgrading to Playwright 1.57.\u003c/p\u003e\n\u003cp\u003eWe're expecting no functional changes to come from this switch. The biggest change is the new icon and title in your toolbar.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eIf you still see an unexpected behaviour change, please \u003ca href=\"https://github.com/microsoft/playwright/issues/new\"\u003efile an issue\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eOn Arm64 Linux, Playwright continues to use Chromium.\u003c/p\u003e\n\u003ch2\u003eBreaking Change\u003c/h2\u003e\n\u003cp\u003eAfter 3 years of being deprecated, we removed \u003ccode\u003epage.accessibility\u003c/code\u003e from our API. Please use other libraries such as \u003ca href=\"https://www.deque.com/axe/\"\u003eAxe\u003c/a\u003e if you need to test page accessibility. See our Node.js \u003ca href=\"https://playwright.dev/docs/accessibility-testing\"\u003eguide\u003c/a\u003e for integration with Axe.\u003c/p\u003e\n\u003ch2\u003eNew APIs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/python/docs/api/class-worker#worker-event-console\"\u003eworker.on(\u0026quot;console\u0026quot;)\u003c/a\u003e event is emitted when JavaScript within the worker calls one of console API methods, e.g. console.log or console.dir. \u003ca href=\"https://playwright.dev/python/docs/api/class-worker#worker-wait-for-event\"\u003eworker.expect_event()\u003c/a\u003e can be used to wait for it.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/python/docs/api/class-locator#locator-description\"\u003elocator.description()\u003c/a\u003e returns locator description previously set with \u003ca href=\"https://playwright.dev/python/docs/api/class-locator#locator-describe\"\u003elocator.describe()\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eNew option \u003ca href=\"https://playwright.dev/python/docs/api/class-locator#locator-click-option-steps\"\u003e\u003ccode\u003esteps\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://playwright.dev/python/docs/api/class-locator#locator-click\"\u003elocator.click()\u003c/a\u003e and \u003ca href=\"https://playwright.dev/python/docs/api/class-locator#locator-drag-to\"\u003elocator.drag_to()\u003c/a\u003e that configures the number of \u003ccode\u003emousemove\u003c/code\u003e events emitted while moving the mouse pointer to the target element.\u003c/li\u003e\n\u003cli\u003eNetwork requests issued by \u003ca href=\"https://playwright.dev/python/docs/service-workers#network-events-and-routing\"\u003eService Workers\u003c/a\u003e are now reported and can be routed through the \u003ca href=\"https://playwright.dev/python/docs/api/class-browsercontext\"\u003eBrowserContext\u003c/a\u003e, only in Chromium. You can opt out using the \u003ccode\u003ePLAYWRIGHT_DISABLE_SERVICE_WORKER_NETWORK\u003c/code\u003e environment variable.\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/microsoft/playwright-python/commit/47a5d35ef4f815a2021349f86ae391f7c20c02d6\"\u003e\u003ccode\u003e47a5d35\u003c/code\u003e\u003c/a\u003e chore: roll to 1.58.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/3026\"\u003e#3026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/d3f5438d53dc10657ec8c5859049069b3b3b281a\"\u003e\u003ccode\u003ed3f5438\u003c/code\u003e\u003c/a\u003e chore: throw FileNotFoundError for nonexistant files (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/3014\"\u003e#3014\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/731b5395c3bd8dd26b9317ec8e7599a29cf99547\"\u003e\u003ccode\u003e731b539\u003c/code\u003e\u003c/a\u003e chore: implement Request.service_worker (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/2d3075502f8d6e4574ae34f71b8f77f61d14903d\"\u003e\u003ccode\u003e2d30755\u003c/code\u003e\u003c/a\u003e chore: roll 1.57.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/3012\"\u003e#3012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/3d1b875a9cc7d975fefb3058022ed31068421950\"\u003e\u003ccode\u003e3d1b875\u003c/code\u003e\u003c/a\u003e chore: roll to 1.57.0-beta-1763718928000 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/3007\"\u003e#3007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/75ceca04b7f4b29c1c026130696568fca68c9e88\"\u003e\u003ccode\u003e75ceca0\u003c/code\u003e\u003c/a\u003e chore: update driver to 1.56.1 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/3002\"\u003e#3002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/f283da50d64ee896d0a148522b6c719b86b721f3\"\u003e\u003ccode\u003ef283da5\u003c/code\u003e\u003c/a\u003e devops: update ado owner (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/019df4b0ecbd8f14154b9ddfbc0b33a3a48c5f96\"\u003e\u003ccode\u003e019df4b\u003c/code\u003e\u003c/a\u003e fix: prevent ProtocolCallback memory leak during tracing (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2977\"\u003e#2977\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2980\"\u003e#2980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/4fb9e0701cbfb7a1da0971b073c593ed44ad0f80\"\u003e\u003ccode\u003e4fb9e07\u003c/code\u003e\u003c/a\u003e chore: add dupe sync tests for 1.56 roll (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2988\"\u003e#2988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/f4ad602401631461f48256ef76f24231992639b0\"\u003e\u003ccode\u003ef4ad602\u003c/code\u003e\u003c/a\u003e fix: remove duplicate callback addition (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright-python/compare/v1.49.0...v1.58.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-playwright` from 0.5.2 to 0.7.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/playwright-pytest/releases\"\u003epytest-playwright's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.7.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump django from 4.2.22 to 4.2.24 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/292\"\u003emicrosoft/playwright-pytest#292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop Python 3.9 by \u003ca href=\"https://github.com/mxschmitt\"\u003e\u003ccode\u003e@​mxschmitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/299\"\u003emicrosoft/playwright-pytest#299\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: support Pytest v9 by \u003ca href=\"https://github.com/mxschmitt\"\u003e\u003ccode\u003e@​mxschmitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/300\"\u003emicrosoft/playwright-pytest#300\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: check common name for incompatible plugin by \u003ca href=\"https://github.com/JamesYFC\"\u003e\u003ccode\u003e@​JamesYFC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/294\"\u003emicrosoft/playwright-pytest#294\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/JamesYFC\"\u003e\u003ccode\u003e@​JamesYFC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/294\"\u003emicrosoft/playwright-pytest#294\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microsoft/playwright-pytest/compare/v0.7.1...v0.7.2\"\u003ehttps://github.com/microsoft/playwright-pytest/compare/v0.7.1...v0.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.7.1\u003c/h2\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efix: use png screenshot type after Playwright v1.55.0 alignment by \u003ca href=\"https://github.com/mxschmitt\"\u003e\u003ccode\u003e@​mxschmitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/290\"\u003emicrosoft/playwright-pytest#290\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add async/sync compatibility check by \u003ca href=\"https://github.com/mecampbellsoup\"\u003e\u003ccode\u003e@​mecampbellsoup\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/282\"\u003emicrosoft/playwright-pytest#282\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/roberfi\"\u003e\u003ccode\u003e@​roberfi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/285\"\u003emicrosoft/playwright-pytest#285\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mecampbellsoup\"\u003e\u003ccode\u003e@​mecampbellsoup\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/282\"\u003emicrosoft/playwright-pytest#282\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microsoft/playwright-pytest/compare/v0.7.0...v0.7.1\"\u003ehttps://github.com/microsoft/playwright-pytest/compare/v0.7.0...v0.7.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.7.0\u003c/h2\u003e\n\u003cp\u003eAllow declaring \u003ccode\u003econnect_options\u003c/code\u003e fixture to connect to remote browsers.\u003c/p\u003e\n\u003ch2\u003ev0.6.2\u003c/h2\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edevops: publish wheels in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/261\"\u003emicrosoft/playwright-pytest#261\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cp\u003eFix conda publishing\u003c/p\u003e\n\u003ch2\u003ev0.6.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: pytest-playwright-asyncio as separate plugin in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/257\"\u003emicrosoft/playwright-pytest#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: expose output_path fixture in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/248\"\u003emicrosoft/playwright-pytest#248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop Python 3.8 in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/253\"\u003emicrosoft/playwright-pytest#253\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microsoft/playwright-pytest/compare/v0.5.2...v0.6.0\"\u003ehttps://github.com/microsoft/playwright-pytest/compare/v0.5.2...v0.6.0\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/microsoft/playwright-pytest/commit/b64ad1cf73527a0b60c5569a89825eb13561c897\"\u003e\u003ccode\u003eb64ad1c\u003c/code\u003e\u003c/a\u003e Upgrade EsrpRelease task version and update owners (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/1d6443081099178095ed5513ca159ef36e6a7bd7\"\u003e\u003ccode\u003e1d64430\u003c/code\u003e\u003c/a\u003e fix: check common name for incompatible plugin (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/294\"\u003e#294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/1657ed276e71c448830959bbbb013cc767bf406f\"\u003e\u003ccode\u003e1657ed2\u003c/code\u003e\u003c/a\u003e chore: support Pytest v9 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/5f48b7895be11a9ea5f6bb5282c7eb1dd77ae999\"\u003e\u003ccode\u003e5f48b78\u003c/code\u003e\u003c/a\u003e chore: drop Python 3.9 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/299\"\u003e#299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/c1af305a0026b506919448d2d85ed51a20e5d37f\"\u003e\u003ccode\u003ec1af305\u003c/code\u003e\u003c/a\u003e chore(deps): bump django from 4.2.22 to 4.2.24 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/292\"\u003e#292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/44ca9711e0c145127f2cfc4729801ccc7ed7a033\"\u003e\u003ccode\u003e44ca971\u003c/code\u003e\u003c/a\u003e devops: fix AzDO publishing pipeline (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/291\"\u003e#291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/37fc15616b08ba5e0fcc0a550a8a3a6b33656b0a\"\u003e\u003ccode\u003e37fc156\u003c/code\u003e\u003c/a\u003e fix: use png screenshot type after Playwright v1.55.0 alignment (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/290\"\u003e#290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/48e68b793b4e045006c8236c12b4ccff89f40c86\"\u003e\u003ccode\u003e48e68b7\u003c/code\u003e\u003c/a\u003e fix: throw if both async/sync pytest-playwright plugins are loaded (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/29e723ffc265252560c58bb577c2b8a4963f54b6\"\u003e\u003ccode\u003e29e723f\u003c/code\u003e\u003c/a\u003e test: do not depend on example.com (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/f667863890a660ae4cb180cd53fda66e762ddb5b\"\u003e\u003ccode\u003ef667863\u003c/code\u003e\u003c/a\u003e test: fix 'test_is_able_to_set_expect_timeout_via_conftest' tests (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright-pytest/compare/v0.5.2...v0.7.2\"\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 \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Wolf-Achtung/api-ki-backend-neu/pull/991","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wolf-Achtung%2Fapi-ki-backend-neu/issues/991","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/991/packages"},{"uuid":"4323931542","node_id":"PR_kwDORx3mos7VYkSK","number":21,"state":"open","title":"build(deps-dev): Update respx requirement from \u003e=0.22.0 to \u003e=0.23.1","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-04-24T15:27:57.000Z","updated_at":"2026-04-24T15:27:58.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev): Update","packages":[{"name":"respx","old_version":"\u003e=0.22.0","new_version":"\u003e=0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [respx](https://github.com/lundberg/respx) 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/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.21.1] - 2024-03-27\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efiles\u003c/code\u003e pattern not handling \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eBytesIO\u003c/code\u003e, thanks \u003ca href=\"https://github.com/pierremonico\"\u003e\u003ccode\u003e@​pierremonico\u003c/code\u003e\u003c/a\u003e for input\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.22.0...0.23.1\"\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/ZoltyMat/pi-key/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZoltyMat%2Fpi-key/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"},{"uuid":"4315416663","node_id":"PR_kwDOR6S1x87U8oRn","number":63,"state":"closed","title":"deps(deps): bump the minor-and-patch group across 1 directory with 27 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-11T07:22:35.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-23T10:55:54.000Z","updated_at":"2026-05-11T07:22:38.000Z","time_to_close":1542401,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"minor-and-patch","update_count":27,"packages":[{"name":"fastapi","old_version":"0.115.0","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.30.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"asyncpg","old_version":"0.29.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"arq","old_version":"0.26.3","new_version":"0.28.0","repository_url":"https://github.com/python-arq/arq"},{"name":"curl-cffi","old_version":"0.7.3","new_version":"0.15.0","repository_url":"https://github.com/lexiforest/curl_cffi"},{"name":"camoufox","old_version":"0.4.4","new_version":"0.4.11","repository_url":"https://github.com/daijro/camoufox"},{"name":"patchright","old_version":"1.52.5","new_version":"1.59.1","repository_url":"https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python"},{"name":"pydantic","old_version":"2.10.0","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"python-levenshtein","old_version":"0.25.0","new_version":"0.27.3","repository_url":"https://github.com/rapidfuzz/python-Levenshtein"},{"name":"tldextract","old_version":"5.1.0","new_version":"5.3.1","repository_url":"https://github.com/john-kurkowski/tldextract"},{"name":"celery","old_version":"5.4.0","new_version":"5.6.3","repository_url":"https://github.com/celery/celery"},{"name":"sqlalchemy","old_version":"2.0.30","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"},{"name":"imagehash","old_version":"4.3.1","new_version":"4.3.2","repository_url":"https://github.com/JohannesBuchner/imagehash"},{"name":"psycopg2-binary","old_version":"2.9.9","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pydantic-settings","old_version":"2.5.2","new_version":"2.14.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"sentry-sdk","old_version":"2.22.0","new_version":"2.58.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"prometheus-client","old_version":"0.21.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"fakeredis","old_version":"2.26.1","new_version":"2.35.1","repository_url":"https://github.com/cunla/fakeredis-py"},{"name":"moto","old_version":"5.0.0","new_version":"5.2.0","repository_url":"https://github.com/getmoto/moto"},{"name":"testcontainers","old_version":"4.9.0","new_version":"4.14.2","repository_url":"https://github.com/testcontainers/testcontainers-python"},{"name":"respx","old_version":"0.21.1","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"mypy","old_version":"1.11.0","new_version":"1.20.2","repository_url":"https://github.com/python/mypy"},{"name":"ruff","old_version":"0.6.0","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pip-audit","old_version":"2.7.3","new_version":"2.10.0","repository_url":"https://github.com/pypa/pip-audit"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-and-patch group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.0` | `0.136.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.30.0` | `0.46.0` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.29.0` | `0.31.0` |\n| [arq](https://github.com/python-arq/arq) | `0.26.3` | `0.28.0` |\n| [curl-cffi](https://github.com/lexiforest/curl_cffi) | `0.7.3` | `0.15.0` |\n| [camoufox](https://github.com/daijro/camoufox) | `0.4.4` | `0.4.11` |\n| [patchright](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python) | `1.52.5` | `1.59.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.10.0` | `2.13.3` |\n| [python-levenshtein](https://github.com/rapidfuzz/python-Levenshtein) | `0.25.0` | `0.27.3` |\n| [tldextract](https://github.com/john-kurkowski/tldextract) | `5.1.0` | `5.3.1` |\n| [celery](https://github.com/celery/celery) | `5.4.0` | `5.6.3` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.30` | `2.0.49` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n| [imagehash](https://github.com/JohannesBuchner/imagehash) | `4.3.1` | `4.3.2` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.9` | `2.9.12` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.5.2` | `2.14.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.22.0` | `2.58.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.21.0` | `0.25.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [fakeredis](https://github.com/cunla/fakeredis-py) | `2.26.1` | `2.35.1` |\n| [moto](https://github.com/getmoto/moto) | `5.0.0` | `5.2.0` |\n| [testcontainers](https://github.com/testcontainers/testcontainers-python) | `4.9.0` | `4.14.2` |\n| [respx](https://github.com/lundberg/respx) | `0.21.1` | `0.23.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [mypy](https://github.com/python/mypy) | `1.11.0` | `1.20.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.6.0` | `0.15.12` |\n| [pip-audit](https://github.com/pypa/pip-audit) | `2.7.3` | `2.10.0` |\n\n\nUpdates `fastapi` from 0.115.0 to 0.136.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.3\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/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.0...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.30.0 to 0.46.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.46.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2915\"\u003eKludex/uvicorn#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2916\"\u003eKludex/uvicorn#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2917\"\u003eKludex/uvicorn#2917\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.45.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2903\"\u003eKludex/uvicorn#2903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2905\"\u003eKludex/uvicorn#2905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2907\"\u003eKludex/uvicorn#2907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2906\"\u003eKludex/uvicorn#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert empty context for ASGI runs by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2911\"\u003eKludex/uvicorn#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2912\"\u003eKludex/uvicorn#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e) by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2913\"\u003eKludex/uvicorn#2913\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/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2870\"\u003eKludex/uvicorn#2870\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.44.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2888\"\u003eKludex/uvicorn#2888\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.43.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.42.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.46.0 (April 23, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2916\"\u003e#2916\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2917\"\u003e#2917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.45.0 (April 21, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2913\"\u003e#2913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Explicitly start ASGI run with empty context\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2906\"\u003e#2906\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.44.0 (April 6, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0 (April 3, 2026)\u003c/h2\u003e\n\u003cp\u003eYou can quit Uvicorn now. We heard you, \u003ca href=\"https://github.com/pamelafox\"\u003e\u003ccode\u003e@​pamelafox\u003c/code\u003e\u003c/a\u003e - all 47 of your Ctrl+C's (thanks for flagging it, and thanks to \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e for the fix 🙏). \u003ca href=\"https://x.com/pamelafox/status/2039097686155227623\"\u003eSee the tweet\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.42.0 (March 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\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/Kludex/uvicorn/commit/b224045f5900b7f766743bcb16ba9fc3adea2606\"\u003e\u003ccode\u003eb224045\u003c/code\u003e\u003c/a\u003e Version 0.46.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2918\"\u003e#2918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7375b5bf66d962186d663e85615d4b4d956bf880\"\u003e\u003ccode\u003e7375b5b\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d438fb16fe2d23c7bbc2ca7094645cff1f116458\"\u003e\u003ccode\u003ed438fb1\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3e6b96446653d0156434bce529a14c80764c9eda\"\u003e\u003ccode\u003e3e6b964\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2c423bd82be169459ea254a61476de34767e0326\"\u003e\u003ccode\u003e2c423bd\u003c/code\u003e\u003c/a\u003e Version 0.45.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7f027f8e25e47668a9c2ce8b5c21b35054c48d02\"\u003e\u003ccode\u003e7f027f8\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/73a80c3cc87de269ed016e584a25e585ae6f2b44\"\u003e\u003ccode\u003e73a80c3\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/45c0b568d38e9bf4f2f036bc2d79eb98b0e72f72\"\u003e\u003ccode\u003e45c0b56\u003c/code\u003e\u003c/a\u003e Revert empty context for ASGI runs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/850d92656de0cb5859ee5f6ba252e19ad3d38989\"\u003e\u003ccode\u003e850d926\u003c/code\u003e\u003c/a\u003e Raise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2906\"\u003e#2906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/fdcacb4b83bc686ea1ba9e50ffe5b8cfe49b3e00\"\u003e\u003ccode\u003efdcacb4\u003c/code\u003e\u003c/a\u003e Accept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.30.0...0.46.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asyncpg` from 0.29.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.30.0\u003c/h2\u003e\n\u003cp\u003eSupport Python 3.13 and PostgreSQL 17.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImplement GSSAPI authentication\n(by \u003ca href=\"https://github.com/eltoder\"\u003e\u003ccode\u003e@​eltoder\u003c/code\u003e\u003c/a\u003e in 1d4e5680 for \u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1122\"\u003e#1122\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement SSPI authentication\n(by \u003ca href=\"https://github.com/eltoder\"\u003e\u003ccode\u003e@​eltoder\u003c/code\u003e\u003c/a\u003e in 1aab2094 for \u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1128\"\u003e#1128\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd initial typings\n(by \u003ca href=\"https://github.com/bryanforbes\"\u003e\u003ccode\u003e@​bryanforbes\u003c/code\u003e\u003c/a\u003e in d42432bf for \u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1127\"\u003e#1127\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow building with Cython 3\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/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.29.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `arq` from 0.26.3 to 0.28.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-arq/arq/releases\"\u003earq's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.28.0 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/522\"\u003epython-arq/arq#522\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-arq/arq/compare/v0.27.0...v0.28.0\"\u003ehttps://github.com/python-arq/arq/compare/v0.27.0...v0.28.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.27.0 2026-02-02\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13, remove advertised support for Python 3.8 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/514\"\u003epython-arq/arq#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply lint and format for Python 3.9 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/515\"\u003epython-arq/arq#515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse uv, update actions by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/516\"\u003epython-arq/arq#516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate project URLs by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/517\"\u003epython-arq/arq#517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eretry_on_error\u003c/code\u003e type annotation by \u003ca href=\"https://github.com/armicron\"\u003e\u003ccode\u003e@​armicron\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/446\"\u003epython-arq/arq#446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix wrong reference in \u003ccode\u003eRetry\u003c/code\u003e docstring by \u003ca href=\"https://github.com/PassionateBytes\"\u003e\u003ccode\u003e@​PassionateBytes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/507\"\u003epython-arq/arq#507\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/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/514\"\u003epython-arq/arq#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/armicron\"\u003e\u003ccode\u003e@​armicron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/446\"\u003epython-arq/arq#446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PassionateBytes\"\u003e\u003ccode\u003e@​PassionateBytes\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/507\"\u003epython-arq/arq#507\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-arq/arq/compare/v0.26.3...v0.27.0\"\u003ehttps://github.com/python-arq/arq/compare/v0.26.3...v0.27.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/python-arq/arq/blob/main/HISTORY.rst\"\u003earq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev0.28.0 (2026-04-16)\n....................\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/issues/522\"\u003e#522\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ev0.27.0 (2026-01-30)\n....................\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong reference in \u003ccode\u003eRetry\u003c/code\u003e docstring by \u003ca href=\"https://github.com/PassionateBytes\"\u003e\u003ccode\u003e@​PassionateBytes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/issues/507\"\u003e#507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix retry_on_error type annotation by \u003ca href=\"https://github.com/armicron\"\u003e\u003ccode\u003e@​armicron\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/issues/446\"\u003e#446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13, remove advertised support for Python 3.8 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/issues/514\"\u003e#514\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/python-arq/arq/commit/5ee4b48cf6faf4dc181f1ccb76dfb1bc1fedf9bf\"\u003e\u003ccode\u003e5ee4b48\u003c/code\u003e\u003c/a\u003e Prepare release 0.28.0 (\u003ca href=\"https://redirect.github.com/python-arq/arq/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-arq/arq/commit/5c725217832893c574e0bf215948c42d00d67bff\"\u003e\u003ccode\u003e5c72521\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/python-arq/arq/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-arq/arq/commit/fda407c4cb5ec2e6f2b13c2aa9671f86e7a0f8c5\"\u003e\u003ccode\u003efda407c\u003c/code\u003e\u003c/a\u003e Prepare release 0.27.0 (\u003ca href=\"https://redirect.github.com/python-arq/arq/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-arq/arq/commit/633bba3b464cc1f162d0272a073e1c04d2b9898d\"\u003e\u003ccode\u003e633bba3\u003c/code\u003e\u003c/a\u003e Fix wrong reference in \u003ccode\u003eRetry\u003c/code\u003e docstring (\u003ca href=\"https://redirect.github.com/python-arq/arq/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-arq/arq/commit/1ceb4351441b602e2d942daf57540adfe90acf38\"\u003e\u003ccode\u003e1ceb435\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eretry_on_error\u003c/code\u003e type annotation (\u003ca href=\"https://redirect.github.com/python-arq/arq/issues/446\"\u003e#446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-arq/arq/commit/2354d8f52982f6e29b9ba67fd4d7e6017099d7b8\"\u003e\u003ccode\u003e2354d8f\u003c/code\u003e\u003c/a\u003e Update project URLs (\u003ca href=\"https://redirect.github.com/python-arq/arq/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-arq/arq/commit/4c0602d1c49dfb364c333a3c3a3b062387c2a896\"\u003e\u003ccode\u003e4c0602d\u003c/code\u003e\u003c/a\u003e Use uv, update actions (\u003ca href=\"https://redirect.github.com/python-arq/arq/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-arq/arq/commit/4636c86bae2fb42796b60f578e7772f42c84a08a\"\u003e\u003ccode\u003e4636c86\u003c/code\u003e\u003c/a\u003e Apply lint and format for Python 3.9 (\u003ca href=\"https://redirect.github.com/python-arq/arq/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-arq/arq/commit/a8b4c1706548981eab217dc9256a837ebbe73975\"\u003e\u003ccode\u003ea8b4c17\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13, remove advertised support for Python 3.8 (\u003ca href=\"https://redirect.github.com/python-arq/arq/issues/514\"\u003e#514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-arq/arq/commit/0e3295b0dfda2899153a7012d642cdf077a463b7\"\u003e\u003ccode\u003e0e3295b\u003c/code\u003e\u003c/a\u003e [skip ci] add maintenance notice to readme\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python-arq/arq/compare/v0.26.3...v0.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `curl-cffi` from 0.7.3 to 0.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lexiforest/curl_cffi/releases\"\u003ecurl-cffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.15.0\u003c/h2\u003e\n\u003cp\u003e🎉 Another release with significant changes!\u003c/p\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ehttp/3 fingerprints, added for Chrome 145, 146 and Firefox 147. To verify http3 fingerprints, visit \u003ca href=\"https://fp.impersonate.pro\"\u003ehttps://fp.impersonate.pro\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ehttp/3 proxy support with socks5 udp proxy server.\u003c/li\u003e\n\u003cli\u003eNew CLI tool, just called \u003ccode\u003ecurl-cffi\u003c/code\u003e, easier http debugging for both humans and agents. See \u003ca href=\"https://curl-cffi.readthedocs.io/en/latest/cli/_index.html\"\u003edocs\u003c/a\u003e. We also added a \u003ca href=\"https://github.com/lexiforest/curl_cffi/blob/main/skills/imp-fetch/SKILL.md\"\u003eskill\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCompatibility optimization, curl_cffi is now fully static. Especially for macOS, no dependencies needed and compatible with macOS since 11.0.\u003c/li\u003e\n\u003cli\u003e⚠️ Security improvement. If you are accepting urls from others and returning the response to them, you are vulnerable to redirection-based SSRF. Disable \u003ccode\u003eallow_redirects\u003c/code\u003e or at lease set \u003ccode\u003eallow_redirects=\u0026quot;safe\u0026quot;\u003c/code\u003e, see the \u003ca href=\"https://github.com/lexiforest/curl_cffi/security/advisories/GHSA-qw2m-4pqf-rmpp\"\u003eadvisory\u003c/a\u003e and the \u003ca href=\"https://curl-cffi.readthedocs.io/en/latest/security.html#ssrf-protection\"\u003edocs\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePerformance optimization: WebSocket improvement and free-threading support.\u003c/li\u003e\n\u003cli\u003eAndroid is officially supported, closing a 3-years-old issue.\u003c/li\u003e\n\u003cli\u003eNew impersonation behaviors, the cookie header behavior and POST boundary are now made exactly the same as browsers. These are not part of tls or http binary fingerprints, but are exploited by WAFs, too.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe list of proxy vendors with udp sock5 support is very limited, so I set up 2 servers for testing. You can simply run:\u003c/p\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl-cffi get https://fp.impersonate.pro/api/http3 --proxy socks5://imp:curl-cffi@206.189.95.199:1080 --http3-only\r\ncurl-cffi get https://fp.impersonate.pro/api/http3 --proxy socks5://imp:curl-cffi@24.144.88.46:1080 --http3-only\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIf you need more udp socks5 servers from us, click the 👀 emoji to vote.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix some of the extension values being overwritten caused by applying… by \u003ca href=\"https://github.com/enter-a-new-username3\"\u003e\u003ccode\u003e@​enter-a-new-username3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/680\"\u003elexiforest/curl_cffi#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTypehint session return values and internal functions by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/664\"\u003elexiforest/curl_cffi#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd free threaded builds by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/697\"\u003elexiforest/curl_cffi#697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAsync WebSocket: Docs, Safety \u0026amp; Performance Improvements by \u003ca href=\"https://github.com/Sh3llcod3\"\u003e\u003ccode\u003e@​Sh3llcod3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/692\"\u003elexiforest/curl_cffi#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Android by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/699\"\u003elexiforest/curl_cffi#699\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd type hint for request responses by \u003ca href=\"https://github.com/MFTabriz\"\u003e\u003ccode\u003e@​MFTabriz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/690\"\u003elexiforest/curl_cffi#690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResponse hint fix for \u0026lt; 3.13 by \u003ca href=\"https://github.com/novitae\"\u003e\u003ccode\u003e@​novitae\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/546\"\u003elexiforest/curl_cffi#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix BufferError Crash by \u003ca href=\"https://github.com/Sh3llcod3\"\u003e\u003ccode\u003e@​Sh3llcod3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/700\"\u003elexiforest/curl_cffi#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWS: Small Optimizations by \u003ca href=\"https://github.com/Sh3llcod3\"\u003e\u003ccode\u003e@​Sh3llcod3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/702\"\u003elexiforest/curl_cffi#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for retrying by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/689\"\u003elexiforest/curl_cffi#689\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWS: Update Docs by \u003ca href=\"https://github.com/Sh3llcod3\"\u003e\u003ccode\u003e@​Sh3llcod3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/705\"\u003elexiforest/curl_cffi#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable http3 fingerprints by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/712\"\u003elexiforest/curl_cffi#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for loongarch64 by \u003ca href=\"https://github.com/wxpppp\"\u003e\u003ccode\u003e@​wxpppp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/716\"\u003elexiforest/curl_cffi#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake the CLI more useful by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/726\"\u003elexiforest/curl_cffi#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd option to mitigate SSRF by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/727\"\u003elexiforest/curl_cffi#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose http3 fingerprints customization by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/728\"\u003elexiforest/curl_cffi#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd body to response.request by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/710\"\u003elexiforest/curl_cffi#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix Makefile issue by \u003ca href=\"https://github.com/p9s\"\u003e\u003ccode\u003e@​p9s\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/655\"\u003elexiforest/curl_cffi#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for READFUNCTION by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/698\"\u003elexiforest/curl_cffi#698\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/enter-a-new-username3\"\u003e\u003ccode\u003e@​enter-a-new-username3\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/680\"\u003elexiforest/curl_cffi#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MFTabriz\"\u003e\u003ccode\u003e@​MFTabriz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/690\"\u003elexiforest/curl_cffi#690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wxpppp\"\u003e\u003ccode\u003e@​wxpppp\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/716\"\u003elexiforest/curl_cffi#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/p9s\"\u003e\u003ccode\u003e@​p9s\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/655\"\u003elexiforest/curl_cffi#655\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lexiforest/curl_cffi/compare/v0.14.0...v0.15.0\"\u003ehttps://github.com/lexiforest/curl_cffi/compare/v0.14.0...v0.15.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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/0e219c43701f955436ef4a20486a7237a417dbc6\"\u003e\u003ccode\u003e0e219c4\u003c/code\u003e\u003c/a\u003e cli: add --http3-only\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/21ca4f0e0fdc16401949dbd939c9e1c0973d6e85\"\u003e\u003ccode\u003e21ca4f0\u003c/code\u003e\u003c/a\u003e Optimize CLI output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/884fffd752c1ac1890f74eb87ef682b7a17f486a\"\u003e\u003ccode\u003e884fffd\u003c/code\u003e\u003c/a\u003e Bump version to 0.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/754b43d76ce07db943d656524ee8c2432e99b74e\"\u003e\u003ccode\u003e754b43d\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/6e61a25d13edfe062554310913c1fd1c19b9e5af\"\u003e\u003ccode\u003e6e61a25\u003c/code\u003e\u003c/a\u003e Add support for READFUNCTION (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/698\"\u003e#698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/5eb13bc91f2a6f5014d163ea9c0b89a3b70c8cab\"\u003e\u003ccode\u003e5eb13bc\u003c/code\u003e\u003c/a\u003e fix Makefile issue (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/39c046c548a490c2f2fed8c9c82ed6a5ab39ad05\"\u003e\u003ccode\u003e39c046c\u003c/code\u003e\u003c/a\u003e Store request body (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/710\"\u003e#710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/06237c9172815071678c920afb75dfd1ab6db32a\"\u003e\u003ccode\u003e06237c9\u003c/code\u003e\u003c/a\u003e Expose http3 fingerprints customization (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/5686baf38d6d5128b80b83573158ee1241dff4da\"\u003e\u003ccode\u003e5686baf\u003c/code\u003e\u003c/a\u003e Add option to mitigate SSRF (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/73b2b1694324a426ba8ddc61a602867d1d764552\"\u003e\u003ccode\u003e73b2b16\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lexiforest/curl_cffi/compare/v0.7.3...v0.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `camoufox` from 0.4.4 to 0.4.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/daijro/camoufox/releases\"\u003ecamoufox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eHardware Spoofing\u003c/h2\u003e\n\u003cp\u003eThis release has not been tested yet. Please don't use unless you know what you are doing :)\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\u003eSee full diff in \u003ca href=\"https://github.com/daijro/camoufox/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `patchright` from 1.52.5 to 1.59.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python/releases\"\u003epatchright's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.59.0\u003c/h2\u003e\n\u003cp\u003eThis is an automatic deployment in response to a new release of \u003ca href=\"https://github.com/microsoft/playwright-python\"\u003emicrosoft/playwright-python\u003c/a\u003e.\nThis Release is only used for Versioning.\u003c/p\u003e\n\u003ch2\u003ev1.58.0\u003c/h2\u003e\n\u003cp\u003eThis is an automatic deployment in response to a new release of \u003ca href=\"https://github.com/microsoft/playwright-python\"\u003emicrosoft/playwright-python\u003c/a\u003e.\nThis Release is only used for Versioning.\u003c/p\u003e\n\u003ch2\u003ev1.57.0\u003c/h2\u003e\n\u003cp\u003eThis is an automatic deployment in response to a new release of \u003ca href=\"https://github.com/microsoft/playwright-python\"\u003emicrosoft/playwright-python\u003c/a\u003e.\nThis Release is only used for Versioning.\u003c/p\u003e\n\u003ch2\u003ev1.56.0\u003c/h2\u003e\n\u003cp\u003eThis is an automatic deployment in response to a new release of \u003ca href=\"https://github.com/microsoft/playwright-python\"\u003emicrosoft/playwright-python\u003c/a\u003e.\nThis Release is only used for Versioning.\u003c/p\u003e\n\u003ch2\u003ev1.55.0\u003c/h2\u003e\n\u003cp\u003eThis is an automatic deployment in response to a new release of \u003ca href=\"https://github.com/microsoft/playwright-python\"\u003emicrosoft/playwright-python\u003c/a\u003e.\nThis Release is only used for Versioning.\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\u003eSee full diff in \u003ca href=\"https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.10.0 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\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/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\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/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.10.0...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-levenshtein` from 0.25.0 to 0.27.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/releases\"\u003epython-levenshtein's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 0.27.3\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 0.27.1\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix build with \u003ccode\u003escikit-build-core\u003c/code\u003e \u003ccode\u003ev0.11\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eupgrade to \u003ccode\u003eCython==3.0.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 0.26.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd missing mac os wheels\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 0.26.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for Python 3.13\u003c/li\u003e\n\u003cli\u003edrop support for Python 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 0.25.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix potentially incorrect results of \u003ccode\u003ejaro_winkler\u003c/code\u003e when using high prefix weights\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/rapidfuzz/python-Levenshtein/blob/main/HISTORY.md\"\u003epython-levenshtein's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev0.27.3\u003c/h3\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.27.1\u003c/h3\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003efix build with \u003ccode\u003escikit-build-core\u003c/code\u003e \u003ccode\u003ev0.11\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eupgrade to \u003ccode\u003eCython==3.0.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.26.1\u003c/h3\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eadd missing mac os wheels\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.26.0\u003c/h3\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for Python 3.13\u003c/li\u003e\n\u003cli\u003edrop support for Python 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.25.1\u003c/h3\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003efix potentially incorrect results of \u003ccode\u003ejaro_winkler\u003c/code\u003e when using high prefix weights\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/rapidfuzz/python-Levenshtein/commit/23fffc235b9290c3288ece63a9463d92b65fb17e\"\u003e\u003ccode\u003e23fffc2\u003c/code\u003e\u003c/a\u003e add support for python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/commit/e46eaff43c00aac3e80266b1a6c503af97bcc817\"\u003e\u003ccode\u003ee46eaff\u003c/code\u003e\u003c/a\u003e use pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/commit/3bbf7ec56df5c708977104827129767edebbd1f6\"\u003e\u003ccode\u003e3bbf7ec\u003c/code\u003e\u003c/a\u003e remove duplicated license information\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/commit/ec1a77524a8c7277cbcd3162cf6deaabfbfd9a9c\"\u003e\u003ccode\u003eec1a775\u003c/code\u003e\u003c/a\u003e rename license file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/commit/26cb183f4ef394af6c12817f09b3fbda33bb3499\"\u003e\u003ccode\u003e26cb183\u003c/code\u003e\u003c/a\u003e update to 0.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/commit/ff4cd4ea9b15c6d1c9ba79a2266fb7760879fc4c\"\u003e\u003ccode\u003eff4cd4e\u003c/code\u003e\u003c/a\u003e Update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/commit/3ba4bb30f8bda276e070e3416f6905d77ddde633\"\u003e\u003ccode\u003e3ba4bb3\u003c/code\u003e\u003c/a\u003e update installer version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/commit/abd121defa4d40aa1d3d65b5d768067c5ac602ed\"\u003e\u003ccode\u003eabd121d\u003c/code\u003e\u003c/a\u003e update Levenshtein version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/commit/bb6eff3005f180853b13e86356e103368c92c3e6\"\u003e\u003ccode\u003ebb6eff3\u003c/code\u003e\u003c/a\u003e tag 0.25.1\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/compare/v0.25.0...v0.27.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tldextract` from 5.1.0 to 5.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/john-kurkowski/tldextract/releases\"\u003etldextract's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.9 (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 + PyPy 3.11 (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up IP address search space with \u003ccode\u003eisdecimal()\u003c/code\u003e instead of \u003ccode\u003eisdigit()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/352\"\u003e#352\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDocs\n\u003cul\u003e\n\u003cli\u003eReorganize, dedupe, and shorten README (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\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/bmos\"\u003e\u003ccode\u003e@​bmos\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/pull/358\"\u003ejohn-kurkowski/tldextract#358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elliotwutingfeng\"\u003e\u003ccode\u003e@​elliotwutingfeng\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/john-kurkowski/tldextract/compare/5.3.0...5.3.1\"\u003ehttps://github.com/john-kurkowski/tldextract/compare/5.3.0...5.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeatures\n\u003cul\u003e\n\u003cli\u003eAdd result field \u003ccode\u003eregistry_suffix\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/344\"\u003e#344\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eTo complement the existing public suffix field \u003ccode\u003esuffix\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd result property \u003ccode\u003etop_domain_under_public_suffix\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd result property \u003ccode\u003etop_domain_under_registry_suffix\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eregistered_domain\u003c/code\u003e property\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003etop_domain_under_public_suffix\u003c/code\u003e instead, which has the same behavior\nbut a more accurate name\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eFix missing \u003ccode\u003ereverse_domain_name\u003c/code\u003e property in CLI \u003ccode\u003e--json\u003c/code\u003e output (\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/a545c67d87223616fc13e90692886b3ca9af18bb\"\u003e\u003ccode\u003ea545c67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMisc.\n\u003cul\u003e\n\u003cli\u003eExpand internal \u003ccode\u003esuffix_index\u003c/code\u003e return type to be richer than bools, and\ninclude the registry suffix during trie traversal\n(\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-kurkowski\"\u003e\u003ccode\u003e@​john-kurkowski\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/john-kurkowski/tldextract/compare/5.2.0...5.3.0\"\u003ehttps://github.com/john-kurkowski/tldextract/compare/5.2.0...5.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeatures\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ereverse_domain_name\u003c/code\u003e result property (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eExtend exported public interface with \u003ccode\u003eExtractResult\u003c/code\u003e and \u003ccode\u003eupdate\u003c/code\u003e (\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/36ff658c53b510c5d56f8af235c8b08ce3c512f5\"\u003e\u003ccode\u003e36ff658\u003c/code\u003e\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eThese were always meant to be public. Eases user import.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDocs\n\u003cul\u003e\n\u003cli\u003eDocument result fields\u003c/li\u003e\n\u003c/ul\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/john-kurkowski/tldextract/blob/master/CHANGELOG.md\"\u003etldextract's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.3.1 (2025-12-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.9 (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 + PyPy 3.11 (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up IP address search space with \u003ccode\u003eisdecimal()\u003c/code\u003e instead of \u003ccode\u003eisdigit()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/352\"\u003e#352\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDocs\n\u003cul\u003e\n\u003cli\u003eReorganize, dedupe, and shorten README (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.3.0 (2025-04-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeatures\n\u003cul\u003e\n\u003cli\u003eAdd result field \u003ccode\u003eregistry_suffix\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/344\"\u003e#344\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eTo complement the existing public suffix field \u003ccode\u003esuffix\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd result property \u003ccode\u003etop_domain_under_public_suffix\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd result property \u003ccode\u003etop_domain_under_registry_suffix\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eregistered_domain\u003c/code\u003e property\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003etop_domain_under_public_suffix\u003c/code\u003e instead, which has the same behavior\nbut a more accurate name\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eFix missing \u003ccode\u003ereverse_domain_name\u003c/code\u003e property in CLI \u003ccode\u003e--json\u003c/code\u003e output (\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/a545c67d87223616fc13e90692886b3ca9af18bb\"\u003e\u003ccode\u003ea545c67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMisc.\n\u003cul\u003e\n\u003cli\u003eExpand internal \u003ccode\u003esuffix_index\u003c/code\u003e return type to be richer than bools, and\ninclude the registry suffix during trie traversal\n(\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.2.0 (2025-04-07)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeatures\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ereverse_domain_name\u003c/code\u003e result property (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eExtend exported public interface with \u003ccode\u003eExtractResult\u003c/code\u003e and \u003ccode\u003eupdate\u003c/code\u003e (\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/36ff658c53b510c5d56f8af235c8b08ce3c512f5\"\u003e\u003ccode\u003e36ff658\u003c/code\u003e\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eThese were always meant to be public. Eases user import.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDocs\n\u003cul\u003e\n\u003cli\u003eDocument result fields\u003c/li\u003e\n\u003cli\u003eNote all return values\u003c/li\u003e\n\u003cli\u003eColocate usage in the usage section\u003c/li\u003e\n\u003cli\u003eLink to private domain docs\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMisc.\n\u003cul\u003e\n\u003cli\u003eUpdate bundled snapshot\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.3 (2024-11-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eReduce logging errors (\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/921a82523c0e4403d21d50b2c3410d9af43520ac\"\u003e\u003ccode\u003e921a825\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/340\"\u003e#340\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Python 3.13 (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate bundled snapshot\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDocs\n\u003cul\u003e\n\u003cli\u003eClarify how to use your own definitions\u003c/li\u003e\n\u003c/ul\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/john-kurkowski/tldextract/commit/361f12febf901ef48215d0380551d86c7f0608ac\"\u003e\u003ccode\u003e361f12f\u003c/code\u003e\u003c/a\u003e 5.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/34482ce70cb4ca7210d39fefb57b8b1ee34bc853\"\u003e\u003ccode\u003e34482ce\u003c/code\u003e\u003c/a\u003e Upgrade to newer setuptools-scm usage instructions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/b9a78148f1551c4f3c3d441c07cafd34207030cc\"\u003e\u003ccode\u003eb9a7814\u003c/code\u003e\u003c/a\u003e Fix license field deprecations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/e397b6cdff10e89cbf66e758c8fcfa31ede2dabd\"\u003e\u003ccode\u003ee397b6c\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.9 (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/77b10ba7fca31a827fc678dbff34897663f2f611\"\u003e\u003ccode\u003e77b10ba\u003c/code\u003e\u003c/a\u003e Support Python 3.14 + PyPy 3.11 (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/49c59d9f1ff9e25fce73ba8d9cde5274f7117c2b\"\u003e\u003ccode\u003e49c59d9\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Pin requests-file during typecheck\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/6e49ea583c85a80e82ae5554cd615e8ee305a026\"\u003e\u003ccode\u003e6e49ea5\u003c/code\u003e\u003c/a\u003e Reorganize, dedupe, and shorten README (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues...\n\n_Description has been truncated_","html_url":"https://github.com/PrajwalJahagirdar/hydrascraper/pull/63","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrajwalJahagirdar%2Fhydrascraper/issues/63","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/63/packages"},{"uuid":"4312885663","node_id":"PR_kwDONc1GDc7U0Wt6","number":76,"state":"closed","title":"chore(deps): bump respx from 0.22.0 to 0.23.1 in the python-dependencies group across 1 directory","user":"dependabot[bot]","labels":["dependencies"],"assignees":["Jakan-Kink"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-27T01:16:55.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-23T01:55:39.000Z","updated_at":"2026-04-27T01:16:57.000Z","time_to_close":343276,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"respx","old_version":"0.22.0","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":"the python-dependencies group across 1 directory","ecosystem":"pip"},"body":"Bumps the python-dependencies group with 1 update in the / directory: [respx](https://github.com/lundberg/respx).\n\nUpdates `respx` from 0.22.0 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.23.0\u003c/h2\u003e\n\u003ch2\u003e0.23.0 (7th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.22.0...0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e","html_url":"https://github.com/Jakan-Kink/fansly-scraper/pull/76","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jakan-Kink%2Ffansly-scraper/issues/76","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/76/packages"},{"uuid":"4293571694","node_id":"PR_kwDOIye5g87T1w3y","number":32,"state":"open","title":"chore(deps): bump the python-dependencies group with 14 updates","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-04-20T06:31:15.000Z","updated_at":"2026-04-20T06:32:37.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-dependencies","update_count":14,"packages":[{"name":"sqlmodel","old_version":"0.0.37","new_version":"0.0.38","repository_url":"https://github.com/fastapi/sqlmodel"},{"name":"duckdb","old_version":"1.4.4","new_version":"1.5.2","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"rich","old_version":"14.3.3","new_version":"15.0.0","repository_url":"https://github.com/Textualize/rich"},{"name":"textual","old_version":"8.0.2","new_version":"8.2.4","repository_url":"https://github.com/Textualize/textual"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"respx","old_version":"0.22.0","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [polars[database,pyarrow]](https://github.com/pola-rs/polars), [pandera[polars]](https://github.com/pandera-dev/pandera), [sqlmodel](https://github.com/fastapi/sqlmodel), [duckdb](https://github.com/duckdb/duckdb-python), [rich](https://github.com/Textualize/rich), [textual](https://github.com/Textualize/textual), [pytest](https://github.com/pytest-dev/pytest), [pytest-cov](https://github.com/pytest-dev/pytest-cov), [respx](https://github.com/lundberg/respx), [hypothesis](https://github.com/HypothesisWorks/hypothesis), [ruff](https://github.com/astral-sh/ruff), [ty](https://github.com/astral-sh/ty), [sqlfluff](https://github.com/sqlfluff/sqlfluff) and [sqlglot](https://github.com/tobymao/sqlglot) to permit the latest version.\nUpdates `polars[database,pyarrow]` to 1.40.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pola-rs/polars/releases\"\u003epolars[database,pyarrow]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePython Polars 1.40.0\u003c/h2\u003e\n\u003ch2\u003e🏆 Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd streaming support for grouped AsOf join (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27293\"\u003e#27293\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚠️ Deprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate support for dataframe interchange protocol (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27214\"\u003e#27214\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Performance improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCreate IR slice from expr slice pushdown (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27200\"\u003e#27200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd streaming support for grouped AsOf join (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27293\"\u003e#27293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid unnecessary rechunk when sorting already sorted DataFrame (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27264\"\u003e#27264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLower basic over() to streaming primitives (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27303\"\u003e#27303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLower \u003ccode\u003edrop_{nulls,nans}\u003c/code\u003e in streaming \u003ccode\u003egroup_by\u003c/code\u003e aggregations (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27296\"\u003e#27296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLower \u003ccode\u003eentropy\u003c/code\u003e to streaming reductions (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27174\"\u003e#27174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd native streaming \u003ccode\u003einterpolate\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27185\"\u003e#27185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStreaming \u003ccode\u003estrptime\u003c/code\u003e with \u003ccode\u003eformat=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27056\"\u003e#27056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLower \u003ccode\u003eskew\u003c/code\u003e / \u003ccode\u003ekurtosis\u003c/code\u003e to streaming aggregations (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27176\"\u003e#27176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePost apply pyarrow filter in Polars' engine instead of pyarrow (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27192\"\u003e#27192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003edrop_nulls().{first,last}()\u003c/code\u003e to \u003ccode\u003e{first,last}(ignore_nulls=True)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27187\"\u003e#27187\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlways process pyarrow scan in batches (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27183\"\u003e#27183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003ecut\u003c/code\u003e output \u003ccode\u003eEnum\u003c/code\u003e and mark as elementwise (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27173\"\u003e#27173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unused expression sorts (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27075\"\u003e#27075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse delta stats for mixed hive and non-hive predicate pushdown (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27102\"\u003e#27102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTake into account size per row in join sampling (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27098\"\u003e#27098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStreaming is_first_distinct and unique(maintain_order=True) (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27052\"\u003e#27052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStreaming \u003ccode\u003ecov\u003c/code\u003e and \u003ccode\u003ecorr\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27008\"\u003e#27008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd sorted unique node to streaming engine (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26990\"\u003e#26990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure Expr.append is lowered in streaming engine (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27022\"\u003e#27022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCollapse consecutive Sort nodes (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26965\"\u003e#26965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop \u003ccode\u003emaintain_order=True\u003c/code\u003e requirement in \u003ccode\u003esink_delta\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27007\"\u003e#27007\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e✨ Enhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eignore_nulls\u003c/code\u003e to \u003ccode\u003e{list,arr}.{any,all}\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27186\"\u003e#27186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLock-free memory manager with spill-to-disk and fully OOC multiplexer (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26774\"\u003e#26774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eis_unique\u003c/code\u003e to list/array dtypes (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27290\"\u003e#27290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStreaming pyarrow datasets sources (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27230\"\u003e#27230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003epl.merge_sorted\u003c/code\u003e operating on multiple frames (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27014\"\u003e#27014\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003egroup_by()\u003c/code\u003e without key exprs (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27141\"\u003e#27141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChange default scan/read_lines column name from \u0026quot;lines\u0026quot; to \u0026quot;line\u0026quot; (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27122\"\u003e#27122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake unnest() effective on all columns by default (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27029\"\u003e#27029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCollapse consecutive Sort nodes (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26965\"\u003e#26965\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003egroups\u003c/code\u003e to correct length for \u003ccode\u003eImplode\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27282\"\u003e#27282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix scan_csv missing_columns='insert' overwrote existing data with NULLs (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27297\"\u003e#27297\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/pola-rs/polars/commit/bf6a425f4ecdc53fd5d0c4b47ef4a08ca61f8d87\"\u003e\u003ccode\u003ebf6a425\u003c/code\u003e\u003c/a\u003e fix: Update \u003ccode\u003egroups\u003c/code\u003e to correct length for \u003ccode\u003eImplode\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27282\"\u003e#27282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/aeb677d8598fc3032458751b53bd04c0e1963401\"\u003e\u003ccode\u003eaeb677d\u003c/code\u003e\u003c/a\u003e test(python): Add regression test for instantiating polars DataFrame from pan...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/5fd657e420147284358e8388c389a566ae13ff38\"\u003e\u003ccode\u003e5fd657e\u003c/code\u003e\u003c/a\u003e docs: Add documentation for openlineage on-premises (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27334\"\u003e#27334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/fad784c03ada4eb23c75985eac3e254d6b5977bc\"\u003e\u003ccode\u003efad784c\u003c/code\u003e\u003c/a\u003e fix: Fix scan_csv missing_columns='insert' overwrote existing data with NULLs...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/bdf73dc7991754b7e4025a7760d3a0f7c7f2914c\"\u003e\u003ccode\u003ebdf73dc\u003c/code\u003e\u003c/a\u003e docs: Release page (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27335\"\u003e#27335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/f9dfa217361aa3ee9866a8532904d58668a6fcad\"\u003e\u003ccode\u003ef9dfa21\u003c/code\u003e\u003c/a\u003e perf: Create IR slice from expr slice pushdown (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27200\"\u003e#27200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/f81f8f8b1caef5d86d9adcf01ae18aa228dd38a1\"\u003e\u003ccode\u003ef81f8f8\u003c/code\u003e\u003c/a\u003e refactor(rust): Add generic tree traversal with edge value propagation (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27249\"\u003e#27249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/d1165c074ebfb3bc8a3a19efb21ce09cb34877e0\"\u003e\u003ccode\u003ed1165c0\u003c/code\u003e\u003c/a\u003e docs: Update uv pip install polars-on-premises cmd (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27330\"\u003e#27330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/4b216a89fc691a2ece5ca8511cc978e1aba2079f\"\u003e\u003ccode\u003e4b216a8\u003c/code\u003e\u003c/a\u003e perf: Add streaming support for grouped AsOf join (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27293\"\u003e#27293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/518b9a3f5da2403d5b20fe0feb7faa2a336eb68b\"\u003e\u003ccode\u003e518b9a3\u003c/code\u003e\u003c/a\u003e chore: Bump Python Polars version (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27315\"\u003e#27315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pola-rs/polars/compare/py-1.38.1...py-1.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandera[polars]` to 0.31.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandera-dev/pandera/releases\"\u003epandera[polars]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix pandera[polars] import without pandas by \u003ca href=\"https://github.com/cosmicBboy\"\u003e\u003ccode\u003e@​cosmicBboy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2291\"\u003eunionai-oss/pandera#2291\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1\"\u003ehttps://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.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/unionai-oss/pandera/commit/df7cb7d8282e20cca0fc13f166bb7d99e48c5a3f\"\u003e\u003ccode\u003edf7cb7d\u003c/code\u003e\u003c/a\u003e Fix pandera[polars] import without pandas (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2291\"\u003e#2291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/1921c1d56d7436dfc4592f1be8739a25ff7accd2\"\u003e\u003ccode\u003e1921c1d\u003c/code\u003e\u003c/a\u003e Rename test functions for clarity\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/0502361a191431b9e34520330afd65141b0af164\"\u003e\u003ccode\u003e0502361\u003c/code\u003e\u003c/a\u003e test(pyspark): add str_length regressions for issues \u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/1311\"\u003e#1311\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/1314\"\u003e#1314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/7773eb8626985f33b23c398389cee6f47497d1ed\"\u003e\u003ccode\u003e7773eb8\u003c/code\u003e\u003c/a\u003e fix: support Spark Connect DataFrame in cache_check_obj decorator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/52f9805fd6055aca1f907af32c5b8d481b98f247\"\u003e\u003ccode\u003e52f9805\u003c/code\u003e\u003c/a\u003e tests(mypy): add polars Column Decimal/Struct typing regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/e61e02ce7dc0b12b1248a5f1cc3e78f1480f336e\"\u003e\u003ccode\u003ee61e02c\u003c/code\u003e\u003c/a\u003e fix(geopandas): re-export errors in module \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/3d95fc16fe85734c2a47dd749ff529be351146ac\"\u003e\u003ccode\u003e3d95fc1\u003c/code\u003e\u003c/a\u003e fix(pandas): export errors in pandera.pandas public API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/1370d6d480e018443d7ca224e6344443dbd49261\"\u003e\u003ccode\u003e1370d6d\u003c/code\u003e\u003c/a\u003e docs: fix xarray guide link in banner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/356f1a6aefee572ebc6eafe77affb89c2bf0fa5a\"\u003e\u003ccode\u003e356f1a6\u003c/code\u003e\u003c/a\u003e docs: update xarray integration info for v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/99fbb48998308542e48047332693a14281d2da0b\"\u003e\u003ccode\u003e99fbb48\u003c/code\u003e\u003c/a\u003e fix(pandas): remove deprecated applymap from parser backend (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2281\"\u003e#2281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandera-dev/pandera/compare/v0.29.0...v0.31.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlmodel` from 0.0.37 to 0.0.38\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/sqlmodel/releases\"\u003esqlmodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.38\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix type annotation in \u003ccode\u003eSQLModel.__new__\u003c/code\u003e, avoid explicitly returning \u003ccode\u003eAny\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1846\"\u003e#1846\u003c/a\u003e by \u003ca href=\"https://github.com/carljm\"\u003e\u003ccode\u003e@​carljm\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003etuple_\u003c/code\u003e return type annotation. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1639\"\u003e#1639\u003c/a\u003e by \u003ca href=\"https://github.com/kakeruzoku\"\u003e\u003ccode\u003e@​kakeruzoku\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typos in \u003ccode\u003econtributing.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1842\"\u003e#1842\u003c/a\u003e by \u003ca href=\"https://github.com/GopalGB\"\u003e\u003ccode\u003e@​GopalGB\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove outdated Python 3.9 tutorial file. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1822\"\u003e#1822\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix ambiguous phrasing regarding \u003ccode\u003eHeroPublicWithTeam\u003c/code\u003e model. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1678\"\u003e#1678\u003c/a\u003e by \u003ca href=\"https://github.com/berkaykrc\"\u003e\u003ccode\u003e@​berkaykrc\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Handle external links \u003ccode\u003etarget=_blank\u003c/code\u003e and CSS automatically in JS and CSS. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1799\"\u003e#1799\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Document \u003ccode\u003e.in_()\u003c/code\u003e method. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/619\"\u003e#619\u003c/a\u003e by \u003ca href=\"https://github.com/masylum\"\u003e\u003ccode\u003e@​masylum\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix small typos in the documentation. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1641\"\u003e#1641\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1786\"\u003e#1786\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1845\"\u003e#1845\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.135.2 to 0.135.3. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1844\"\u003e#1844\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.6 to 0.3.8. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1829\"\u003e#1829\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1827\"\u003e#1827\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.135.1 to 0.135.2. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1828\"\u003e#1828\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e➕ Add a direct dependency on \u003ccode\u003etyping-extensions\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1815\"\u003e#1815\u003c/a\u003e by \u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.5 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1825\"\u003e#1825\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.6 to 0.15.7. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1826\"\u003e#1826\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.5 to 0.3.6. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1817\"\u003e#1817\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📌 Update internal dependency limits. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1809\"\u003e#1809\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.5 to 0.15.6. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1814\"\u003e#1814\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cairosvg from 2.8.2 to 2.9.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1813\"\u003e#1813\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump dorny/paths-filter from 3 to 4. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1812\"\u003e#1812\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump black from 26.3.0 to 26.3.1. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1811\"\u003e#1811\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.4 to 9.7.5. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1808\"\u003e#1808\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.4 to 0.3.5. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1807\"\u003e#1807\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump black from 26.1.0 to 26.3.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1803\"\u003e#1803\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.4 to 0.15.5. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1801\"\u003e#1801\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.3 to 9.7.4. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1797\"\u003e#1797\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump sqlalchemy from 2.0.47 to 2.0.48. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1793\"\u003e#1793\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.3 to 0.3.4. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1794\"\u003e#1794\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.134.0 to 0.135.1. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1795\"\u003e#1795\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.133.1 to 0.134.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1792\"\u003e#1792\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.2 to 0.15.4. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1790\"\u003e#1790\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact from 7 to 8. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1789\"\u003e#1789\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 6 to 7. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1788\"\u003e#1788\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.133.0 to 0.133.1. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1787\"\u003e#1787\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.2 to 9.7.3. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1782\"\u003e#1782\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.132.0 to 0.133.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1781\"\u003e#1781\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump sqlalchemy from 2.0.46 to 2.0.47. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1783\"\u003e#1783\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 8.4.2 to 9.0.2. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1780\"\u003e#1780\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocstrings[python] from 0.30.1 to 1.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1776\"\u003e#1776\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\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/fastapi/sqlmodel/blob/main/docs/release-notes.md\"\u003esqlmodel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.38 (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix type annotation in \u003ccode\u003eSQLModel.__new__\u003c/code\u003e, avoid explicitly returning \u003ccode\u003eAny\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1846\"\u003e#1846\u003c/a\u003e by \u003ca href=\"https://github.com/carljm\"\u003e\u003ccode\u003e@​carljm\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003etuple_\u003c/code\u003e return type annotation. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1639\"\u003e#1639\u003c/a\u003e by \u003ca href=\"https://github.com/kakeruzoku\"\u003e\u003ccode\u003e@​kakeruzoku\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typos in \u003ccode\u003econtributing.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1842\"\u003e#1842\u003c/a\u003e by \u003ca href=\"https://github.com/GopalGB\"\u003e\u003ccode\u003e@​GopalGB\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove outdated Python 3.9 tutorial file. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1822\"\u003e#1822\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix ambiguous phrasing regarding \u003ccode\u003eHeroPublicWithTeam\u003c/code\u003e model. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1678\"\u003e#1678\u003c/a\u003e by \u003ca href=\"https://github.com/berkaykrc\"\u003e\u003ccode\u003e@​berkaykrc\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Handle external links \u003ccode\u003etarget=_blank\u003c/code\u003e and CSS automatically in JS and CSS. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1799\"\u003e#1799\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Document \u003ccode\u003e.in_()\u003c/code\u003e method. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/619\"\u003e#619\u003c/a\u003e by \u003ca href=\"https://github.com/masylum\"\u003e\u003ccode\u003e@​masylum\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix small typos in the documentation. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1641\"\u003e#1641\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1786\"\u003e#1786\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1845\"\u003e#1845\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.135.2 to 0.135.3. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1844\"\u003e#1844\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.6 to 0.3.8. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1829\"\u003e#1829\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1827\"\u003e#1827\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.135.1 to 0.135.2. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1828\"\u003e#1828\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e➕ Add a direct dependency on \u003ccode\u003etyping-extensions\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1815\"\u003e#1815\u003c/a\u003e by \u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.5 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1825\"\u003e#1825\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.6 to 0.15.7. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1826\"\u003e#1826\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.5 to 0.3.6. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1817\"\u003e#1817\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📌 Update internal dependency limits. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1809\"\u003e#1809\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.5 to 0.15.6. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1814\"\u003e#1814\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cairosvg from 2.8.2 to 2.9.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1813\"\u003e#1813\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump dorny/paths-filter from 3 to 4. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1812\"\u003e#1812\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump black from 26.3.0 to 26.3.1. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1811\"\u003e#1811\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.4 to 9.7.5. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1808\"\u003e#1808\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.4 to 0.3.5. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1807\"\u003e#1807\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump black from 26.1.0 to 26.3.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1803\"\u003e#1803\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.4 to 0.15.5. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1801\"\u003e#1801\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.3 to 9.7.4. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1797\"\u003e#1797\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump sqlalchemy from 2.0.47 to 2.0.48. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1793\"\u003e#1793\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.3 to 0.3.4. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1794\"\u003e#1794\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.134.0 to 0.135.1. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1795\"\u003e#1795\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.133.1 to 0.134.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1792\"\u003e#1792\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.2 to 0.15.4. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1790\"\u003e#1790\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact from 7 to 8. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1789\"\u003e#1789\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 6 to 7. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1788\"\u003e#1788\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.133.0 to 0.133.1. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1787\"\u003e#1787\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.2 to 9.7.3. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1782\"\u003e#1782\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.132.0 to 0.133.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1781\"\u003e#1781\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump sqlalchemy from 2.0.46 to 2.0.47. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1783\"\u003e#1783\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 8.4.2 to 9.0.2. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1780\"\u003e#1780\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\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/fastapi/sqlmodel/commit/de0ecdf63e9eae5da67f7ffc8d73577a326e30b9\"\u003e\u003ccode\u003ede0ecdf\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.0.38\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/sqlmodel/commit/8363cc764e6d3e9744b42df265071db6f0e98446\"\u003e\u003ccode\u003e8363cc7\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/sqlmodel/commit/ae672ce7caebc84098731d216c2919f483c5dce0\"\u003e\u003ccode\u003eae672ce\u003c/code\u003e\u003c/a\u003e 🔨 Add pre-commit hook to ensure latest release header has date (\u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/issues/1786\"\u003e#1786\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/sqlmodel/commit/f9e8e4c3f33f8f03c70e0dbd6f96d9fb34aa9be1\"\u003e\u003ccode\u003ef9e8e4c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/sqlmodel/commit/5da82e2d741e6ab94580395ee637721ca0cb315e\"\u003e\u003ccode\u003e5da82e2\u003c/code\u003e\u003c/a\u003e 🐛 Fix type annotation in \u003ccode\u003eSQLModel.__new__\u003c/code\u003e, avoid explicitly returning \u003ccode\u003eAny\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/sqlmodel/commit/9a44fc440020594b1c99f3b86ca958179f921dbb\"\u003e\u003ccode\u003e9a44fc4\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/sqlmodel/commit/f7e193acfb91cb020074f3d72bba9d9d745958e6\"\u003e\u003ccode\u003ef7e193a\u003c/code\u003e\u003c/a\u003e ⬆ Bump pillow from 12.1.1 to 12.2.0 (\u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/issues/1845\"\u003e#1845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/sqlmodel/commit/2df429faf73597a4fbaa6a904046c5ff14d0735d\"\u003e\u003ccode\u003e2df429f\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/sqlmodel/commit/a2474ce772705a10fda32cfde33f955572cbe45a\"\u003e\u003ccode\u003ea2474ce\u003c/code\u003e\u003c/a\u003e ⬆ Bump fastapi from 0.135.2 to 0.135.3 (\u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/issues/1844\"\u003e#1844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/sqlmodel/commit/fc18b94a9a012e62f98a4e92cfb4e91bd8f9c7d2\"\u003e\u003ccode\u003efc18b94\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/sqlmodel/compare/0.0.37...0.0.38\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `duckdb` from 1.4.4 to 1.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/duckdb/duckdb-python/releases\"\u003educkdb's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.5.2 Bugfix Release\u003c/h2\u003e\n\u003cp\u003eSee the DuckDB core release notes here: \u003ca href=\"https://github.com/duckdb/duckdb/releases/tag/v1.5.2\"\u003ehttps://github.com/duckdb/duckdb/releases/tag/v1.5.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed in duckdb-python\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eType hints overhaul by \u003ca href=\"https://github.com/OutSquareCapital\"\u003e\u003ccode\u003e@​OutSquareCapital\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/352\"\u003educkdb/duckdb-python#352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache arrow schema for streaming types by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/423\"\u003educkdb/duckdb-python#423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix segfault on join with None by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/422\"\u003educkdb/duckdb-python#422\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix stubs for path_or_buffer param by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/425\"\u003educkdb/duckdb-python#425\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.5.1 Bugfix Release\u003c/h2\u003e\n\u003cp\u003eDuckDB core v1.5.1 Changelog: \u003ca href=\"https://github.com/duckdb/duckdb/compare/v1.5.0...v1.5.1\"\u003ehttps://github.com/duckdb/duckdb/compare/v1.5.0...v1.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRe-added basic support for the GEOMETRY type\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDuckDB Python 1.5.0 \u0026quot;Variegata\u0026quot;\u003c/h2\u003e\n\u003cp\u003eThis is the 1.5.0 release of DuckDB's Python bindings. For a list of changes in DuckDB core, have a look at the \u003ca href=\"https://github.com/duckdb/duckdb/releases/tag/v1.5.0\"\u003eDuckDB release notes\u003c/a\u003e and \u003ca href=\"https://duckdb.org/2026/03/09/announcing-duckdb-150.html\"\u003ethe blogpost\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDropped Python 3.9 support.\u003c/strong\u003e The minimum supported version is now Python 3.10.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemoved deprecated \u003ccode\u003educkdb.typing\u003c/code\u003e and \u003ccode\u003educkdb.functional\u003c/code\u003e modules.\u003c/strong\u003e These were deprecated in 1.4.0. Use \u003ccode\u003educkdb.sqltypes\u003c/code\u003e and \u003ccode\u003educkdb.func\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRenamed \u003ccode\u003ecolumn\u003c/code\u003e parameter to \u003ccode\u003eexpression\u003c/code\u003e\u003c/strong\u003e in relational API functions (e.g., \u003ccode\u003emin\u003c/code\u003e, \u003ccode\u003emax\u003c/code\u003e, \u003ccode\u003esum\u003c/code\u003e, \u003ccode\u003emean\u003c/code\u003e, etc.) to better reflect that these accept expressions, not just column names.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDeprecated \u003ccode\u003efetch_arrow_table()\u003c/code\u003e and \u003ccode\u003efetch_record_batch()\u003c/code\u003e\u003c/strong\u003e on connections and relations. Use the new \u003ccode\u003eto_arrow_table()\u003c/code\u003e and \u003ccode\u003eto_arrow_reader()\u003c/code\u003e methods instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePolars LazyFrame projection and filter pushdown.\u003c/strong\u003e DuckDB can now push down projections and filters when scanning Polars LazyFrames, including support for cast nodes and unstrict casts.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePolars Int128 / UInt128 support.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eVARIANT type support\u003c/strong\u003e — Python conversion, NumPy array wrapping, and type stubs.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTIME_NS type support\u003c/strong\u003e — nanosecond-precision time values across Python, NumPy, and Spark type systems.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eProfiling API\u003c/strong\u003e — new \u003ccode\u003eget_profiling_info()\u003c/code\u003e and \u003ccode\u003eget_profiling_json()\u003c/code\u003e methods on connections, plus a refactored \u003ccode\u003equery_graph\u003c/code\u003e module with improved HTML visualization (dark mode, expandable phases, depth).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eto_arrow_table()\u003c/code\u003e and \u003ccode\u003eto_arrow_reader()\u003c/code\u003e\u003c/strong\u003e — new methods on connections and relations as the preferred Arrow export API.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e__arrow_c_stream__\u003c/code\u003e on relations\u003c/strong\u003e — relations now export via the Arrow PyCapsule interface using \u003ccode\u003ePhysicalArrowCollector\u003c/code\u003e for zero-copy streaming.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUnified Arrow stream scanning\u003c/strong\u003e via \u003ccode\u003e__arrow_c_stream__\u003c/code\u003e, with filter pushdown only when pyarrow is present.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eArrow schema caching\u003c/strong\u003e to avoid repeated lookups during scanning.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eArrow object type caching\u003c/strong\u003e to avoid repeated detection.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEmpty params treated as None for \u003ccode\u003e.sql()\u003c/code\u003e\u003c/strong\u003e — avoids unnecessary parameter binding overhead.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSimplified GIL management\u003c/strong\u003e for \u003ccode\u003eFetchRow\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed Python object leak in scalar UDFs\u003c/strong\u003e — \u003ccode\u003ePyObject_CallObject\u003c/code\u003e return values are now properly stolen to avoid reference count leaks.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed reference cycle\u003c/strong\u003e between connections and relations that could prevent garbage collection.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRelations now hold a reference to their connection\u003c/strong\u003e, preventing premature connection closure.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed fsspec race condition\u003c/strong\u003e in the Python filesystem implementation.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed numeric conversion logic\u003c/strong\u003e — improved handling of large integers (fallback to VARCHAR) and UNION types.\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/duckdb/duckdb-python/commit/2aea44eeae35b9c77dc2ff672634034a75c9bb16\"\u003e\u003ccode\u003e2aea44e\u003c/code\u003e\u003c/a\u003e pin submodule at release hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/3aa2bf2022b91dc9a96c3f91c8bb1fb0296586ef\"\u003e\u003ccode\u003e3aa2bf2\u003c/code\u003e\u003c/a\u003e Fix stubs for path_or_buffer param (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/018fe057d5a003355deb4213a894af559a947aa7\"\u003e\u003ccode\u003e018fe05\u003c/code\u003e\u003c/a\u003e Fix stubs for path_or_buffer param\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/0ef05d69fc8a123cf532f3ffb3e088212bbbfaf7\"\u003e\u003ccode\u003e0ef05d6\u003c/code\u003e\u003c/a\u003e Fix segfault on join with None (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/4acb9f71e00c5002d3ab3aba78a172df8f7ebbc4\"\u003e\u003ccode\u003e4acb9f7\u003c/code\u003e\u003c/a\u003e Fix segfault on join\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/6f161de62403c209633fcbd52c6c0403dadef7da\"\u003e\u003ccode\u003e6f161de\u003c/code\u003e\u003c/a\u003e Cache arrow schema for streaming types (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/423\"\u003e#423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/87d6a319674c5e2fb855e140bf539e997e978a2e\"\u003e\u003ccode\u003e87d6a31\u003c/code\u003e\u003c/a\u003e Add CLAUDE.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/ae356cb03926372b9cd3736f39662efd25bb4915\"\u003e\u003ccode\u003eae356cb\u003c/code\u003e\u003c/a\u003e Cache the arrow schema for streams so we don't need an active client context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/b71639f215d29c4f8b1c53cb3d7cf45603f4c5d2\"\u003e\u003ccode\u003eb71639f\u003c/code\u003e\u003c/a\u003e Test that client context stays open on arrow streams\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/305d11457efd4ca0767cad0868b16310b04160a7\"\u003e\u003ccode\u003e305d114\u003c/code\u003e\u003c/a\u003e fix spark test (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/duckdb/duckdb-python/compare/v1.4.4...v1.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rich` from 14.3.3 to 15.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/releases\"\u003erich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe So Long 3.8 Release\u003c/h2\u003e\n\u003cp\u003eA few fixes. The major version bump is to honor the passing of 3.8 support which reached its EOL in October 7, 2024\u003c/p\u003e\n\u003ch2\u003e[15.0.0] - 2026-04-12\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBreaking change: Dropped support for Python3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed empty print ignoring the \u003ccode\u003eend\u003c/code\u003e parameter \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4075\"\u003eTextualize/rich#4075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eText.from_ansi\u003c/code\u003e removing newlines \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4076\"\u003eTextualize/rich#4076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eFileProxy.isatty\u003c/code\u003e not proxying \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4077\"\u003eTextualize/rich#4077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed inline code in Markdown tables cells \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4079\"\u003eTextualize/rich#4079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Faster Startup Release\u003c/h2\u003e\n\u003cp\u003eNo new features in this release, but there should be improved startup time for Rich apps, and potentially improved runtime if you have a lot of links.\u003c/p\u003e\n\u003ch2\u003e[14.3.4] - 2026-04-11\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved import time with lazy loading \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4070\"\u003eTextualize/rich#4070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged link id generation to avoid random number generation at runtime \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3845\"\u003eTextualize/rich#3845\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/Textualize/rich/blob/master/CHANGELOG.md\"\u003erich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[15.0.0] - 2026-04-12\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBreaking change: Dropped support for Python3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed empty print ignoring the \u003ccode\u003eend\u003c/code\u003e parameter \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4075\"\u003eTextualize/rich#4075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eText.from_ansi\u003c/code\u003e removing newlines \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4076\"\u003eTextualize/rich#4076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eFileProxy.isatty\u003c/code\u003e not proxying \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4077\"\u003eTextualize/rich#4077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed inline code in Markdown tables cells \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4079\"\u003eTextualize/rich#4079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[14.3.4] - 2026-04-11\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved import time with lazy loading \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4070\"\u003eTextualize/rich#4070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged link id generation to avoid random number generation at runtime \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3845\"\u003eTextualize/rich#3845\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/Textualize/rich/commit/6ac483cbea39cab124dfd3483bba70ffafb71050\"\u003e\u003ccode\u003e6ac483c\u003c/code\u003e\u003c/a\u003e correction\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/458a9109c8b7da81c17b2270ea8a88f3e8c0465a\"\u003e\u003ccode\u003e458a910\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4080\"\u003e#4080\u003c/a\u003e from Textualize/bump1500\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/82e06e0d9985fd8cce456dc3977e0d2d9e84b4d8\"\u003e\u003ccode\u003e82e06e0\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/d6556bc44881b9904f29f5d9d69a0812b30675d1\"\u003e\u003ccode\u003ed6556bc\u003c/code\u003e\u003c/a\u003e bump to 15.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/ffe2edc5968eac19d5493c2d7b27965031a692e9\"\u003e\u003ccode\u003effe2edc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4079\"\u003e#4079\u003c/a\u003e from Textualize/inline-table-code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/cf3b5a16f7a76b2e8c4921d3314021bb72a6c5c1\"\u003e\u003ccode\u003ecf3b5a1\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/77f0edbdef71f2a895cd0ab1481e9a1fc79d42e6\"\u003e\u003ccode\u003e77f0edb\u003c/code\u003e\u003c/a\u003e remove comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/7ef2d05ca8aa3cb405dab2fdf3282e69cf8089e3\"\u003e\u003ccode\u003e7ef2d05\u003c/code\u003e\u003c/a\u003e fix inline code in table cells\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/19c67b9a3479841e9133bea94607c89ee931d3fc\"\u003e\u003ccode\u003e19c67b9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4077\"\u003e#4077\u003c/a\u003e from Textualize/isattry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/494b795031782c694297d2db78bd04fb8c82f590\"\u003e\u003ccode\u003e494b795\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/rich/compare/v14.3.3...v15.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `textual` from 8.0.2 to 8.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/textual/releases\"\u003etextual's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe small potatoes Release\u003c/h2\u003e\n\u003cp\u003eSmall potatoes update, to fix a glitch with anchor.\u003c/p\u003e\n\u003ch2\u003e[8.2.4] - 2026-04-19\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eDOM.update_classes\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6478\"\u003eTextualize/textual#6478\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed anchor released when scrolling down with the trackpad \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6503\"\u003eTextualize/textual#6503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe snappier resize Release\u003c/h2\u003e\n\u003ch2\u003e[8.2.3] - 2026-04-05\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce lag when resizing window, by moving resize from idle to a timer \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6471\"\u003eTextualize/textual#6471\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Faster Resize Release\u003c/h2\u003e\n\u003cp\u003eFixed an issue where styles were being unneccesarily updated when resizing. Textual apps will now adapt to changes in the terminal size much more quickly.\u003c/p\u003e\n\u003ch2\u003e[8.2.2] - 2026-04-03\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Pointless style updates when resizing \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6464\"\u003eTextualize/textual#6464\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Hot Select Release\u003c/h2\u003e\n\u003cp\u003eFixes a crash when a selected widget is removed while selecting\u003c/p\u003e\n\u003ch2\u003e[8.2.1] - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash when a widget disapears between selections \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6455\"\u003eTextualize/textual#6455\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Select Release\u003c/h2\u003e\n\u003cp\u003eThis release enhances text selection, with auto-scrolling, and the ability to select across container widgets.\u003c/p\u003e\n\u003cp\u003eThis work was sponsored by Mistral AI.\u003c/p\u003e\n\u003ch2\u003e[8.2.0] - 2026-03-27\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAuto-scrolling on select \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSelecting over containers \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eApp.ENABLE_SELECT_AUTO_SCROLL\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_LINES\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_SPEED\u003c/code\u003e to tweak auto scrolling behavior \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\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/Textualize/textual/blob/main/CHANGELOG.md\"\u003etextual's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[8.2.4] - 2026-04-19\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eDOM.update_classes\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6478\"\u003eTextualize/textual#6478\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed anchor released when scrolling down with the trackpad \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6503\"\u003eTextualize/textual#6503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.3] - 2026-04-05\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce lag when resizing window, by moving resize from idle to a timer \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6471\"\u003eTextualize/textual#6471\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.2] - 2026-04-03\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Pointless style updates when resizing \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6464\"\u003eTextualize/textual#6464\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.1] - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash when a widget disapears between selections \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6455\"\u003eTextualize/textual#6455\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.0] - 2026-03-27\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAuto-scrolling on select \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSelecting over containers \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eApp.ENABLE_SELECT_AUTO_SCROLL\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_LINES\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_SPEED\u003c/code\u003e to tweak auto scrolling behavior \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.1.1] - 2026-03-10\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHotfix for animation on complete \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6412\"\u003eTextualize/textual#6412\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.1.0] - 2026-03-10\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplace circuar references in DOM with weak references to improve GC times \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6410\"\u003eTextualize/textual#6410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen animating an attribute a second time, the original \u003ccode\u003eon_complete\u003c/code\u003e is now called \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6410\"\u003eTextualize/textual#6410\u003c/a\u003e\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/Textualize/textual/commit/49a24d67a66b553ef2dede0674232a4704f5b4d8\"\u003e\u003ccode\u003e49a24d6\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/2a84efdda39e996a5bd698b510b87e7f90590996\"\u003e\u003ccode\u003e2a84efd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6503\"\u003e#6503\u003c/a\u003e from Textualize/anchor-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/c9a49755a45497f0b604a42a477e47fe162c5cb7\"\u003e\u003ccode\u003ec9a4975\u003c/code\u003e\u003c/a\u003e fix anchor release on trackpad\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/f8b42bd7a93578338f1b3668a1dc83f79e344fe8\"\u003e\u003ccode\u003ef8b42bd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6495\"\u003e#6495\u003c/a\u003e from Rohan5commit/docs-input-messages-20260417\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/697d0ffe41ce314b07835fcf00d5e841430d7ce9\"\u003e\u003ccode\u003e697d0ff\u003c/code\u003e\u003c/a\u003e docs: fix input validation typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/759e66f8218b422ec76b35d0c8454eb5eb6291b1\"\u003e\u003ccode\u003e759e66f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6478\"\u003e#6478\u003c/a\u003e from Textualize/update-classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/3a3a76cd5754d44155c8ea6f6684d15837177c8c\"\u003e\u003ccode\u003e3a3a76c\u003c/code\u003e\u003c/a\u003e Added update flag\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/91c86a14ca523817b8e56f8b928cbf1a706f1123\"\u003e\u003ccode\u003e91c86a1\u003c/code\u003e\u003c/a\u003e Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/27623a95efb5454fad63158858a4528e6c185fc5\"\u003e\u003ccode\u003e27623a9\u003c/code\u003e\u003c/a\u003e name change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/3decce56d9f5c157e641c5be5f59d00450effbd7\"\u003e\u003ccode\u003e3decce5\u003c/code\u003e\u003c/a\u003e leaner with sets\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/textual/compare/v8.0.2...v8.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\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/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\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/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `respx` from 0.22.0 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.23.0\u003c/h2\u003e\n\u003ch2\u003e0.23.0 (7th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#...\n\n_Description has been truncated_","html_url":"https://github.com/wyattowalsh/nbadb/pull/32","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/wyattowalsh%2Fnbadb/issues/32","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/32/packages"},{"uuid":"4280152637","node_id":"PR_kwDORPNgGM7TMEWA","number":39,"state":"closed","title":"chore(deps): bump the dependencies group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-24T04:41:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-17T04:40:14.000Z","updated_at":"2026-04-24T04:41:46.000Z","time_to_close":604891,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"dependencies","update_count":7,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.1","repository_url":"https://github.com/pydantic/pydantic"},{"name":"cryptography","old_version":"46.0.6","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"platformdirs","old_version":"4.9.4","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"respx","old_version":"0.22.0","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"},{"name":"ruff","old_version":"0.15.8","new_version":"0.15.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"basedpyright","old_version":"1.38.4","new_version":"1.39.2","repository_url":"https://github.com/detachhead/basedpyright"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.6` | `46.0.7` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.4` | `4.9.6` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [respx](https://github.com/lundberg/respx) | `0.22.0` | `0.23.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.8` | `0.15.11` |\n| [basedpyright](https://github.com/detachhead/basedpyright) | `1.38.4` | `1.39.2` |\n\n\nUpdates `pydantic` from 2.12.5 to 2.13.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0b3 2026-03-31\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\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/pydantic/pydantic/blob/v2.13.1/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0b3 (2026-03-31)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0b3\"\u003eGitHub release\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/17a35e371bdff348c0690651d324c91fc7c9ff9e\"\u003e\u003ccode\u003e17a35e3\u003c/code\u003e\u003c/a\u003e Update jiter to v0.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13064\"\u003e#13064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/feea402b23fa23774669908c4e08a61ba1e4238e\"\u003e\u003ccode\u003efeea402\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003esimulation\u003c/code\u003e mode in Codspeed CI (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13063\"\u003e#13063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/671c9b0d4d3f9b2f1b95ca32ac85cb69e824e0bc\"\u003e\u003ccode\u003e671c9b0\u003c/code\u003e\u003c/a\u003e Add basic benchmarks for model equality (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13061\"\u003e#13061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d17d71e00a35f190b27321aa6f8f2a03139c00b8\"\u003e\u003ccode\u003ed17d71e\u003c/code\u003e\u003c/a\u003e Bump cryptography from 46.0.6 to 46.0.7 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13056\"\u003e#13056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/919d61ac419af5151b673a90b65c9a12631091cf\"\u003e\u003ccode\u003e919d61a\u003c/code\u003e\u003c/a\u003e 👥 Update Pydantic People (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13059\"\u003e#13059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 46.0.6 to 46.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.7 - 2026-04-07\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed an issue where non-contiguous buffers could be\n  passed to APIs that accept Python buffers, which could lead to buffer\n  overflow. **CVE-2026-39892**\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.6.\n\u003cp\u003e.. _v46-0-6:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\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/pyca/cryptography/commit/622d672e429a7cff836a23c5903683dbec1901f5\"\u003e\u003ccode\u003e622d672\u003c/code\u003e\u003c/a\u003e 46.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14602\"\u003e#14602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.6...46.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.9.4 to 4.9.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.9.6\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(release): use double quotes for tag variable expansion by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/477\"\u003etox-dev/platformdirs#477\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.9.5...4.9.6\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.9.5...4.9.6\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/tox-dev/platformdirs/blob/main/docs/changelog.rst\"\u003eplatformdirs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.6 (2026-04-09)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(release): use double quotes for tag variable expansion :pr:\u003ccode\u003e477\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.5 (2026-04-06)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs(appauthor): clarify None vs False on Windows :pr:\u003ccode\u003e476\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSeparates implementations of macOS dirs that share a default :pr:\u003ccode\u003e473\u003c/code\u003e - by :user:\u003ccode\u003eGoddesen\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove persist-credentials: false from release job :pr:\u003ccode\u003e472\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003efix: do not duplicate site dirs in Unix.iter_{config,site}_dirs() when use_site_for_root is active :pr:\u003ccode\u003e469\u003c/code\u003e - by\n:user:\u003ccode\u003eviccie30\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔧 fix(type): resolve ty 0.0.25 type errors :pr:\u003ccode\u003e468\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔒 ci(workflows): add zizmor security auditing :pr:\u003ccode\u003e467\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(release): generate docstrfmt-compatible changelog entries :pr:\u003ccode\u003e463\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.4 (2026-03-05)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e461\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README.md\u003c/li\u003e\n\u003cli\u003e📝 docs: add project logo to documentation :pr:\u003ccode\u003e459\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStandardize .github files to .yaml suffix\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump the all group with 2 updates :pr:\u003ccode\u003e457\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMove SECURITY.md to .github/SECURITY.md\u003c/li\u003e\n\u003cli\u003eAdd permissions to workflows :pr:\u003ccode\u003e455\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd security policy\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e454\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.2 (2026-02-16)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: restructure following Diataxis framework :pr:\u003ccode\u003e448\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs(platforms): fix RST formatting and TOC hierarchy :pr:\u003ccode\u003e447\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.1 (2026-02-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: enhance README, fix issues, and reorganize platforms.rst :pr:\u003ccode\u003e445\u003c/code\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/tox-dev/platformdirs/commit/56efd776d68a94898b319c108933d0cfbff813af\"\u003e\u003ccode\u003e56efd77\u003c/code\u003e\u003c/a\u003e Release 4.9.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/d5d812a02102c633a39f3dfdddbc6bb1670b13ae\"\u003e\u003ccode\u003ed5d812a\u003c/code\u003e\u003c/a\u003e 🐛 fix(release): use double quotes for tag variable expansion (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/c2b0cee3a8261b3a75b283b9ef148d2425d48d35\"\u003e\u003ccode\u003ec2b0cee\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 in the al...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/7688069a09e03bb4e97fe0f9cf3aebedc8a6f7f9\"\u003e\u003ccode\u003e7688069\u003c/code\u003e\u003c/a\u003e Release 4.9.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/104d28b48c59b327a7832b23509187eef2764af8\"\u003e\u003ccode\u003e104d28b\u003c/code\u003e\u003c/a\u003e 📝 docs(appauthor): clarify None vs False on Windows (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/0955048684241725bb2eae8a2ba5bc7f7f46c9a0\"\u003e\u003ccode\u003e0955048\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/475\"\u003e#475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/bd3c76602f88284eb832c7f5297c354ea7ac5906\"\u003e\u003ccode\u003ebd3c766\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 7.6.0 to 8.0.0 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/749ac3f33ffc5af04fb8bb046bbbcc4d5aa562c9\"\u003e\u003ccode\u003e749ac3f\u003c/code\u003e\u003c/a\u003e Separates implementations of macOS dirs that share a default (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/473\"\u003e#473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/cb8815684f15c58ad1b87c8b1d34f9bf2d79780e\"\u003e\u003ccode\u003ecb88156\u003c/code\u003e\u003c/a\u003e Remove persist-credentials: false from release job (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/472\"\u003e#472\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a501eabd7dd0e56116c38fa9dba15f3c0b60010a\"\u003e\u003ccode\u003ea501eab\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/470\"\u003e#470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.9.4...4.9.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\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/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `respx` from 0.22.0 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.23.0\u003c/h2\u003e\n\u003ch2\u003e0.23.0 (7th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.22.0...0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.8 to 0.15.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.11\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.15.11\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz\"\u003eruff-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz\"\u003eruff-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip\"\u003eruff-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip\"\u003eruff-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\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/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\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/astral-sh/ruff/commit/53554b1cfe837f2eb992a81794480699478f1116\"\u003e\u003ccode\u003e53554b1\u003c/code\u003e\u003c/a\u003e Bump 0.15.11 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24678\"\u003e#24678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/08c56c83cffbb1025cbf5bdede6c6d8be591cf47\"\u003e\u003ccode\u003e08c56c8\u003c/code\u003e\u003c/a\u003e Factor out the \u003ccode\u003emdtest\u003c/code\u003e crate (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24616\"\u003e#24616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/725fbb736d2a999971449b61190b914abd26102a\"\u003e\u003ccode\u003e725fbb7\u003c/code\u003e\u003c/a\u003e [ty] Use partially qualified names when reporting diagnostics regarding bad c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ddd6a30ff5fa27694dc1c50d0749885a1519d0a7\"\u003e\u003ccode\u003eddd6a30\u003c/code\u003e\u003c/a\u003e [ty] Do not suggest argument completion when at value of keyword argument (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9282e61d482a36da08d66bb8271afeef50b3bc45\"\u003e\u003ccode\u003e9282e61\u003c/code\u003e\u003c/a\u003e Disallow \u003ca href=\"https://github.com/disjoint\"\u003e\u003ccode\u003e@​disjoint\u003c/code\u003e\u003c/a\u003e_base on TypedDicts and Protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24671\"\u003e#24671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9986d8e3008eefe2e387312c4dc8b9c60f6f362\"\u003e\u003ccode\u003ee9986d8\u003c/code\u003e\u003c/a\u003e [ty] Reject using properties with \u003ccode\u003eNever\u003c/code\u003e setters or deleters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24510\"\u003e#24510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9cf212ff82f7b66b4a275ad6a9b1564aee1fa4a8\"\u003e\u003ccode\u003e9cf212f\u003c/code\u003e\u003c/a\u003e [ty] Normalize property setter and deleter wrappers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24509\"\u003e#24509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/12a1589de4d7120cf99441ee4c14871bdc20968d\"\u003e\u003ccode\u003e12a1589\u003c/code\u003e\u003c/a\u003e Add override mention to ASYNC109 docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dccb03d010f4442ed60624f8d2ba932706abaabb\"\u003e\u003ccode\u003edccb03d\u003c/code\u003e\u003c/a\u003e [ty] Avoid panicking on overloaded \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24661\"\u003e#24661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/61f9a0a5763fb068cd2f26c0ee9d63a277fb26c2\"\u003e\u003ccode\u003e61f9a0a\u003c/code\u003e\u003c/a\u003e [ty] Sync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24646\"\u003e#24646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.8...0.15.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `basedpyright` from 1.38.4 to 1.39.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/ceb200c192bb53629b4c62fdc082ec27b108f316\"\u003e\u003ccode\u003eceb200c\u003c/code\u003e\u003c/a\u003e 1.39.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/eb7a92cacd2697acb4e36e2f3147333588c88fa7\"\u003e\u003ccode\u003eeb7a92c\u003c/code\u003e\u003c/a\u003e try to fix browser-basedpyright being published with nothing in it\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/dec5306e9aabbce3f9b1b9ec283981d92dd43d80\"\u003e\u003ccode\u003edec5306\u003c/code\u003e\u003c/a\u003e update package-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/6db43de5dda601e3cd83998c669c4ecbbfde26f6\"\u003e\u003ccode\u003e6db43de\u003c/code\u003e\u003c/a\u003e 1.39.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/335e48619fa223fe3be0b6560d746a10934509c8\"\u003e\u003ccode\u003e335e486\u003c/code\u003e\u003c/a\u003e fix failing tests from merge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/bbe71b686e84ebbff7699d35dab3376d411bb99d\"\u003e\u003ccode\u003ebbe71b6\u003c/code\u003e\u003c/a\u003e delete newly added github action from upstream that we don't use\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/8f2261891e8ceb278963e84658ebaf054b88e559\"\u003e\u003ccode\u003e8f22618\u003c/code\u003e\u003c/a\u003e update prettierignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/ff1f5a4af835b14927545c8890b303f48553acac\"\u003e\u003ccode\u003eff1f5a4\u003c/code\u003e\u003c/a\u003e fix compile errors from merge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/f2f217469b0b59e77c49e8a92be3e8fe1c0e5146\"\u003e\u003ccode\u003ef2f2174\u003c/code\u003e\u003c/a\u003e Merge tag '1.1.409' into merge-1.1.409\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/63998f4d0720a86447f4c4a04716e34f3e703660\"\u003e\u003ccode\u003e63998f4\u003c/code\u003e\u003c/a\u003e Publish 1.1.409\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/detachhead/basedpyright/compare/v1.38.4...v1.39.2\"\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 \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/holdjun/kmoe/pull/39","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/holdjun%2Fkmoe/issues/39","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/39/packages"},{"uuid":"4256319830","node_id":"PR_kwDOOl2Wg87SCrgz","number":182,"state":"closed","title":"chore(deps-dev): bump respx from 0.22.0 to 0.23.1","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-16T02:05:31.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T16:15:47.000Z","updated_at":"2026-04-16T02:05:32.000Z","time_to_close":208184,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"respx","old_version":"0.22.0","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Bumps [respx](https://github.com/lundberg/respx) from 0.22.0 to 0.23.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.23.0\u003c/h2\u003e\n\u003ch2\u003e0.23.0 (7th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.22.0...0.23.1\"\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=respx\u0026package-manager=uv\u0026previous-version=0.22.0\u0026new-version=0.23.1)](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/thurstonsand/anypod/pull/182","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/thurstonsand%2Fanypod/issues/182","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/182/packages"}],"issue_packages":[{"old_version":"\u003e=0.21","new_version":"\u003e=0.23.1","update_type":null,"path":null,"pr_created_at":"2026-06-18T09:57:14.000Z","version_change":"\u003e=0.21 → \u003e=0.23.1","issue":{"uuid":"4691254149","node_id":"PR_kwDOS-MBEM7n4eDg","number":5,"state":"open","title":"deps: Update respx requirement from \u003e=0.21 to \u003e=0.23.1","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-06-18T09:57:14.000Z","updated_at":"2026-06-18T09:57:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: Update","packages":[{"name":"respx","old_version":"\u003e=0.21","new_version":"\u003e=0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [respx](https://github.com/lundberg/respx) 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/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.21.1] - 2024-03-27\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efiles\u003c/code\u003e pattern not handling \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eBytesIO\u003c/code\u003e, thanks \u003ca href=\"https://github.com/pierremonico\"\u003e\u003ccode\u003e@​pierremonico\u003c/code\u003e\u003c/a\u003e for input\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.21.0...0.23.1\"\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/Olaw2jr/gns3-mcp/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olaw2jr%2Fgns3-mcp/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"}},{"old_version":"\u003c1,\u003e=0.21","new_version":"\u003e=0.23.1,\u003c1","update_type":null,"path":null,"pr_created_at":"2026-06-11T06:36:38.000Z","version_change":"\u003c1,\u003e=0.21 → \u003e=0.23.1,\u003c1","issue":{"uuid":"4637862168","node_id":"PR_kwDOS18aos7lL2_V","number":11,"state":"closed","title":"chore(deps-dev): update respx requirement from \u003c1,\u003e=0.21 to \u003e=0.23.1,\u003c1","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-13T03:16:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-11T06:36:38.000Z","updated_at":"2026-06-13T03:17:04.000Z","time_to_close":160818,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): update","packages":[{"name":"respx","old_version":"\u003c1,\u003e=0.21","new_version":"\u003e=0.23.1,\u003c1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [respx](https://github.com/lundberg/respx) 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/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.21.1] - 2024-03-27\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efiles\u003c/code\u003e pattern not handling \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eBytesIO\u003c/code\u003e, thanks \u003ca href=\"https://github.com/pierremonico\"\u003e\u003ccode\u003e@​pierremonico\u003c/code\u003e\u003c/a\u003e for input\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.21.0...0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/MaddogWarner/adguard-sync-mdw/pull/11","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaddogWarner%2Fadguard-sync-mdw/issues/11","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/11/packages"}},{"old_version":"0.21.1","new_version":"0.23.1","update_type":"minor","path":null,"pr_created_at":"2026-06-08T17:08:19.000Z","version_change":"0.21.1 → 0.23.1","issue":{"uuid":"4614965747","node_id":"PR_kwDOS0UxLc7kAn8N","number":12,"state":"closed","title":"Bump the python-dev-deps group across 1 directory with 10 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-09T03:43:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-08T17:08:19.000Z","updated_at":"2026-06-09T03:45:17.000Z","time_to_close":38137,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-dev-deps","update_count":10,"packages":[{"name":"uvicorn","old_version":"0.30.6","new_version":"0.49.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydantic","old_version":"2.8.2","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"tree-sitter","old_version":"0.23.0","new_version":"0.25.2","repository_url":"https://github.com/tree-sitter/py-tree-sitter"},{"name":"tree-sitter-python","old_version":"0.23.2","new_version":"0.25.0","repository_url":"https://github.com/tree-sitter/tree-sitter-python"},{"name":"tree-sitter-typescript","old_version":"0.23.0","new_version":"0.23.2","repository_url":"https://github.com/tree-sitter/tree-sitter-typescript"},{"name":"ruff","old_version":"0.5.5","new_version":"0.15.16","repository_url":"https://github.com/astral-sh/ruff"},{"name":"respx","old_version":"0.21.1","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"},{"name":"bandit","old_version":"1.7.9","new_version":"1.9.4","repository_url":"https://github.com/PyCQA/bandit"},{"name":"pip-audit","old_version":"2.7.3","new_version":"2.10.0","repository_url":"https://github.com/pypa/pip-audit"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dev-deps group with 10 updates in the /server directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.30.6` | `0.49.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.8.2` | `2.13.4` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [tree-sitter](https://github.com/tree-sitter/py-tree-sitter) | `0.23.0` | `0.25.2` |\n| [tree-sitter-python](https://github.com/tree-sitter/tree-sitter-python) | `0.23.2` | `0.25.0` |\n| [tree-sitter-typescript](https://github.com/tree-sitter/tree-sitter-typescript) | `0.23.0` | `0.23.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.5.5` | `0.15.16` |\n| [respx](https://github.com/lundberg/respx) | `0.21.1` | `0.23.1` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.7.9` | `1.9.4` |\n| [pip-audit](https://github.com/pypa/pip-audit) | `2.7.3` | `2.10.0` |\n\n\nUpdates `uvicorn` from 0.30.6 to 0.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump httptools minimum version to 0.8.0 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2962\"\u003eKludex/uvicorn#2962\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConsume duplicate forwarding headers in ProxyHeadersMiddleware (reverses the 0.48.0 behavior of ignoring them) by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2971\"\u003eKludex/uvicorn#2971\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.48.0...0.49.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.48.0...0.49.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2940\"\u003eKludex/uvicorn#2940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2944\"\u003eKludex/uvicorn#2944\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.47.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEagerly import the ASGI app in the parent process by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2919\"\u003eKludex/uvicorn#2919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003essl_context_factory\u003c/code\u003e for custom \u003ccode\u003eSSLContext\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2920\"\u003eKludex/uvicorn#2920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003efd=0\u003c/code\u003e as a valid file descriptor with reload/workers by \u003ca href=\"https://github.com/eltoder\"\u003e\u003ccode\u003e@​eltoder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2927\"\u003eKludex/uvicorn#2927\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.46.0...0.47.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.46.0...0.47.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.46.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2915\"\u003eKludex/uvicorn#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2916\"\u003eKludex/uvicorn#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2917\"\u003eKludex/uvicorn#2917\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.45.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2903\"\u003eKludex/uvicorn#2903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2905\"\u003eKludex/uvicorn#2905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2907\"\u003eKludex/uvicorn#2907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2906\"\u003eKludex/uvicorn#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert empty context for ASGI runs by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2911\"\u003eKludex/uvicorn#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2912\"\u003eKludex/uvicorn#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e) by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2913\"\u003eKludex/uvicorn#2913\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/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2870\"\u003eKludex/uvicorn#2870\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.44.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2888\"\u003eKludex/uvicorn#2888\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/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.49.0 (June 3, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump \u003ccode\u003ehttptools\u003c/code\u003e minimum version to 0.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2962\"\u003e#2962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConsume duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (reverses the 0.48.0 behavior of ignoring them) (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2971\"\u003e#2971\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.48.0 (May 24, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.47.0 (May 14, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003essl_context_factory\u003c/code\u003e for custom \u003ccode\u003eSSLContext\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2920\"\u003e#2920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEagerly import the ASGI app in the parent process (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTreat \u003ccode\u003efd=0\u003c/code\u003e as a valid file descriptor with reload/workers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2927\"\u003e#2927\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.46.0 (April 23, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2916\"\u003e#2916\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2917\"\u003e#2917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.45.0 (April 21, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\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/Kludex/uvicorn/commit/3ef2e3e08e3d9ad9572800f8bc54f3eaed9eab0a\"\u003e\u003ccode\u003e3ef2e3e\u003c/code\u003e\u003c/a\u003e Version 0.49.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2973\"\u003e#2973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/eeb64b1d1c95a14096ed3313377c74b485f558fc\"\u003e\u003ccode\u003eeeb64b1\u003c/code\u003e\u003c/a\u003e Consume duplicate forwarding headers in ProxyHeadersMiddleware (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2971\"\u003e#2971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/630f4aca14e79183617c71be714030842a1041c5\"\u003e\u003ccode\u003e630f4ac\u003c/code\u003e\u003c/a\u003e Make the watchfiles reload tests deterministic (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2972\"\u003e#2972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9154922e3730f7aba68ecc3ecbf536680ee8fd1c\"\u003e\u003ccode\u003e9154922\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group across 1 directory with 6 updates ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/739727a1d80e468d1e47e98bbd824ee9e3c9554b\"\u003e\u003ccode\u003e739727a\u003c/code\u003e\u003c/a\u003e Migrate docs deploy from Cloudflare Pages to Workers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2967\"\u003e#2967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/be4a240488d3fb678a11b8e8f83505266f5f1de7\"\u003e\u003ccode\u003ebe4a240\u003c/code\u003e\u003c/a\u003e Gate docs preview deploy on Cloudflare token presence (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2966\"\u003e#2966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/c489d7e10dfe653a2bba914feedf2a632a026e6f\"\u003e\u003ccode\u003ec489d7e\u003c/code\u003e\u003c/a\u003e Bump httptools minimum version to 0.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2962\"\u003e#2962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9f547bd82ef52bcba206e04170b359bd6daa25b3\"\u003e\u003ccode\u003e9f547bd\u003c/code\u003e\u003c/a\u003e Skip docs preview deploy for Dependabot PRs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/44446b894e37ca76830d6aa83df4349795400ed4\"\u003e\u003ccode\u003e44446b8\u003c/code\u003e\u003c/a\u003e Migrate documentation from MkDocs Material to Zensical (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cfd659c4f18b526adce9c255c96707bab20af40c\"\u003e\u003ccode\u003ecfd659c\u003c/code\u003e\u003c/a\u003e Bump pymdown-extensions to 10.21.3 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2958\"\u003e#2958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.30.6...0.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.8.2 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.8.2...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `httpx` from 0.27.2 to 0.28.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/httpx/releases\"\u003ehttpx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.28.1\u003c/h2\u003e\n\u003ch2\u003e0.28.1 (6th December, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL case where \u003ccode\u003everify=False\u003c/code\u003e together with client side certificates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.28.0\u003c/h2\u003e\n\u003ch2\u003e0.28.0 (28th November, 2024)\u003c/h2\u003e\n\u003cp\u003eThe 0.28 release includes a limited set of deprecations.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003eWe are working towards a simplified SSL configuration API.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFor users of the standard \u003ccode\u003everify=True\u003c/code\u003e or \u003ccode\u003everify=False\u003c/code\u003e cases, or \u003ccode\u003everify=\u0026lt;ssl_context\u0026gt;\u003c/code\u003e case this should require no changes. The following cases have been deprecated...\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003everify\u003c/code\u003e argument as a string argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ecert\u003c/code\u003e argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOur revised \u003ca href=\"https://github.com/encode/httpx/blob/HEAD/docs/advanced/ssl.md\"\u003eSSL documentation\u003c/a\u003e covers how to implement the same behaviour with a more constrained API.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe following changes are also included\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eproxies\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eapp\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eJSON request bodies use a compact representation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReview URL percent escape sets, based on WHATWG spec. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3371\"\u003e#3371\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/encode/httpx/issues/3373\"\u003e#3373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ecertifi\u003c/code\u003e and \u003ccode\u003ehttpcore\u003c/code\u003e are only imported if required. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003esocks5h\u003c/code\u003e as a valid proxy scheme. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3178\"\u003e#3178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCleanup \u003ccode\u003eRequest()\u003c/code\u003e method signature in line with \u003ccode\u003eclient.request()\u003c/code\u003e and \u003ccode\u003ehttpx.request()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: When passing \u003ccode\u003eparams={}\u003c/code\u003e, always strictly update rather than merge with an existing querystring. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\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/encode/httpx/blob/master/CHANGELOG.md\"\u003ehttpx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.28.1 (6th December, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL case where \u003ccode\u003everify=False\u003c/code\u003e together with client side certificates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.28.0 (28th November, 2024)\u003c/h2\u003e\n\u003cp\u003eBe aware that the default \u003cem\u003eJSON request bodies now use a more compact representation\u003c/em\u003e. This is generally considered a prefered style, tho may require updates to test suites.\u003c/p\u003e\n\u003cp\u003eThe 0.28 release includes a limited set of deprecations...\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003eWe are working towards a simplified SSL configuration API.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFor users of the standard \u003ccode\u003everify=True\u003c/code\u003e or \u003ccode\u003everify=False\u003c/code\u003e cases, or \u003ccode\u003everify=\u0026lt;ssl_context\u0026gt;\u003c/code\u003e case this should require no changes. The following cases have been deprecated...\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003everify\u003c/code\u003e argument as a string argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ecert\u003c/code\u003e argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOur revised \u003ca href=\"https://github.com/encode/httpx/blob/master/docs/advanced/ssl.md\"\u003eSSL documentation\u003c/a\u003e covers how to implement the same behaviour with a more constrained API.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe following changes are also included\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eproxies\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eapp\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eJSON request bodies use a compact representation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReview URL percent escape sets, based on WHATWG spec. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3371\"\u003e#3371\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/encode/httpx/issues/3373\"\u003e#3373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ecertifi\u003c/code\u003e and \u003ccode\u003ehttpcore\u003c/code\u003e are only imported if required. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003esocks5h\u003c/code\u003e as a valid proxy scheme. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3178\"\u003e#3178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCleanup \u003ccode\u003eRequest()\u003c/code\u003e method signature in line with \u003ccode\u003eclient.request()\u003c/code\u003e and \u003ccode\u003ehttpx.request()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: When passing \u003ccode\u003eparams={}\u003c/code\u003e, always strictly update rather than merge with an existing querystring. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\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/encode/httpx/commit/26d48e0634e6ee9cdc0533996db289ce4b430177\"\u003e\u003ccode\u003e26d48e0\u003c/code\u003e\u003c/a\u003e Version 0.28.1 (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3445\"\u003e#3445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/89599a9541af14bcf906fc4ed58ccbdf403802ba\"\u003e\u003ccode\u003e89599a9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003everify=False\u003c/code\u003e, \u003ccode\u003ecert=...\u003c/code\u003e case. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3442\"\u003e#3442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/8ecb86f0d74ffc52d4663214fae9526bee89358d\"\u003e\u003ccode\u003e8ecb86f\u003c/code\u003e\u003c/a\u003e Add test for request params behavior changes (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3440\"\u003e#3440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/0cb7e5a2e736628e2f506d259fcf0d48cd2bde82\"\u003e\u003ccode\u003e0cb7e5a\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 11 updates (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3434\"\u003e#3434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/15e21e9ea3cad4f06e22a7e704aabefdf43d2e29\"\u003e\u003ccode\u003e15e21e9\u003c/code\u003e\u003c/a\u003e Updating deprecated docstring Client() class (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3426\"\u003e#3426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/80960fa31918d7663c3f4c3ad61661cf0e80628f\"\u003e\u003ccode\u003e80960fa\u003c/code\u003e\u003c/a\u003e Version 0.28.0. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3419\"\u003e#3419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/a33c87852b8a0dddc65e5f739af1e0a6fca4b91f\"\u003e\u003ccode\u003ea33c878\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eextensions\u003c/code\u003e type annotation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3380\"\u003e#3380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/ce7e14da27abba6574be9b3ea7cd5990556a9343\"\u003e\u003ccode\u003ece7e14d\u003c/code\u003e\u003c/a\u003e Error on verify as str. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3418\"\u003e#3418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/47f4a96ffaaaa07dca1614409549b5d7a6e7af49\"\u003e\u003ccode\u003e47f4a96\u003c/code\u003e\u003c/a\u003e Handle empty zstd responses (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3412\"\u003e#3412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/189fc4bcbe5f314128775dec66a616ac9a31ad48\"\u003e\u003ccode\u003e189fc4b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md, fix typo(s) (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/httpx/compare/0.27.2...0.28.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tree-sitter` from 0.23.0 to 0.25.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/releases\"\u003etree-sitter's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: bump actions/download-artifact from 4 to 5 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/401\"\u003etree-sitter/py-tree-sitter#401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: bump actions/checkout from 4 to 5 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/403\"\u003etree-sitter/py-tree-sitter#403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: bump tree_sitter/core from \u003ccode\u003e3624198\u003c/code\u003e to \u003ccode\u003e629093d\u003c/code\u003e by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/405\"\u003etree-sitter/py-tree-sitter#405\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: properly detect MSVC compiler by \u003ca href=\"https://github.com/tree-sitter-ci-bot\"\u003e\u003ccode\u003e@​tree-sitter-ci-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/407\"\u003etree-sitter/py-tree-sitter#407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: bump actions/upload-pages-artifact from 3 to 4 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/404\"\u003etree-sitter/py-tree-sitter#404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: bump actions/setup-python from 5 to 6 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/411\"\u003etree-sitter/py-tree-sitter#411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: bump tree_sitter/core from \u003ccode\u003e629093d\u003c/code\u003e to \u003ccode\u003ea467ea8\u003c/code\u003e by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/412\"\u003etree-sitter/py-tree-sitter#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(parser): fix memleak of source_view by \u003ca href=\"https://github.com/tree-sitter-ci-bot\"\u003e\u003ccode\u003e@​tree-sitter-ci-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/416\"\u003etree-sitter/py-tree-sitter#416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: bump tree_sitter/core from \u003ccode\u003ea467ea8\u003c/code\u003e to \u003ccode\u003eda6fe9b\u003c/code\u003e by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/417\"\u003etree-sitter/py-tree-sitter#417\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/compare/v0.25.1...v0.25.2\"\u003ehttps://github.com/tree-sitter/py-tree-sitter/compare/v0.25.1...v0.25.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.25.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(docs): QueryCursor page was missing from index by \u003ca href=\"https://github.com/MisakaVan\"\u003e\u003ccode\u003e@​MisakaVan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/385\"\u003etree-sitter/py-tree-sitter#385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: pattern_index parameter to generic predicates is incorrect by \u003ca href=\"https://github.com/davidt\"\u003e\u003ccode\u003e@​davidt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/388\"\u003etree-sitter/py-tree-sitter#388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(readme): update query usage examples by \u003ca href=\"https://github.com/TomJGooding\"\u003e\u003ccode\u003e@​TomJGooding\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/390\"\u003etree-sitter/py-tree-sitter#390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(query_cursor): fix missing space in hint by \u003ca href=\"https://github.com/TomJGooding\"\u003e\u003ccode\u003e@​TomJGooding\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/391\"\u003etree-sitter/py-tree-sitter#391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: bump pypa/cibuildwheel from 3.0 to 3.1 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/392\"\u003etree-sitter/py-tree-sitter#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: work around GCC optimizer bug for aarch64 by \u003ca href=\"https://github.com/tree-sitter-ci-bot\"\u003e\u003ccode\u003e@​tree-sitter-ci-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/393\"\u003etree-sitter/py-tree-sitter#393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: bump tree_sitter/core from \u003ccode\u003e58edb3a\u003c/code\u003e to \u003ccode\u003e3624198\u003c/code\u003e by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/397\"\u003etree-sitter/py-tree-sitter#397\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release 0.25.1 by \u003ca href=\"https://github.com/tree-sitter-ci-bot\"\u003e\u003ccode\u003e@​tree-sitter-ci-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/398\"\u003etree-sitter/py-tree-sitter#398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(pypi): disable free-threaded builds by \u003ca href=\"https://github.com/tree-sitter-ci-bot\"\u003e\u003ccode\u003e@​tree-sitter-ci-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/399\"\u003etree-sitter/py-tree-sitter#399\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/MisakaVan\"\u003e\u003ccode\u003e@​MisakaVan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/385\"\u003etree-sitter/py-tree-sitter#385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidt\"\u003e\u003ccode\u003e@​davidt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/388\"\u003etree-sitter/py-tree-sitter#388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TomJGooding\"\u003e\u003ccode\u003e@​TomJGooding\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/390\"\u003etree-sitter/py-tree-sitter#390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter-ci-bot\"\u003e\u003ccode\u003e@​tree-sitter-ci-bot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/tree-sitter/py-tree-sitter/pull/393\"\u003etree-sitter/py-tree-sitter#393\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/compare/v0.25.0...v0.25.1\"\u003ehttps://github.com/tree-sitter/py-tree-sitter/compare/v0.25.0...v0.25.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003cp\u003eBreaking changes are marked with \u003cstrong\u003e!\u003c/strong\u003e.\u003c/p\u003e\n\u003ch3\u003eAdditions:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eLanguage.name\u003c/code\u003e \u003cem\u003e(getter)\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eLanguage.abi_version\u003c/code\u003e \u003cem\u003e(getter)\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eLanguage.semantic_version\u003c/code\u003e \u003cem\u003e(getter)\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eLanguage.supertypes\u003c/code\u003e \u003cem\u003e(getter)\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eLanguage.subtypes(supertype)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eNode.first_child_for_byte(byte)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eNode.first_named_child_for_byte(byte)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eQuery.string_count\u003c/code\u003e \u003cem\u003e(getter)\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eQuery.capture_name(index)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eQuery.capture_quantifier(pattern_index, capture_index)\u003c/code\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/tree-sitter/py-tree-sitter/commit/e2a5b21449c30c6a4fb49a55567a4699c3271f10\"\u003e\u003ccode\u003ee2a5b21\u003c/code\u003e\u003c/a\u003e chore: release 0.25.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/commit/bddf8addf994b8029223e45f9f10b583dc700f2e\"\u003e\u003ccode\u003ebddf8ad\u003c/code\u003e\u003c/a\u003e build: bump tree_sitter/core from \u003ccode\u003ea467ea8\u003c/code\u003e to \u003ccode\u003eda6fe9b\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/commit/2a94c018de52dc5e107e12ea15bd02c1af67b44e\"\u003e\u003ccode\u003e2a94c01\u003c/code\u003e\u003c/a\u003e fix(parser): fix memleak of source_view\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/commit/10ff18df42c524a088d0f540c14e595853ffc105\"\u003e\u003ccode\u003e10ff18d\u003c/code\u003e\u003c/a\u003e build: bump tree_sitter/core from \u003ccode\u003e629093d\u003c/code\u003e to \u003ccode\u003ea467ea8\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/commit/8452c1bc047af6e03c83260824019b26c3bf52b1\"\u003e\u003ccode\u003e8452c1b\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-python from 5 to 6 in the actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/commit/d2d8789c7904cd10efcdc02bc9b8046a71fb26c1\"\u003e\u003ccode\u003ed2d8789\u003c/code\u003e\u003c/a\u003e ci: bump actions/upload-pages-artifact from 3 to 4 in the actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/commit/d36bde57f944a241b4ad164e47143503cf5a68ea\"\u003e\u003ccode\u003ed36bde5\u003c/code\u003e\u003c/a\u003e build: properly detect MSVC compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/commit/ec0eab3540c06412e87ec134c597906b86ffa6e5\"\u003e\u003ccode\u003eec0eab3\u003c/code\u003e\u003c/a\u003e build: bump tree_sitter/core from \u003ccode\u003e3624198\u003c/code\u003e to \u003ccode\u003e629093d\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/commit/5bae23014238bb03ad46b1bfce5cd211693eaf85\"\u003e\u003ccode\u003e5bae230\u003c/code\u003e\u003c/a\u003e ci: bump actions/checkout from 4 to 5 in the actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/commit/794a34f1c2979b226252c79bb03d3f28d3384508\"\u003e\u003ccode\u003e794a34f\u003c/code\u003e\u003c/a\u003e ci: bump actions/download-artifact from 4 to 5 in the actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tree-sitter/py-tree-sitter/compare/v0.23.0...v0.25.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tree-sitter-python` from 0.23.2 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/releases\"\u003etree-sitter-python's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-python.tar.gz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003ch2\u003ev0.23.6\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-python.tar.xz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003ch2\u003ev0.23.5\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-python.tar.xz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003ch2\u003ev0.23.4\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-python.tar.xz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003ch2\u003ev0.23.3\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-python.tar.xz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\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/tree-sitter/tree-sitter-python/commit/293fdc02038ee2bf0e2e206711b69c90ac0d413f\"\u003e\u003ccode\u003e293fdc0\u003c/code\u003e\u003c/a\u003e 0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/commit/34a91a25148ef5665d061eb7b17da71f4dba5be5\"\u003e\u003ccode\u003e34a91a2\u003c/code\u003e\u003c/a\u003e chore: generate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/commit/8ad8a51712c3f42feef039f9c358b59e035845c0\"\u003e\u003ccode\u003e8ad8a51\u003c/code\u003e\u003c/a\u003e ci: update failing files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/commit/a0b84ed4d2fcafdf5c4c28b88875b16ac7d668d6\"\u003e\u003ccode\u003ea0b84ed\u003c/code\u003e\u003c/a\u003e test: update tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/commit/1b1ca93298f0a67987abbda88a861d65da28cdb4\"\u003e\u003ccode\u003e1b1ca93\u003c/code\u003e\u003c/a\u003e fix: give a higher lexical precedence to the \u003ccode\u003e*\u003c/code\u003e in \u003ccode\u003eexcept*\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/commit/a4c106f37ade66eb0d184935d7e897c672635b1a\"\u003e\u003ccode\u003ea4c106f\u003c/code\u003e\u003c/a\u003e feat: allow multiple exception expressions without parenthesis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/commit/29e3bc2baf6b16eac59c3b54e81ace4ca123e04f\"\u003e\u003ccode\u003e29e3bc2\u003c/code\u003e\u003c/a\u003e refactor!: simplify exceptions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/commit/d8f9e696415c1c549909f6d24c6796d9e1b55c1b\"\u003e\u003ccode\u003ed8f9e69\u003c/code\u003e\u003c/a\u003e feat: add PEP 750 template string support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/commit/7ff26dacd720393d3cfeda14351f168a79146a33\"\u003e\u003ccode\u003e7ff26da\u003c/code\u003e\u003c/a\u003e feat: simplify try statement by accepting missing else/except/finally blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/commit/afdba005d0bfba9951dc336939bbc0ab67ac9df1\"\u003e\u003ccode\u003eafdba00\u003c/code\u003e\u003c/a\u003e build: update bindings\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tree-sitter/tree-sitter-python/compare/v0.23.2...v0.25.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tree-sitter-typescript` from 0.23.0 to 0.23.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/releases\"\u003etree-sitter-typescript's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.23.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-typescript.tar.xz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-typescript.tar.xz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\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/tree-sitter/tree-sitter-typescript/commit/f975a621f4e7f532fe322e13c4f79495e0a7b2e7\"\u003e\u003ccode\u003ef975a62\u003c/code\u003e\u003c/a\u003e 0.23.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/commit/61e2a7730c8163ca4109f393a6285c9dc1721016\"\u003e\u003ccode\u003e61e2a77\u003c/code\u003e\u003c/a\u003e 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/commit/7bfe051cb1364c735a10bd82c9768df94fe16992\"\u003e\u003ccode\u003e7bfe051\u003c/code\u003e\u003c/a\u003e fix(rust): don't fetch files from node_modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/commit/aa6c28ffda6179d74ce7f120b6c90a1970164d06\"\u003e\u003ccode\u003eaa6c28f\u003c/code\u003e\u003c/a\u003e fix: remove glimmer tags\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/commit/9230875b05158461ae83001065252d2450efc7e0\"\u003e\u003ccode\u003e9230875\u003c/code\u003e\u003c/a\u003e build: move tree-sitter-javascript to \u003ccode\u003edependencies\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/commit/14af1670c16cab8422d2a504dc4e5961293934e3\"\u003e\u003ccode\u003e14af167\u003c/code\u003e\u003c/a\u003e chore: regenerate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/commit/31725c1c2e0e1e9cae46b06d5db8744c06840675\"\u003e\u003ccode\u003e31725c1\u003c/code\u003e\u003c/a\u003e build: update bindings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/commit/89e04209c9fa699bfeda532c214c6cd165e43ea5\"\u003e\u003ccode\u003e89e0420\u003c/code\u003e\u003c/a\u003e feat(node): support single-file executables via \u003ccode\u003ebun build --compile\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/commit/73c4447796b251295b498227bad028d88dc1918b\"\u003e\u003ccode\u003e73c4447\u003c/code\u003e\u003c/a\u003e chore: regenerate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/commit/18bb23acd962f0d96126dcfc165271873c355c04\"\u003e\u003ccode\u003e18bb23a\u003c/code\u003e\u003c/a\u003e build: update bindings\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tree-sitter/tree-sitter-typescript/compare/v0.23.0...v0.23.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.5.5 to 0.15.16\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.16\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (\u003ccode\u003eASYNC119\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24644\"\u003e#24644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Narrow diagnostic range and exclude cases without exception handlers (\u003ccode\u003ePLW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25440\"\u003e#25440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat \u003ccode\u003eyield\u003c/code\u003e before \u003ccode\u003ebreak\u003c/code\u003e from a terminal loop as terminal (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25447\"\u003e#25447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Avoid flagging \u003ccode\u003eruff:ignore\u003c/code\u003e comments as code (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25537\"\u003e#25537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix \u003ccode\u003eERA001\u003c/code\u003e/\u003ccode\u003eRUF100\u003c/code\u003e conflict when \u003ccode\u003enoqa\u003c/code\u003e is on commented-out code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25414\"\u003e#25414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Avoid removing the \u003ccode\u003eformat\u003c/code\u003e call when it would change behavior (\u003ccode\u003eF523\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25320\"\u003e#25320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (\u003ccode\u003ePLE2510\u003c/code\u003e, \u003ccode\u003ePLE2512\u003c/code\u003e, \u003ccode\u003ePLE2513\u003c/code\u003e, \u003ccode\u003ePLE2514\u003c/code\u003e, \u003ccode\u003ePLE2515\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25544\"\u003e#25544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid converting \u003ccode\u003eformat\u003c/code\u003e calls with more kinds of side effects (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25484\"\u003e#25484\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid fixes for ambiguous \u003ccode\u003eargnames\u003c/code\u003e and \u003ccode\u003eargvalues\u003c/code\u003e combinations (\u003ccode\u003ePT006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24776\"\u003e#24776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop excess capacity from statement suites during parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25368\"\u003e#25368\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Improve discoverability of rules enabled for each convention (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24973\"\u003e#24973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Restore example code for Python versions before 3.15 (\u003ccode\u003eRUF017\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25439\"\u003e#25439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo \u003ccode\u003ebin/active\u003c/code\u003e → \u003ccode\u003ebin/activate\u003c/code\u003e in tutorial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25473\"\u003e#25473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Redslayer112\"\u003e\u003ccode\u003e@​Redslayer112\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koriyoshi2041\"\u003e\u003ccode\u003e@​koriyoshi2041\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/George-Ogden\"\u003e\u003ccode\u003e@​George-Ogden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/loganrosen\"\u003e\u003ccode\u003e@​loganrosen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RafaelJohn9\"\u003e\u003ccode\u003e@​RafaelJohn9\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\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/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.16\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (\u003ccode\u003eASYNC119\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24644\"\u003e#24644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Narrow diagnostic range and exclude cases without exception handlers (\u003ccode\u003ePLW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25440\"\u003e#25440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat \u003ccode\u003eyield\u003c/code\u003e before \u003ccode\u003ebreak\u003c/code\u003e from a terminal loop as terminal (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25447\"\u003e#25447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Avoid flagging \u003ccode\u003eruff:ignore\u003c/code\u003e comments as code (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25537\"\u003e#25537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix \u003ccode\u003eERA001\u003c/code\u003e/\u003ccode\u003eRUF100\u003c/code\u003e conflict when \u003ccode\u003enoqa\u003c/code\u003e is on commented-out code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25414\"\u003e#25414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Avoid removing the \u003ccode\u003eformat\u003c/code\u003e call when it would change behavior (\u003ccode\u003eF523\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25320\"\u003e#25320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (\u003ccode\u003ePLE2510\u003c/code\u003e, \u003ccode\u003ePLE2512\u003c/code\u003e, \u003ccode\u003ePLE2513\u003c/code\u003e, \u003ccode\u003ePLE2514\u003c/code\u003e, \u003ccode\u003ePLE2515\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25544\"\u003e#25544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid converting \u003ccode\u003eformat\u003c/code\u003e calls with more kinds of side effects (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25484\"\u003e#25484\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid fixes for ambiguous \u003ccode\u003eargnames\u003c/code\u003e and \u003ccode\u003eargvalues\u003c/code\u003e combinations (\u003ccode\u003ePT006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24776\"\u003e#24776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop excess capacity from statement suites during parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25368\"\u003e#25368\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Improve discoverability of rules enabled for each convention (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24973\"\u003e#24973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Restore example code for Python versions before 3.15 (\u003ccode\u003eRUF017\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25439\"\u003e#25439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo \u003ccode\u003ebin/active\u003c/code\u003e → \u003ccode\u003ebin/activate\u003c/code\u003e in tutorial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25473\"\u003e#25473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Redslayer112\"\u003e\u003ccode\u003e@​Redslayer112\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koriyoshi2041\"\u003e\u003ccode\u003e@​koriyoshi2041\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/George-Ogden\"\u003e\u003ccode\u003e@​George-Ogden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/loganrosen\"\u003e\u003ccode\u003e@​loganrosen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RafaelJohn9\"\u003e\u003ccode\u003e@​RafaelJohn9\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.15\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/astral-sh/ruff/commit/6c498ab5394edc5622d7f348e12956bf86203716\"\u003e\u003ccode\u003e6c498ab\u003c/code\u003e\u003c/a\u003e Bump 0.15.16 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25635\"\u003e#25635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e51e132831c4e1c4a5ac00fca4c9256354ab99bf\"\u003e\u003ccode\u003ee51e132\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (`AS...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7c6dcd9f2611999c449143d241c582dedf287964\"\u003e\u003ccode\u003e7c6dcd9\u003c/code\u003e\u003c/a\u003e [ty] Add caching for pattern match narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25613\"\u003e#25613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/27058fc071b542bf06395ba89cabed061d313ca6\"\u003e\u003ccode\u003e27058fc\u003c/code\u003e\u003c/a\u003e [ty] Compact retained definition and expression identities (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25606\"\u003e#25606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bf80d05f007c939799f530c9e775ed9449f5b2eb\"\u003e\u003ccode\u003ebf80d05\u003c/code\u003e\u003c/a\u003e Fix CODEOWNERS syntax (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25622\"\u003e#25622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10ccd511e94a81d1e836b174f1c553a73ff3f1b3\"\u003e\u003ccode\u003e10ccd51\u003c/code\u003e\u003c/a\u003e Shrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0d7135f4d23e7f4d8404daed16b9ef11d14f3fb9\"\u003e\u003ccode\u003e0d7135f\u003c/code\u003e\u003c/a\u003e [ty] Upgrade Salsa (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25545\"\u003e#25545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/49493a3cea83a08fa9aa143695017c816a540f1d\"\u003e\u003ccode\u003e49493a3\u003c/code\u003e\u003c/a\u003e [ty] Show type alias value on hover (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25381\"\u003e#25381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/85207d3b7657a84252f266766cb0d56034dc21cc\"\u003e\u003ccode\u003e85207d3\u003c/code\u003e\u003c/a\u003e [ty] sys.implementation.version is not sys.version_info (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25608\"\u003e#25608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a8a0614348c1fcf47fc9b666eff61a103914d520\"\u003e\u003ccode\u003ea8a0614\u003c/code\u003e\u003c/a\u003e [ty] Avoid retaining duplicate function signatures (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25609\"\u003e#25609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.5.5...0.15.16\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `respx` from 0.21.1 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.23.0\u003c/h2\u003e\n\u003ch2\u003e0.23.0 (7th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.22.0\u003c/h2\u003e\n\u003ch2\u003e0.22.0 (19th December 2024)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.21.1...0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bandit` from 1.7.9 to 1.9.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/bandit/releases\"\u003ebandit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.9.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: fixed some typos in comments by \u003ca href=\"https://github.com/jakob1379\"\u003e\u003ccode\u003e@​jakob1379\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1351\"\u003ePyCQA/bandit#1351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump docker/login-action from 3.6.0 to 3.7.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1353\"\u003ePyCQA/bandit#1353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump docker/build-push-action from 6.18.0 to 6.19.2 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1357\"\u003ePyCQA/bandit#1357\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix B613 crash when reading from stdin by \u003ca href=\"https://github.com/worksbyfriday\"\u003e\u003ccode\u003e@​worksbyfriday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1361\"\u003ePyCQA/bandit#1361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude filename in nosec 'no failed test' warning by \u003ca href=\"https://github.com/worksbyfriday\"\u003e\u003ccode\u003e@​worksbyfriday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1363\"\u003ePyCQA/bandit#1363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix B615 false positive when revision is set via variable by \u003ca href=\"https://github.com/worksbyfriday\"\u003e\u003ccode\u003e@​worksbyfriday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1358\"\u003ePyCQA/bandit#1358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLower version guard in check_ast_node to Python 3.12 by \u003ca href=\"https://github.com/rcgray\"\u003e\u003ccode\u003e@​rcgray\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1355\"\u003ePyCQA/bandit#1355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix B106 reporting wrong line number on multiline function calls by \u003ca href=\"https://github.com/worksbyfriday\"\u003e\u003ccode\u003e@​worksbyfriday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1360\"\u003ePyCQA/bandit#1360\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/jakob1379\"\u003e\u003ccode\u003e@​jakob1379\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1351\"\u003ePyCQA/bandit#1351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/worksbyfriday\"\u003e\u003ccode\u003e@​worksbyfriday\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1361\"\u003ePyCQA/bandit#1361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rcgray\"\u003e\u003ccode\u003e@​rcgray\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyCQA/bandit/pull/1355\"\u003ePyCQA/bandit#1355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyCQA/bandit/compare/1.9.3...1.9.4\"\u003ehttps://github.com/PyCQA/bandit/compare/1.9.3...1.9.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.9.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redire...\n\n_Description has been truncated_","html_url":"https://github.com/sochaty/dhi/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sochaty%2Fdhi/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"}},{"old_version":"0.22.0","new_version":"0.23.1","update_type":"minor","path":null,"pr_created_at":"2026-06-02T00:40:31.000Z","version_change":"0.22.0 → 0.23.1","issue":{"uuid":"4567388939","node_id":"PR_kwDOOb2ots7hlJiP","number":1272,"state":"closed","title":"chore(deps-dev): Bump respx from 0.22.0 to 0.23.1","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-02T23:08:23.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-02T00:40:31.000Z","updated_at":"2026-06-02T23:08:32.000Z","time_to_close":80872,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): Bump","packages":[{"name":"respx","old_version":"0.22.0","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Bumps [respx](https://github.com/lundberg/respx) from 0.22.0 to 0.23.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.23.0\u003c/h2\u003e\n\u003ch2\u003e0.23.0 (7th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.22.0...0.23.1\"\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=respx\u0026package-manager=pip\u0026previous-version=0.22.0\u0026new-version=0.23.1)](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/fderuiter/imednet-python-sdk/pull/1272","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/fderuiter%2Fimednet-python-sdk/issues/1272","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1272/packages"}},{"old_version":"\u003e=0.21","new_version":"\u003e=0.23.1","update_type":null,"path":null,"pr_created_at":"2026-05-29T22:41:31.000Z","version_change":"\u003e=0.21 → \u003e=0.23.1","issue":{"uuid":"4552065301","node_id":"PR_kwDOSrwtv87g1B2p","number":8,"state":"open","title":"chore(deps-dev): Update respx requirement from \u003e=0.21 to \u003e=0.23.1","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-29T22:41:31.000Z","updated_at":"2026-05-29T22:45:23.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): Update","packages":[{"name":"respx","old_version":"\u003e=0.21","new_version":"\u003e=0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [respx](https://github.com/lundberg/respx) 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/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.21.1] - 2024-03-27\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efiles\u003c/code\u003e pattern not handling \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eBytesIO\u003c/code\u003e, thanks \u003ca href=\"https://github.com/pierremonico\"\u003e\u003ccode\u003e@​pierremonico\u003c/code\u003e\u003c/a\u003e for input\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.21.0...0.23.1\"\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/DataCore-VietNam/datacore-python/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataCore-VietNam%2Fdatacore-python/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"}},{"old_version":"\u003e=0.21","new_version":"\u003e=0.23.1","update_type":null,"path":null,"pr_created_at":"2026-05-23T23:05:24.000Z","version_change":"\u003e=0.21 → \u003e=0.23.1","issue":{"uuid":"4509852043","node_id":"PR_kwDOSmCdNs7esuQG","number":12,"state":"closed","title":"deps(deps-dev): update respx requirement from \u003e=0.21 to \u003e=0.23.1","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-23T23:09:25.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-23T23:05:24.000Z","updated_at":"2026-05-23T23:09:55.000Z","time_to_close":241,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps-dev): update","packages":[{"name":"respx","old_version":"\u003e=0.21","new_version":"\u003e=0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [respx](https://github.com/lundberg/respx) 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/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.21.1] - 2024-03-27\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efiles\u003c/code\u003e pattern not handling \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eBytesIO\u003c/code\u003e, thanks \u003ca href=\"https://github.com/pierremonico\"\u003e\u003ccode\u003e@​pierremonico\u003c/code\u003e\u003c/a\u003e for input\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.21.0...0.23.1\"\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/bsdwiz/faro/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsdwiz%2Ffaro/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"}},{"old_version":"\u003c1.0.0,\u003e=0.21.0","new_version":"\u003e=0.23.1,\u003c1.0.0","update_type":"minor","path":"/backend","pr_created_at":"2026-05-18T00:31:48.000Z","version_change":"\u003c1.0.0,\u003e=0.21.0 → \u003e=0.23.1,\u003c1.0.0","issue":{"uuid":"4465449252","node_id":"PR_kwDORw6c6s7cdykn","number":176,"state":"open","title":"chore(deps)(deps): update respx requirement from \u003c1.0.0,\u003e=0.21.0 to \u003e=0.23.1,\u003c1.0.0 in /backend","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-05-18T00:31:48.000Z","updated_at":"2026-05-18T00:36:49.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): update","packages":[{"name":"respx","old_version":"\u003c1.0.0,\u003e=0.21.0","new_version":"\u003e=0.23.1,\u003c1.0.0","repository_url":"https://github.com/lundberg/respx"}],"path":"/backend","ecosystem":"pip"},"body":"Updates the requirements on [respx](https://github.com/lundberg/respx) 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/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.21.1] - 2024-03-27\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efiles\u003c/code\u003e pattern not handling \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eBytesIO\u003c/code\u003e, thanks \u003ca href=\"https://github.com/pierremonico\"\u003e\u003ccode\u003e@​pierremonico\u003c/code\u003e\u003c/a\u003e for input\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.21.0...0.23.1\"\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/hdj82-bot/classauto.live-/pull/176","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdj82-bot%2Fclassauto.live-/issues/176","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/176/packages"}},{"old_version":"\u003e=0.21","new_version":"\u003e=0.23.1","update_type":null,"path":null,"pr_created_at":"2026-05-12T09:44:54.000Z","version_change":"\u003e=0.21 → \u003e=0.23.1","issue":{"uuid":"4428000474","node_id":"PR_kwDORiZsj87anO7N","number":722,"state":"closed","title":"build(deps): Update respx requirement from \u003e=0.21 to \u003e=0.23.1","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-23T11:29:07.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-12T09:44:54.000Z","updated_at":"2026-05-23T11:29:16.000Z","time_to_close":956653,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Update","packages":[{"name":"respx","old_version":"\u003e=0.21","new_version":"\u003e=0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [respx](https://github.com/lundberg/respx) 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/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.21.1] - 2024-03-27\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efiles\u003c/code\u003e pattern not handling \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eBytesIO\u003c/code\u003e, thanks \u003ca href=\"https://github.com/pierremonico\"\u003e\u003ccode\u003e@​pierremonico\u003c/code\u003e\u003c/a\u003e for input\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.22.0...0.23.1\"\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/niuulabs/volundr/pull/722","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/niuulabs%2Fvolundr/issues/722","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/722/packages"}},{"old_version":"\u003e=0.21","new_version":"\u003e=0.23.1","update_type":null,"path":"/BE","pr_created_at":"2026-05-06T05:32:55.000Z","version_change":"\u003e=0.21 → \u003e=0.23.1","issue":{"uuid":"4388989227","node_id":"PR_kwDOR_1vWs7YpI9a","number":35,"state":"open","title":"chore(deps): update respx requirement from \u003e=0.21 to \u003e=0.23.1 in /BE","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-05-06T05:32:55.000Z","updated_at":"2026-05-06T05:33:01.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): update","packages":[{"name":"respx","old_version":"\u003e=0.21","new_version":"\u003e=0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":"/BE","ecosystem":"pip"},"body":"Updates the requirements on [respx](https://github.com/lundberg/respx) 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/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.21.1] - 2024-03-27\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efiles\u003c/code\u003e pattern not handling \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eBytesIO\u003c/code\u003e, thanks \u003ca href=\"https://github.com/pierremonico\"\u003e\u003ccode\u003e@​pierremonico\u003c/code\u003e\u003c/a\u003e for input\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.21.0...0.23.1\"\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/rahulyer002/ConnectLocal/pull/35","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahulyer002%2FConnectLocal/issues/35","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/35/packages"}},{"old_version":"0.22.0","new_version":"0.23.1","update_type":"minor","path":null,"pr_created_at":"2026-05-04T22:32:18.000Z","version_change":"0.22.0 → 0.23.1","issue":{"uuid":"4380110325","node_id":"PR_kwDORwUiN87YMMPx","number":18,"state":"closed","title":"build(deps): bump the minor-and-patch group across 1 directory with 21 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-12T01:07:03.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-04T22:32:18.000Z","updated_at":"2026-05-12T01:07:05.000Z","time_to_close":614085,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"minor-and-patch","update_count":21,"packages":[{"name":"certifi","old_version":"2026.2.25","new_version":"2026.4.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.6","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.1","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"cloudpathlib","old_version":"0.23.0","new_version":"0.24.0","repository_url":"https://github.com/drivendataorg/cloudpathlib"},{"name":"fastapi","old_version":"0.115.12","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"idna","old_version":"3.11","new_version":"3.13","repository_url":"https://github.com/kjd/idna"},{"name":"numpy","old_version":"2.4.3","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"packaging","old_version":"26.0","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.9.1","new_version":"2.14.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.46.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyinstaller","old_version":"6.19.0","new_version":"6.20.0","repository_url":"https://github.com/pyinstaller/pyinstaller"},{"name":"pyinstaller-hooks-contrib","old_version":"2026.3","new_version":"2026.4","repository_url":"https://github.com/pyinstaller/pyinstaller-hooks-contrib"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"respx","old_version":"0.22.0","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"},{"name":"smart-open","old_version":"7.5.1","new_version":"7.6.0","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"spacy","old_version":"3.8.13","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"},{"name":"typer","old_version":"0.24.1","new_version":"0.25.1","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.34.3","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-and-patch group with 21 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.4.22` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.6` | `3.4.7` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.3` |\n| [cloudpathlib](https://github.com/drivendataorg/cloudpathlib) | `0.23.0` | `0.24.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.12` | `0.136.1` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.13` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.3` | `2.4.4` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.2` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.9.1` | `2.14.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.5` | `2.46.3` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pyinstaller](https://github.com/pyinstaller/pyinstaller) | `6.19.0` | `6.20.0` |\n| [pyinstaller-hooks-contrib](https://github.com/pyinstaller/pyinstaller-hooks-contrib) | `2026.3` | `2026.4` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [respx](https://github.com/lundberg/respx) | `0.22.0` | `0.23.1` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.5.1` | `7.6.0` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.13` | `3.8.14` |\n| [typer](https://github.com/fastapi/typer) | `0.24.1` | `0.25.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.3` | `0.46.0` |\n\n\nUpdates `certifi` from 2026.2.25 to 2026.4.22\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/5dddfb072243da27adde885b73ba9b809c3224ca\"\u003e\u003ccode\u003e5dddfb0\u003c/code\u003e\u003c/a\u003e 2026.04.22 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/f99eccdaf87f7c10e521a58a700ca3eb94a0787e\"\u003e\u003ccode\u003ef99eccd\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/918bed055f7291719512af186c1c24710f845660\"\u003e\u003ccode\u003e918bed0\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/405\"\u003e#405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/0a49067eb434e53e1f8df5f7707d5dc05ef9def4\"\u003e\u003ccode\u003e0a49067\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/acf6ce8e39e3b125f4349e11904295e4fe4c1bed\"\u003e\u003ccode\u003eacf6ce8\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/feb0ed26163a9417ea0fb8eb52d47e79fcf202ab\"\u003e\u003ccode\u003efeb0ed2\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7.0.0 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d9c11a50369cc377abb40f7909ded3d6da4d98a3\"\u003e\u003ccode\u003ed9c11a5\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2026.02.25...2026.04.22\"\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.4.6 to 3.4.7\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.7\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\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/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.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\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/jawah/charset_normalizer/commit/0f07891bf516b5d5231f1bd4dd2d8da7d4d09a9a\"\u003e\u003ccode\u003e0f07891\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/729\"\u003e#729\u003c/a\u003e from jawah/release-3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/fdbeb299479e8f4d737e4d227cd0b2bd5d273dc0\"\u003e\u003ccode\u003efdbeb29\u003c/code\u003e\u003c/a\u003e chore: update dev, and ci requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b66f922bfbdbdd9dd46af18a8964d4fb888756d4\"\u003e\u003ccode\u003eb66f922\u003c/code\u003e\u003c/a\u003e chore: add ft classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f94249d0a2c712f2d03124f4de6b77f5e03aaa96\"\u003e\u003ccode\u003ef94249d\u003c/code\u003e\u003c/a\u003e chore: add test cases for utf_7 recent fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/95c866f6c984bbd043e7e3ed0628aa4f3f8d5a26\"\u003e\u003ccode\u003e95c866f\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4f429bb764c7e893f99bb4bceb60856da1baacfb\"\u003e\u003ccode\u003e4f429bb\u003c/code\u003e\u003c/a\u003e chore: bump mypy pre-commit to v1.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b579cd6cab9bd83aa3fc0ca169d4df022bf4888c\"\u003e\u003ccode\u003eb579cd6\u003c/code\u003e\u003c/a\u003e fix: correctly remove SIG remnant in utf-7 decoded string\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/58bf944a77cc0883fc46a6ee8edac3549fea5d59\"\u003e\u003ccode\u003e58bf944\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 4.32.4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/44cf8a1b676a2532a8f1694e62e4f4f98f9132e1\"\u003e\u003ccode\u003e44cf8a1\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/362bc20073f737b1ba4ca2f68cffb0c4cc024d20\"\u003e\u003ccode\u003e362bc20\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump docker/setup-qemu-action from 3.7.0 to 4.0.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.6...3.4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.3.1 to 8.3.3\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.3\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.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/click/8.3.3/\"\u003ehttps://pypi.org/project/click/8.3.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-3\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/30\"\u003ehttps://github.com/pallets/click/milestone/30\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse :func:\u003ccode\u003eshlex.split\u003c/code\u003e to split pager and editor commands into \u003ccode\u003eargv\u003c/code\u003e\nlists for :class:\u003ccode\u003esubprocess.Popen\u003c/code\u003e, removing \u003ccode\u003eshell=True\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/1026\"\u003e#1026\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1477\"\u003e#1477\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2775\"\u003e#2775\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eTypeError\u003c/code\u003e when rendering help for an option whose default value is\nan object that doesn't support equality comparison with strings, such as\n\u003ccode\u003esemver.Version\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3298\"\u003e#3298\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3299\"\u003e#3299\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pager test pollution under parallel execution by using pytest's\n\u003ccode\u003etmp_path\u003c/code\u003e fixture instead of a shared temporary file path. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3238\"\u003e#3238\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values in a \u003ccode\u003edefault_map\u003c/code\u003e as absent, so they fall\nthrough to the next default source instead of being used as the value.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3224\"\u003e#3224\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3240\"\u003e#3240\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch \u003ccode\u003epdb.Pdb\u003c/code\u003e in \u003ccode\u003eCliRunner\u003c/code\u003e isolation so \u003ccode\u003epdb.set_trace()\u003c/code\u003e,\n\u003ccode\u003ebreakpoint()\u003c/code\u003e, and debuggers subclassing \u003ccode\u003epdb.Pdb\u003c/code\u003e (ipdb, pdbpp) can\ninteract with the real terminal instead of the captured I/O streams.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/654\"\u003e#654\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/824\"\u003e#824\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/843\"\u003e#843\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/951\"\u003e#951\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3235\"\u003e#3235\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd optional randomized parallel test execution using \u003ccode\u003epytest-randomly\u003c/code\u003e and\n\u003ccode\u003epytest-xdist\u003c/code\u003e to detect test pollution and race conditions. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3151\"\u003e#3151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd contributor documentation for running stress tests, randomized\nparallel tests, and Flask smoke tests. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3151\"\u003e#3151\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3177\"\u003e#3177\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow custom \u003ccode\u003eshow_default\u003c/code\u003e string in prompts, matching the existing\nhelp text behavior. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2836\"\u003e#2836\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2837\"\u003e#2837\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3165\"\u003e#3165\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3262\"\u003e#3262\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3280\"\u003e#3280\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3328\"\u003e#3328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edefault=True\u003c/code\u003e with boolean \u003ccode\u003eflag_value\u003c/code\u003e always returning the\n\u003ccode\u003eflag_value\u003c/code\u003e instead of \u003ccode\u003eTrue\u003c/code\u003e. The \u003ccode\u003edefault=True\u003c/code\u003e to \u003ccode\u003eflag_value\u003c/code\u003e\nsubstitution now only applies to non-boolean flags, where \u003ccode\u003eTrue\u003c/code\u003e acts as a\nsentinel meaning \u0026quot;activate this flag by default\u0026quot;. For boolean flags,\n\u003ccode\u003edefault=True\u003c/code\u003e is returned as a literal value. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3111\"\u003e#3111\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3239\"\u003e#3239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003emake_default_short_help\u003c/code\u003e as private API. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3189\"\u003e#3189\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3250\"\u003e#3250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCliRunner\u003c/code\u003e's redirected streams now expose the original file descriptor\nvia \u003ccode\u003efileno()\u003c/code\u003e, so that \u003ccode\u003efaulthandler\u003c/code\u003e, \u003ccode\u003esubprocess\u003c/code\u003e, and other\nC-level consumers no longer crash with \u003ccode\u003eio.UnsupportedOperation\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2865\"\u003e#2865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange :class:\u003ccode\u003eParameterSource\u003c/code\u003e to an :class:\u003ccode\u003e~enum.IntEnum\u003c/code\u003e and reorder\nits members from most to least explicit, so values can be compared to\ncheck whether a parameter was explicitly provided. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2879\"\u003e#2879\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3248\"\u003e#3248\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.3.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.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.3.2/\"\u003ehttps://pypi.org/project/click/8.3.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/29\"\u003ehttps://github.com/pallets/click/milestone/29\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.3\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse :func:\u003ccode\u003eshlex.split\u003c/code\u003e to split pager and editor commands into \u003ccode\u003eargv\u003c/code\u003e\nlists for :class:\u003ccode\u003esubprocess.Popen\u003c/code\u003e, removing \u003ccode\u003eshell=True\u003c/code\u003e.\n:issue:\u003ccode\u003e1026\u003c/code\u003e :pr:\u003ccode\u003e1477\u003c/code\u003e :pr:\u003ccode\u003e2775\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eTypeError\u003c/code\u003e when rendering help for an option whose default value is\nan object that doesn't support equality comparison with strings, such as\n\u003ccode\u003esemver.Version\u003c/code\u003e. :issue:\u003ccode\u003e3298\u003c/code\u003e :pr:\u003ccode\u003e3299\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix pager test pollution under parallel execution by using pytest's\n\u003ccode\u003etmp_path\u003c/code\u003e fixture instead of a shared temporary file path. :pr:\u003ccode\u003e3238\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values in a \u003ccode\u003edefault_map\u003c/code\u003e as absent, so they fall\nthrough to the next default source instead of being used as the value.\n:issue:\u003ccode\u003e3224\u003c/code\u003e :pr:\u003ccode\u003e3240\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePatch \u003ccode\u003epdb.Pdb\u003c/code\u003e in \u003ccode\u003eCliRunner\u003c/code\u003e isolation so \u003ccode\u003epdb.set_trace()\u003c/code\u003e,\n\u003ccode\u003ebreakpoint()\u003c/code\u003e, and debuggers subclassing \u003ccode\u003epdb.Pdb\u003c/code\u003e (ipdb, pdbpp) can\ninteract with the real terminal instead of the captured I/O streams.\n:issue:\u003ccode\u003e654\u003c/code\u003e :issue:\u003ccode\u003e824\u003c/code\u003e :issue:\u003ccode\u003e843\u003c/code\u003e :pr:\u003ccode\u003e951\u003c/code\u003e :pr:\u003ccode\u003e3235\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd optional randomized parallel test execution using \u003ccode\u003epytest-randomly\u003c/code\u003e and\n\u003ccode\u003epytest-xdist\u003c/code\u003e to detect test pollution and race conditions. :pr:\u003ccode\u003e3151\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd contributor documentation for running stress tests, randomized\nparallel tests, and Flask smoke tests. :pr:\u003ccode\u003e3151\u003c/code\u003e :pr:\u003ccode\u003e3177\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eShow custom \u003ccode\u003eshow_default\u003c/code\u003e string in prompts, matching the existing\nhelp text behavior. :issue:\u003ccode\u003e2836\u003c/code\u003e :pr:\u003ccode\u003e2837\u003c/code\u003e :pr:\u003ccode\u003e3165\u003c/code\u003e :pr:\u003ccode\u003e3262\u003c/code\u003e :pr:\u003ccode\u003e3280\u003c/code\u003e\n:pr:\u003ccode\u003e3328\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edefault=True\u003c/code\u003e with boolean \u003ccode\u003eflag_value\u003c/code\u003e always returning the\n\u003ccode\u003eflag_value\u003c/code\u003e instead of \u003ccode\u003eTrue\u003c/code\u003e. The \u003ccode\u003edefault=True\u003c/code\u003e to \u003ccode\u003eflag_value\u003c/code\u003e\nsubstitution now only applies to non-boolean flags, where \u003ccode\u003eTrue\u003c/code\u003e acts as a\nsentinel meaning \u0026quot;activate this flag by default\u0026quot;. For boolean flags,\n\u003ccode\u003edefault=True\u003c/code\u003e is returned as a literal value. :issue:\u003ccode\u003e3111\u003c/code\u003e :pr:\u003ccode\u003e3239\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003emake_default_short_help\u003c/code\u003e as private API. :issue:\u003ccode\u003e3189\u003c/code\u003e :pr:\u003ccode\u003e3250\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCliRunner\u003c/code\u003e's redirected streams now expose the original file descriptor\nvia \u003ccode\u003efileno()\u003c/code\u003e, so that \u003ccode\u003efaulthandler\u003c/code\u003e, \u003ccode\u003esubprocess\u003c/code\u003e, and other\nC-level consumers no longer crash with \u003ccode\u003eio.UnsupportedOperation\u003c/code\u003e.\n:issue:\u003ccode\u003e2865\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eChange :class:\u003ccode\u003eParameterSource\u003c/code\u003e to an :class:\u003ccode\u003e~enum.IntEnum\u003c/code\u003e and reorder\nits members from most to least explicit, so values can be compared to\ncheck whether a parameter was explicitly provided. :issue:\u003ccode\u003e2879\u003c/code\u003e :pr:\u003ccode\u003e3248\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.3.2\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix handling of \u003ccode\u003eflag_value\u003c/code\u003e when \u003ccode\u003eis_flag=False\u003c/code\u003e to allow such options to be\nused without an explicit value. :issue:\u003ccode\u003e3084\u003c/code\u003e :pr:\u003ccode\u003e3152\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when using \u003ccode\u003elookup_default()\u003c/code\u003e.\n:issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3199\u003c/code\u003e :pr:\u003ccode\u003e3202\u003c/code\u003e :pr:\u003ccode\u003e3209\u003c/code\u003e :pr:\u003ccode\u003e3212\u003c/code\u003e :pr:\u003ccode\u003e3224\u003c/code\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/pallets/click/commit/c06d2d0a6aee6bcc50bd8257be2a4a592f4e75d0\"\u003e\u003ccode\u003ec06d2d0\u003c/code\u003e\u003c/a\u003e Release 8.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f1f191ecd2c790b161187c78e7c88440e9524e5c\"\u003e\u003ccode\u003ef1f191e\u003c/code\u003e\u003c/a\u003e Apply format guidelines to commits since latest 8.3.2 release (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3343\"\u003e#3343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bb59ba0fd279ca085d1113f0499b6a602ca31081\"\u003e\u003ccode\u003ebb59ba0\u003c/code\u003e\u003c/a\u003e Apply format guidelines to commits since latest 8.3.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4a352253c9ff013e36d11e4a6820d36d00ff2cd4\"\u003e\u003ccode\u003e4a35225\u003c/code\u003e\u003c/a\u003e Reduce blast-radius of \u003ccode\u003eUNSET\u003c/code\u003e in \u003ccode\u003edefault_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3240\"\u003e#3240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/c07bb936de43fd303f9cfbefe248ab23fd2199c8\"\u003e\u003ccode\u003ec07bb93\u003c/code\u003e\u003c/a\u003e Merge branch 'stable' into unset-in-default-map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/c7e1ba8448cbcb2cdd9c1c7f4a592e863dcc3995\"\u003e\u003ccode\u003ec7e1ba8\u003c/code\u003e\u003c/a\u003e Reorder \u003ccode\u003eParameterSource\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3248\"\u003e#3248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/76552ff1e8c85837f911fc34037e702ae4327eda\"\u003e\u003ccode\u003e76552ff\u003c/code\u003e\u003c/a\u003e Show default string in prompt (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3328\"\u003e#3328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ac5cec5fe54e5a691e7bac17f441ce9498e0744c\"\u003e\u003ccode\u003eac5cec5\u003c/code\u003e\u003c/a\u003e Reorder ParameterSource from most to least explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8c452e00e6772931b7071d9316b82b77e5b8f280\"\u003e\u003ccode\u003e8c452e0\u003c/code\u003e\u003c/a\u003e Merge branch 'stable' into show-default-string-in-prompt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8c95c73bd5ef89eac638f85f1904a104ba4b1a32\"\u003e\u003ccode\u003e8c95c73\u003c/code\u003e\u003c/a\u003e Reconcile default value passing and default activation (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3239\"\u003e#3239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.3.1...8.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cloudpathlib` from 0.23.0 to 0.24.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/drivendataorg/cloudpathlib/releases\"\u003ecloudpathlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for S3 Multi-Region Access Point (MRAP) URLs in \u003ccode\u003eS3Path\u003c/code\u003e (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/556\"\u003e#556\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for Pydantic serialization (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/537\"\u003e#537\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/538\"\u003e#538\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/drivendataorg/cloudpathlib/blob/master/HISTORY.md\"\u003ecloudpathlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.24.0 (2026-04-29)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for S3 Multi-Region Access Point (MRAP) URLs in \u003ccode\u003eS3Path\u003c/code\u003e (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/556\"\u003e#556\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for Pydantic serialization (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/537\"\u003e#537\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/538\"\u003e#538\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/drivendataorg/cloudpathlib/commit/1d65750d99ac320b8f46016322d6b8fe1995d90f\"\u003e\u003ccode\u003e1d65750\u003c/code\u003e\u003c/a\u003e Add support for S3 Multi-Region Access Point (MRAP) URLs (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/557\"\u003e#557\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/5124aa0a53cfdbaeea71aaccd6e397a686196552\"\u003e\u003ccode\u003e5124aa0\u003c/code\u003e\u003c/a\u003e Reformat with black 26.1.0 (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/542\"\u003e#542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/1ca2eed598119743d92e23e1b8d7585b27b25faa\"\u003e\u003ccode\u003e1ca2eed\u003c/code\u003e\u003c/a\u003e Feat/pydantic serialization (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/538\"\u003e#538\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/539\"\u003e#539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/drivendataorg/cloudpathlib/compare/v0.23.0...v0.24.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.115.12 to 0.136.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.3\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/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.12...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.11 to 3.13\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.13 (2026-04-22)\n+++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect classification error for codepoint U+A7F1\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.12 (2026-04-21)\n+++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 17.0.0.\u003c/li\u003e\n\u003cli\u003eIssue a deprecation warning for the transitional argument.\u003c/li\u003e\n\u003cli\u003eAdded lazy-loading to provide some performance improvements.\u003c/li\u003e\n\u003cli\u003eRemoved vestiges of code related to Python 2 support, including\nsegmentation of data structures specific to Jython.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Rodrigo Nogueira for contributions to this release.\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/kjd/idna/commit/89cdfd27338896cee6b1ee18e64c96ac28684ce0\"\u003e\u003ccode\u003e89cdfd2\u003c/code\u003e\u003c/a\u003e Release v3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1eb068687543118147417a8d8a70674e2c172891\"\u003e\u003ccode\u003e1eb0686\u003c/code\u003e\u003c/a\u003e Pre-release 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/5f20d1e41eea3b3873d18d83d7a384784f72a92e\"\u003e\u003ccode\u003e5f20d1e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/220\"\u003e#220\u003c/a\u003e from kjd/unicode-next\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/4ea84252ab21e62a79e5a3273746112b5dcfb810\"\u003e\u003ccode\u003e4ea8425\u003c/code\u003e\u003c/a\u003e Regenerate idnadata.py with correct NFKC_CF data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/fd47341a08bbdcffda33694211ca4de10170cd41\"\u003e\u003ccode\u003efd47341\u003c/code\u003e\u003c/a\u003e Use NFKC_CF from Unicode data files instead of Python's unicodedata module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a5304a4cdbd7b31595f8ac42ffdfa88f5b936467\"\u003e\u003ccode\u003ea5304a4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/219\"\u003e#219\u003c/a\u003e from kjd/release-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/d80d6f9254d699961fa2c669a1534cde9d4ee5b6\"\u003e\u003ccode\u003ed80d6f9\u003c/code\u003e\u003c/a\u003e Release v3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1bb44ddb3f2a9dcf97a6ac11aba34e5b6ed31291\"\u003e\u003ccode\u003e1bb44dd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/218\"\u003e#218\u003c/a\u003e from kjd/release-candidate-3.12rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/909c49d15b8d159be163bccc7972116baffdb47b\"\u003e\u003ccode\u003e909c49d\u003c/code\u003e\u003c/a\u003e Release candidate for 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/c5459a10370f005dc09921aee3201b5a45699f9d\"\u003e\u003ccode\u003ec5459a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/217\"\u003e#217\u003c/a\u003e from kjd/housekeeping-2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.11...v3.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.4.3 to 2.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.4 (Mar 29, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.4 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.4 is a patch release that fixes bugs discovered after the 2.4.3\nrelease. It should finally close issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e, the OpenBLAS threading problem\non ARM.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 8 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eDaniel Haag +\u003c/li\u003e\n\u003cli\u003eDenis Prokopenko +\u003c/li\u003e\n\u003cli\u003eHarshith J +\u003c/li\u003e\n\u003cli\u003eKoki Watanabe\u003c/li\u003e\n\u003cli\u003eMarten van Kerkwijk\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 7 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30978\"\u003e#30978\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31049\"\u003e#31049\u003c/a\u003e: BUG: Add test to reproduce problem described in \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30818\"\u003e#30818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31052\"\u003e#31052\u003c/a\u003e: BUG: fix FNV-1a 64-bit selection by using NPY_SIZEOF_UINTP (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31035\"\u003e#31035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31053\"\u003e#31053\u003c/a\u003e: BUG: avoid warning on ufunc with where=True and no output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31058\"\u003e#31058\u003c/a\u003e: DOC: document caveats of ndarray.resize on 3.14 and newer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31079\"\u003e#31079\u003c/a\u003e: TST: fix POWER VSX feature mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30801\"\u003e#30801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31084\"\u003e#31084\u003c/a\u003e: MAINT: numpy.i: Replace deprecated \u003ccode\u003esprintf\u003c/code\u003e with \u003ccode\u003esnprintf\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/numpy/numpy/commit/be93fe2960dbf49b4647f5783c66d967fb2c65b5\"\u003e\u003ccode\u003ebe93fe2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31090\"\u003e#31090\u003c/a\u003e from charris/prepare-2.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/f5245dc7ea5c6279c59cb0d5de81113229841290\"\u003e\u003ccode\u003ef5245dc\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/02e838ba270a5ca3dd8afc5a31c090cd34a56615\"\u003e\u003ccode\u003e02e838b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31084\"\u003e#31084\u003c/a\u003e from charris/backport-31056\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fa74b2d05f8f7604bf6635d5280c3216c8ec667f\"\u003e\u003ccode\u003efa74b2d\u003c/code\u003e\u003c/a\u003e MAINT: numpy.i: Replace deprecated \u003ccode\u003esprintf\u003c/code\u003e with \u003ccode\u003esnprintf\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31056\"\u003e#31056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/533a6db96dfa2556a61102a58c35fd64eaf3fa2b\"\u003e\u003ccode\u003e533a6db\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31079\"\u003e#31079\u003c/a\u003e from charris/backport-20801\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9e496cbd0a281195bd779ae1833f2a8f4a1d46a7\"\u003e\u003ccode\u003e9e496cb\u003c/code\u003e\u003c/a\u003e TST: fix POWER VSX feature mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30801\"\u003e#30801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8052c4b69ef18e582709af946f93f9e58b848f39\"\u003e\u003ccode\u003e8052c4b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31058\"\u003e#31058\u003c/a\u003e from charris/backport-31021\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7f13b5ad2b69fd6ea6aa3af7036b2dcf98e96486\"\u003e\u003ccode\u003e7f13b5a\u003c/code\u003e\u003c/a\u003e MAINT: Skip test on PyPy.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/4c5fdd66c8f379a1e2b3f40fa62bd0b87769d1c7\"\u003e\u003ccode\u003e4c5fdd6\u003c/code\u003e\u003c/a\u003e MAINT: Remove unused import of tracemalloc.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/a3ca5ed354b26e0fd6e35bf29765a24271ed7c3a\"\u003e\u003ccode\u003ea3ca5ed\u003c/code\u003e\u003c/a\u003e Update numpy/_core/src/multiarray/shape.c\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.4.3...v2.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 26.0 to 26.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten by \u003ca href=\"https://github.com/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) by \u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1163\"\u003epypa/packaging#1163\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1168\"\u003epypa/packaging#1168\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1170\"\u003epypa/packaging#1170\u003c/a\u003e, and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1171\"\u003epypa/packaging#1171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: re-export ExceptionGroup for now by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1164\"\u003epypa/packaging#1164\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add errors section and fix missing details by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1159\"\u003epypa/packaging#1159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(dev): document property-based test suite by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1167\"\u003epypa/packaging#1167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in DirectUrl documentation by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1169\"\u003epypa/packaging#1169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(specifiers): add is_unsatisfiable() usage example by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1166\"\u003epypa/packaging#1166\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1158\"\u003epypa/packaging#1158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1174\"\u003epypa/packaging#1174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse native uv integration in rtd by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1175\"\u003epypa/packaging#1175\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/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1163\"\u003epypa/packaging#1163\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/packaging/compare/26.1...26.2\"\u003ehttps://github.com/pypa/packaging/compare/26.1...26.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e26.1\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cdel\u003ePEP 783: add handling for Emscripten wheel tags by \u003ca href=\"https://github.com/hoodmane\"\u003e\u003ccode\u003e@​hoodmane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/804\"\u003epypa/packaging#804\u003c/a\u003e\u003c/del\u003e (old name used in implementation, will be fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1099\"\u003epypa/packaging#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1065\"\u003epypa/packaging#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/944\"\u003epypa/packaging#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1071\"\u003epypa/packaging#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1119\"\u003epypa/packaging#1119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1110\"\u003epypa/packaging#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1068\"\u003epypa/packaging#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1146\"\u003epypa/packaging#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1078\"\u003epypa/packaging#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1150\"\u003epypa/packaging#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1140\"\u003epypa/packaging#1140\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/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.2 - 2026-04-24\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFixes:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten in (:pull:\u003ccode\u003e1160\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\u003cbr /\u003e\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\u003cbr /\u003e\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) (:pull:\u003ccode\u003e1163\u003c/code\u003e, :pull:\u003ccode\u003e1168\u003c/code\u003e, :pull:\u003ccode\u003e1170\u003c/code\u003e, :pull:\u003ccode\u003e1171\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRe-export \u003ccode\u003eExceptionGroup\u003c/code\u003e in metadata for now in (:pull:\u003ccode\u003e1164\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd errors section and fix missing details in (:pull:\u003ccode\u003e1159\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument our property-based test suite in (:pull:\u003ccode\u003e1167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eDirectUrl\u003c/code\u003e typo in (:pull:\u003ccode\u003e1167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd example of \u003ccode\u003eis_unsatisfiable\u003c/code\u003e in (:pull:\u003ccode\u003e1166\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor in (:pull:\u003ccode\u003e1158\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees in (:pull:\u003ccode\u003e1174\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse new native ReadTheDocs uv integration in (:pull:\u003ccode\u003e1175\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e26.1 - 2026-04-14\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 783: add handling for Emscripten wheel tags in (:pull:\u003ccode\u003e804\u003c/code\u003e) (old name used in implementation, fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag in (:pull:\u003ccode\u003e1099\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package in (:pull:\u003ccode\u003e1065\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module in (:pull:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module in (:pull:\u003ccode\u003e1071\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) in (:pull:\u003ccode\u003e1119\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags in (:pull:\u003ccode\u003e1110\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e in (:pull:\u003ccode\u003e1068\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's in (:pull:\u003ccode\u003e1146\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e in (:pull:\u003ccode\u003e1078\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e in (:pull:\u003ccode\u003e1150\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1140\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026gt;V\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1141\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private in (:pull:\u003ccode\u003e1125\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII in (:pull:\u003ccode\u003e1102\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\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/pypa/packaging/commit/84a87ee42483d7352f9502d78a9553da8859aa7a\"\u003e\u003ccode\u003e84a87ee\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4a616b65bed23c8c6d58e6b0fc1a4434d4ff1f14\"\u003e\u003ccode\u003e4a616b6\u003c/code\u003e\u003c/a\u003e docs: a few more updates to prepare for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1176\"\u003e#1176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9de6f44f1e82d4595edf3aad1c4f6f98c85935a0\"\u003e\u003ccode\u003e9de6f44\u003c/code\u003e\u003c/a\u003e ci: use native uv integration in rtd (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1175\"\u003e#1175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/bc76e14debd1a2799d1ca8f9d9c9823f35bfa466\"\u003e\u003ccode\u003ebc76e14\u003c/code\u003e\u003c/a\u003e chore: update changelog for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f00091c08f0aa830e33ed7db00f16f11c8ac97f\"\u003e\u003ccode\u003e3f00091\u003c/code\u003e\u003c/a\u003e tests: add a pickle check (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1174\"\u003e#1174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/48a8a069805291186522de3eff73ea80a8ca96ad\"\u003e\u003ccode\u003e48a8a06\u003c/code\u003e\u003c/a\u003e fix: make Requirements/Markers pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1171\"\u003e#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/823b44ed1f904084a77ae3adf0ef130af6365f84\"\u003e\u003ccode\u003e823b44e\u003c/code\u003e\u003c/a\u003e fix: make Tags pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1170\"\u003e#1170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4bed32d920ca7211dd65fdf0a1ee06376e9c4733\"\u003e\u003ccode\u003e4bed32d\u003c/code\u003e\u003c/a\u003e fix: make Specifier / SpecifierSet pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1168\"\u003e#1168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/963118e37caae97bc8b72f72956c7fb4ca9857ec\"\u003e\u003ccode\u003e963118e\u003c/code\u003e\u003c/a\u003e fix: re-export ExceptionGroup for now (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/66e34a80256c96dea11da143682950c84b8133bb\"\u003e\u003ccode\u003e66e34a8\u003c/code\u003e\u003c/a\u003e docs(specifiers): add is_unsatisfiable() usage example (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1166\"\u003e#1166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/26.0...26.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\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/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\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/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.9.1 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix parsing env vars into Optional Strict types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/792\"\u003epydantic/pydantic-settings#792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError with mutually recursive models in CLI by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/794\"\u003epydantic/pydantic-settings#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix env_file from model_config ignored in CliApp.run() (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/795\"\u003e#795\u003c/a\u003e) by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/796\"\u003epydantic/pydantic-settings#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/798\"\u003epydantic/pydantic-settings#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Dependabot configuration by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/801\"\u003epydantic/pydantic-settings#801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump samuelcolvin/check-python-version from 4.1 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/803\"\u003epydantic/pydantic-settings#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/804\"\u003epydantic/pydantic-settings#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 5 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/805\"\u003epydantic/pydantic-settings#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/806\"\u003epydantic/pydantic-settings#806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore chardet and group GitHub Actions in Dependabot by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/808\"\u003epydantic/pydantic-settings#808\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 8 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/809\"\u003epydantic/pydantic-settings#809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/810\"\u003epydantic/pydantic-settings#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport reading .env files from FIFOs (e.g. 1Password Environments) by \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AliasChoices ignored when changing provider priority by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/813\"\u003epydantic/pydantic-settings#813\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve KeyError in run_subcommand for underscore field names by \u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/814\"\u003epydantic/pydantic-settings#814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eLiteral[numeric Enum]\u003c/code\u003e coercion for CLI and env vars by \u003ca href=\"https://github.com/m9810223\"\u003e\u003ccode\u003e@​m9810223\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/811\"\u003epydantic/pydantic-settings#811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix nested discriminated unions not discovered by env/CLI providers by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/816\"\u003epydantic/pydantic-settings#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/820\"\u003epydantic/pydantic-settings#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI ensure env nested max split internally. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/821\"\u003epydantic/pydantic-settings#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/824\"\u003epydantic/pydantic-settings#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eboto3-stubs\u003c/code\u003e to \u003ccode\u003etypes-boto3\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/831\"\u003epydantic/pydantic-settings#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI not recog...\n\n_Description has been truncated_","html_url":"https://github.com/saagpatel/JobMarketHeatmap/pull/18","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/saagpatel%2FJobMarketHeatmap/issues/18","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/18/packages"}},{"old_version":"\u003e=0.21","new_version":"\u003e=0.23.1","update_type":null,"path":"/python-sdk","pr_created_at":"2026-05-04T08:43:34.000Z","version_change":"\u003e=0.21 → \u003e=0.23.1","issue":{"uuid":"4375152102","node_id":"PR_kwDOR3PWh87X7xfq","number":67,"state":"open","title":"chore(deps-dev): update respx requirement from \u003e=0.21 to \u003e=0.23.1 in /python-sdk","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-04T08:43:34.000Z","updated_at":"2026-05-04T08:43:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): update","packages":[{"name":"respx","old_version":"\u003e=0.21","new_version":"\u003e=0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":"/python-sdk","ecosystem":"pip"},"body":"Updates the requirements on [respx](https://github.com/lundberg/respx) 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/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.21.1] - 2024-03-27\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efiles\u003c/code\u003e pattern not handling \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eBytesIO\u003c/code\u003e, thanks \u003ca href=\"https://github.com/pierremonico\"\u003e\u003ccode\u003e@​pierremonico\u003c/code\u003e\u003c/a\u003e for input\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.21.0...0.23.1\"\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/proofoftrust21/satrank/pull/67","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/proofoftrust21%2Fsatrank/issues/67","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/67/packages"}},{"old_version":"0.22.0","new_version":"0.23.1","update_type":"minor","path":null,"pr_created_at":"2026-05-04T01:18:47.000Z","version_change":"0.22.0 → 0.23.1","issue":{"uuid":"4373514879","node_id":"PR_kwDONc1GDc7X2euN","number":85,"state":"closed","title":"chore(deps): bump the python-dependencies group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":["Jakan-Kink"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-04T07:18:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-04T01:18:47.000Z","updated_at":"2026-05-04T07:18:51.000Z","time_to_close":21603,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-dependencies","update_count":5,"packages":[{"name":"greenlet","old_version":"3.4.0","new_version":"3.5.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"psycopg","old_version":"3.3.3","new_version":"3.3.4","repository_url":"https://github.com/psycopg/psycopg"},{"name":"stash-graphql-client","old_version":"0.12.1","new_version":"0.12.4","repository_url":"https://github.com/Jakan-Kink/stash-graphql-client"},{"name":"ruff","old_version":"0.15.11","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"respx","old_version":"0.22.0","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.4.0` | `3.5.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.3.3` | `3.3.4` |\n| [stash-graphql-client](https://github.com/Jakan-Kink/stash-graphql-client) | `0.12.1` | `0.12.4` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.11` | `0.15.12` |\n| [respx](https://github.com/lundberg/respx) | `0.22.0` | `0.23.1` |\n\n\nUpdates `greenlet` from 3.4.0 to 3.5.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.5.0 (2026-04-27)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove the \u003ccode\u003eatexit\u003c/code\u003e callback. This callback caused greenlet APIs\nto become unavailable far too soon during interpreter shutdown. Now\nthey remain available while all \u003ccode\u003eatexit\u003c/code\u003e callbacks run. Sometime\nafter \u003ccode\u003ePy_IsFinalizing\u003c/code\u003e becomes true, they may begin misbehaving.\nBecause the order in which C extensions are finalized is undefined,\nC extensions that are sensitive to this need to check the results of\nthat function before invoking greenlet APIs. As a convenience,\n\u003ccode\u003ePyGreenlet_GetCurrent\u003c/code\u003e sets an exception and returns \u003ccode\u003eNULL\u003c/code\u003e\nwhen this happens (and \u003ccode\u003egreenlet.getcurrent\u003c/code\u003e begins returning\n\u003ccode\u003eNone\u003c/code\u003e); other greenlet C API functions have undefined behaviour.\nMethods invoked directly on pre-existing \u003ccode\u003egreenlet.greenlet\u003c/code\u003e\nobjects will continue to function at least until the greenlet C\nextension has been garbage collected and finalized.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003ePR 508 \u0026lt;https://github.com/python-greenlet/greenlet/pull/508\u0026gt;\u003c/code\u003e_.\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/c7acc72000572811d6462ebe01733a974f194990\"\u003e\u003ccode\u003ec7acc72\u003c/code\u003e\u003c/a\u003e Preparing release 3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/d08f99bf40801c5d57af6e13631c0ba68300ecf7\"\u003e\u003ccode\u003ed08f99b\u003c/code\u003e\u003c/a\u003e CHANGES: Update link from \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/507\"\u003e#507\u003c/a\u003e to more full description in \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/508\"\u003e#508\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/fd3391e33cedc7a17a86059f18dfbec2b3a320bd\"\u003e\u003ccode\u003efd3391e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/508\"\u003e#508\u003c/a\u003e from python-greenlet/issue507-remove-atexit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/004e1e9bd5c0fa49c66b733c28ec92a3cd41fe09\"\u003e\u003ccode\u003e004e1e9\u003c/code\u003e\u003c/a\u003e Remove the atexit callback.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/b784a69a0da6abd6e66b15a2c1415d272fdd1292\"\u003e\u003ccode\u003eb784a69\u003c/code\u003e\u003c/a\u003e Back to development: 3.4.1\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python-greenlet/greenlet/compare/3.4.0...3.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg` from 3.3.3 to 3.3.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.4\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix possible spurious connection timeout in systems with very long uptimes\nin C extension (:ticket:\u003ccode\u003e[#1280](https://github.com/psycopg/psycopg/issues/1280)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix client-side adaptation of enums whose name require quotes\n(:ticket:\u003ccode\u003e[#1298](https://github.com/psycopg/psycopg/issues/1298)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eConsistently populate \u003ccode\u003e~Cursor.statusmessage\u003c/code\u003e after \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1302](https://github.com/psycopg/psycopg/issues/1302)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.3.3\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRetain \u003ccode\u003eError.pgconn\u003c/code\u003e when raising a single exception for multiple connection\nattempt errors (:ticket:\u003ccode\u003e[#1246](https://github.com/psycopg/psycopg/issues/1246)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eReturn a proper error when server sends \u003ccode\u003eErrorResponse\u003c/code\u003e for a \u003ccode\u003eSync\u003c/code\u003e after\na \u003ccode\u003eParse\u003c/code\u003e (:ticket:\u003ccode\u003e[#1260](https://github.com/psycopg/psycopg/issues/1260)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.3.2\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix race condition in adapters at startup (:ticket:\u003ccode\u003e[#1230](https://github.com/psycopg/psycopg/issues/1230)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003ePsycopg 3.3.1\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix iteration on server-side cursors (:ticket:\u003ccode\u003e[#1226](https://github.com/psycopg/psycopg/issues/1226)\u003c/code\u003e).\u003c/p\u003e\n\u003ch2\u003ePsycopg 3.3.0\u003c/h2\u003e\n\u003cp\u003e.. rubric:: New top-level features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etemplate strings queries \\\u0026lt;template-strings\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1054](https://github.com/psycopg/psycopg/issues/1054)\u003c/code\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/psycopg/psycopg/commit/83f110367cdd249cc0a352e2246ecea9e878e5a0\"\u003e\u003ccode\u003e83f1103\u003c/code\u003e\u003c/a\u003e chore: bump psycopg_pool package version to 3.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/18287707f56a2b4f0817d9c23d137f5d69db6e31\"\u003e\u003ccode\u003e1828770\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/8be14bbc18f74de7652606d2777e0950ec804cc0\"\u003e\u003ccode\u003e8be14bb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1301\"\u003e#1301\u003c/a\u003e from oliverhaas/fix/sync-pool-open-race\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/aee0bf2659db77c31154acf583baf0a98675c192\"\u003e\u003ccode\u003eaee0bf2\u003c/code\u003e\u003c/a\u003e fix(pool): fix race in the construction of the sync ConnectionPool lock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/bc4d30375557fc32f2a91c2f8b75a5d21711ea89\"\u003e\u003ccode\u003ebc4d303\u003c/code\u003e\u003c/a\u003e chore(deps): bump the actions group across 1 directory with 4 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/785379f196fc17473d312451a1fd4a06ef8dc895\"\u003e\u003ccode\u003e785379f\u003c/code\u003e\u003c/a\u003e fix: retain statusmessage after executemany with returning=False\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/8882a73871e65727549657085922d043a106127c\"\u003e\u003ccode\u003e8882a73\u003c/code\u003e\u003c/a\u003e perf: do less if X in Y: return Y[X] for cache-like patterns\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/2f785395c189e709da5fa74a02d3797bfb9db6a4\"\u003e\u003ccode\u003e2f78539\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1299\"\u003e#1299\u003c/a\u003e from dvarrazzo/fix-camel-enum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/37ef1dc4e6d19dc4af062d45a63243cb96a261c2\"\u003e\u003ccode\u003e37ef1dc\u003c/code\u003e\u003c/a\u003e test: skip test on crdb depending on precise regtype behaviour\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/7f2f1d159df881260e3086fd61ea71343ca98e58\"\u003e\u003ccode\u003e7f2f1d1\u003c/code\u003e\u003c/a\u003e fix: fix client-side representation of enums requiring quotes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg/compare/3.3.3...3.3.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `stash-graphql-client` from 0.12.1 to 0.12.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Jakan-Kink/stash-graphql-client/releases\"\u003estash-graphql-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.12.4\u003c/h2\u003e\n\u003ch2\u003e[0.12.4] - 2026-05-03\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/Jakan-Kink/stash-graphql-client/issues/28\"\u003e#28\u003c/a\u003e\u003c/strong\u003e (multi-field path, fully closes): \u003ccode\u003eFoo(id='X', name='Y')\u003c/code\u003e direct\nconstruction on a cache hit now also returns the cached entity with\nmerged field values, matching \u003ccode\u003efrom_graphql\u003c/code\u003e semantics. Previously,\nonly the id-only \u003ccode\u003eFoo(id='X')\u003c/code\u003e shape was identity-map-aware via\n\u003ccode\u003e_StashObjectMeta.__call__\u003c/code\u003e; multi-field calls fell through to\n\u003ccode\u003esuper().__call__()\u003c/code\u003e, where Pydantic v2's \u003ccode\u003e__init__\u003c/code\u003e discarded the\nwrap validator's cached return value and emitted the residual\n\u003ccode\u003eUserWarning: A custom validator is returning a value other than 'self'\u003c/code\u003e.\nThe metaclass now routes multi-field cache hits through\n\u003ccode\u003eself.model_validate(kwargs)\u003c/code\u003e, which honors the wrap validator's merge\nreturn cleanly. Behavior change: callers who relied on multi-field\n\u003ccode\u003e__init__\u003c/code\u003e returning a \u003cem\u003efresh\u003c/em\u003e instance (instead of the cached one)\nwill now receive the cached entity — consistent with the rest of the\nidentity-map contract.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.12.3\u003c/h2\u003e\n\u003ch2\u003e[0.12.3] - 2026-05-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eStashEntityStore._fetch_filter_query_relationship\u003c/code\u003e now paginates\ninternally (\u003ccode\u003eSTUB_QUERY_BATCH = 1000\u003c/code\u003e per page) instead of issuing a\nsingle \u003ccode\u003eper_page: -1\u003c/code\u003e query. Each page-fetch awaits, so concurrent\npopulates of different relationships actually interleave on the event\nloop instead of being serialized behind one giant deserialization.\u003c/li\u003e\n\u003cli\u003eRelationship-populate queries are now parameterized GraphQL — entity\nID, page, and per_page are bound as \u003ccode\u003e$id: ID!\u003c/code\u003e, \u003ccode\u003e$page: Int!\u003c/code\u003e,\n\u003ccode\u003e$per_page: Int!\u003c/code\u003e variables. Closes a latent f-string injection at\n\u003ccode\u003evalue: [\u0026quot;{entity.id}\u0026quot;]\u003c/code\u003e that was unsafe for UUID-tagged unsaved\nentities or any ID containing quote/brace characters.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIdentity-map wrap validator now short-circuits when input data carries\nonly \u003ccode\u003e{id, __typename}\u003c/code\u003e — eliminates the per-item Pydantic-init tax\n(\u003ccode\u003esignature_no_eval\u003c/code\u003e over four \u003ccode\u003ePrivateAttr\u003c/code\u003e \u003ccode\u003edefault_factory\u003c/code\u003e\ncallables) for stub-shaped relationship-populate responses. Previously,\npopulating a 5,000-scene relationship paid the full handler+merge cycle\nper item even though every item was a cache hit with nothing to merge.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_fetch_filter_query_relationship\u003c/code\u003e is now idempotent: a second call\nfor the same \u003ccode\u003e(entity, field)\u003c/code\u003e returns the existing list without\nre-issuing a network request, gated on \u003ccode\u003e_received_fields\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eConcurrent populates of the same relationship are serialized via\nper-\u003ccode\u003e(type_name, id, field_name)\u003c/code\u003e \u003ccode\u003easyncio.Lock\u003c/code\u003e with double-check\npost-acquire — the second waiter sees the field already populated\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/Jakan-Kink/stash-graphql-client/blob/main/CHANGELOG.md\"\u003estash-graphql-client's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.12.4] - 2026-05-03\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/Jakan-Kink/stash-graphql-client/issues/28\"\u003e#28\u003c/a\u003e\u003c/strong\u003e (multi-field path, fully closes): \u003ccode\u003eFoo(id='X', name='Y')\u003c/code\u003e direct\nconstruction on a cache hit now also returns the cached entity with\nmerged field values, matching \u003ccode\u003efrom_graphql\u003c/code\u003e semantics. Previously,\nonly the id-only \u003ccode\u003eFoo(id='X')\u003c/code\u003e shape was identity-map-aware via\n\u003ccode\u003e_StashObjectMeta.__call__\u003c/code\u003e; multi-field calls fell through to\n\u003ccode\u003esuper().__call__()\u003c/code\u003e, where Pydantic v2's \u003ccode\u003e__init__\u003c/code\u003e discarded the\nwrap validator's cached return value and emitted the residual\n\u003ccode\u003eUserWarning: A custom validator is returning a value other than 'self'\u003c/code\u003e.\nThe metaclass now routes multi-field cache hits through\n\u003ccode\u003eself.model_validate(kwargs)\u003c/code\u003e, which honors the wrap validator's merge\nreturn cleanly. Behavior change: callers who relied on multi-field\n\u003ccode\u003e__init__\u003c/code\u003e returning a \u003cem\u003efresh\u003c/em\u003e instance (instead of the cached one)\nwill now receive the cached entity — consistent with the rest of the\nidentity-map contract.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.12.3] - 2026-05-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eStashEntityStore._fetch_filter_query_relationship\u003c/code\u003e now paginates\ninternally (\u003ccode\u003eSTUB_QUERY_BATCH = 1000\u003c/code\u003e per page) instead of issuing a\nsingle \u003ccode\u003eper_page: -1\u003c/code\u003e query. Each page-fetch awaits, so concurrent\npopulates of different relationships actually interleave on the event\nloop instead of being serialized behind one giant deserialization.\u003c/li\u003e\n\u003cli\u003eRelationship-populate queries are now parameterized GraphQL — entity\nID, page, and per_page are bound as \u003ccode\u003e$id: ID!\u003c/code\u003e, \u003ccode\u003e$page: Int!\u003c/code\u003e,\n\u003ccode\u003e$per_page: Int!\u003c/code\u003e variables. Closes a latent f-string injection at\n\u003ccode\u003evalue: [\u0026quot;{entity.id}\u0026quot;]\u003c/code\u003e that was unsafe for UUID-tagged unsaved\nentities or any ID containing quote/brace characters.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIdentity-map wrap validator now short-circuits when input data carries\nonly \u003ccode\u003e{id, __typename}\u003c/code\u003e — eliminates the per-item Pydantic-init tax\n(\u003ccode\u003esignature_no_eval\u003c/code\u003e over four \u003ccode\u003ePrivateAttr\u003c/code\u003e \u003ccode\u003edefault_factory\u003c/code\u003e\ncallables) for stub-shaped relationship-populate responses. Previously,\npopulating a 5,000-scene relationship paid the full handler+merge cycle\nper item even though every item was a cache hit with nothing to merge.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_fetch_filter_query_relationship\u003c/code\u003e is now idempotent: a second call\nfor the same \u003ccode\u003e(entity, field)\u003c/code\u003e returns the existing list without\nre-issuing a network request, gated on \u003ccode\u003e_received_fields\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eConcurrent populates of the same relationship are serialized via\nper-\u003ccode\u003e(type_name, id, field_name)\u003c/code\u003e \u003ccode\u003easyncio.Lock\u003c/code\u003e with double-check\npost-acquire — the second waiter sees the field already populated\nand exits without a duplicate paginated fetch.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_process_list_relationship\u003c/code\u003e return annotation corrected to\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/Jakan-Kink/stash-graphql-client/commit/0983924eb13282aa52f32fa570700346d065925a\"\u003e\u003ccode\u003e0983924\u003c/code\u003e\u003c/a\u003e chore: release v0.12.4 — close \u003ca href=\"https://redirect.github.com/Jakan-Kink/stash-graphql-client/issues/28\"\u003e#28\u003c/a\u003e multi-field \u003cstrong\u003einit\u003c/strong\u003e warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Jakan-Kink/stash-graphql-client/commit/bd753e8665d720744df4ad87f3bd33d4377d5cea\"\u003e\u003ccode\u003ebd753e8\u003c/code\u003e\u003c/a\u003e fix: route multi-field cache hits through model_validate, fully closes \u003ca href=\"https://redirect.github.com/Jakan-Kink/stash-graphql-client/issues/28\"\u003e#28\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Jakan-Kink/stash-graphql-client/commit/cb0fc9d2b8f044ae9cd562ab1342b5c91d474a01\"\u003e\u003ccode\u003ecb0fc9d\u003c/code\u003e\u003c/a\u003e chore: hoist inline imports to top, restore noqa on circular metadata import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Jakan-Kink/stash-graphql-client/commit/32a24b613ef8de741b7c9ff18ecbf1f55957c6e8\"\u003e\u003ccode\u003e32a24b6\u003c/code\u003e\u003c/a\u003e chore: release v0.12.3 — paginated populate + identity-map stub fast path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Jakan-Kink/stash-graphql-client/commit/5138d6bc4933b3f28a9d43db1474eb07116fc619\"\u003e\u003ccode\u003e5138d6b\u003c/code\u003e\u003c/a\u003e perf: paginate filter-query populate, parameterize variables, lock concurrent...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Jakan-Kink/stash-graphql-client/commit/3c446436647b44aec5b105abca07ebb0b6b5642e\"\u003e\u003ccode\u003e3c44643\u003c/code\u003e\u003c/a\u003e perf: stub-data fast path in identity-map wrap validator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Jakan-Kink/stash-graphql-client/commit/321c2e3e5395eed5a6458a0f380ab63359f9483a\"\u003e\u003ccode\u003e321c2e3\u003c/code\u003e\u003c/a\u003e chore: deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Jakan-Kink/stash-graphql-client/commit/fc0eadc8b33a7bdaf50263cb2bb6d89154991a59\"\u003e\u003ccode\u003efc0eadc\u003c/code\u003e\u003c/a\u003e ## [0.12.2] - 2026-04-28\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Jakan-Kink/stash-graphql-client/compare/v0.12.1...v0.12.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.11 to 0.15.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.12\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.12/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\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/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\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/astral-sh/ruff/commit/66f93cf7ed4d36325f35a452e4afa28268fbcd28\"\u003e\u003ccode\u003e66f93cf\u003c/code\u003e\u003c/a\u003e Bump 0.15.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24815\"\u003e#24815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/476a4d02e8e3b6c157ac39979d8b698a1b6baa91\"\u003e\u003ccode\u003e476a4d0\u003c/code\u003e\u003c/a\u003e [ty] Complete support for more detailed diagnostics on possibly unbound error...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed669eab30095d6c51fe6cdef6050fb01276bcb3\"\u003e\u003ccode\u003eed669ea\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e73d952e43feb51356ee740c5a973fce81396ff6\"\u003e\u003ccode\u003ee73d952\u003c/code\u003e\u003c/a\u003e [ty] Include inferred type in \u003ccode\u003einvalid-key\u003c/code\u003e concise diagnostic for union/inte...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/80feb29b31cd98c093316df2e0407b0c70c01b55\"\u003e\u003ccode\u003e80feb29\u003c/code\u003e\u003c/a\u003e [ty] report only dead annotation-only locals as unused (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24811\"\u003e#24811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0fbf2bc27336a3d17d39af52cf89b78dcda8c7c8\"\u003e\u003ccode\u003e0fbf2bc\u003c/code\u003e\u003c/a\u003e Drop deprecated license classifier (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24808\"\u003e#24808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/43b174cc7f2fcb0080bb1d4843cd4bf6b72bbe27\"\u003e\u003ccode\u003e43b174c\u003c/code\u003e\u003c/a\u003e [ty] Infer lambda parameter types with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24317\"\u003e#24317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4f449ae4a2377569330a5ab94799d389357b5a3f\"\u003e\u003ccode\u003e4f449ae\u003c/code\u003e\u003c/a\u003e [ty] Add error context for intersection types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24772\"\u003e#24772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5b4e753acb46e96ad408e4904c15308e33efe307\"\u003e\u003ccode\u003e5b4e753\u003c/code\u003e\u003c/a\u003e [ty] Add support for goto in literal enum member inlay hint (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24792\"\u003e#24792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e7cc76275a758ce1c636ea1c2d091fd576aac794\"\u003e\u003ccode\u003ee7cc762\u003c/code\u003e\u003c/a\u003e [ty] Add error context for TypedDict assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24790\"\u003e#24790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.11...0.15.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `respx` from 0.22.0 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.23.0\u003c/h2\u003e\n\u003ch2\u003e0.23.0 (7th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.22.0...0.23.1\"\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 \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Jakan-Kink/fansly-scraper/pull/85","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jakan-Kink%2Ffansly-scraper/issues/85","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/85/packages"}},{"old_version":"0.22.0","new_version":"0.23.1","update_type":"minor","path":null,"pr_created_at":"2026-05-01T10:34:33.000Z","version_change":"0.22.0 → 0.23.1","issue":{"uuid":"4363971644","node_id":"PR_kwDOR6O1Oc7XZabp","number":14,"state":"open","title":"deps(python): bump the all-dependencies group with 6 updates","user":"dependabot[bot]","labels":["🐍 python","📦 dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-01T10:34:33.000Z","updated_at":"2026-05-01T10:36:58.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(python): bump","group_name":"all-dependencies","update_count":6,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"respx","old_version":"0.22.0","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"},{"name":"ruff","old_version":"0.15.9","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.20.0","new_version":"1.20.2","repository_url":"https://github.com/python/mypy"},{"name":"sphinx-autodoc-typehints","old_version":"3.10.0","new_version":"3.10.2","repository_url":"https://github.com/tox-dev/sphinx-autodoc-typehints"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-dependencies group with 6 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [respx](https://github.com/lundberg/respx) | `0.22.0` | `0.23.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.9` | `0.15.12` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `1.20.2` |\n| [sphinx-autodoc-typehints](https://github.com/tox-dev/sphinx-autodoc-typehints) | `3.10.0` | `3.10.2` |\n\nUpdates `pydantic` from 2.12.5 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\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/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\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/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\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/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `respx` from 0.22.0 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.23.0\u003c/h2\u003e\n\u003ch2\u003e0.23.0 (7th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.22.0...0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.9 to 0.15.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.12\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.12/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\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/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\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/astral-sh/ruff/commit/66f93cf7ed4d36325f35a452e4afa28268fbcd28\"\u003e\u003ccode\u003e66f93cf\u003c/code\u003e\u003c/a\u003e Bump 0.15.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24815\"\u003e#24815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/476a4d02e8e3b6c157ac39979d8b698a1b6baa91\"\u003e\u003ccode\u003e476a4d0\u003c/code\u003e\u003c/a\u003e [ty] Complete support for more detailed diagnostics on possibly unbound error...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed669eab30095d6c51fe6cdef6050fb01276bcb3\"\u003e\u003ccode\u003eed669ea\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e73d952e43feb51356ee740c5a973fce81396ff6\"\u003e\u003ccode\u003ee73d952\u003c/code\u003e\u003c/a\u003e [ty] Include inferred type in \u003ccode\u003einvalid-key\u003c/code\u003e concise diagnostic for union/inte...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/80feb29b31cd98c093316df2e0407b0c70c01b55\"\u003e\u003ccode\u003e80feb29\u003c/code\u003e\u003c/a\u003e [ty] report only dead annotation-only locals as unused (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24811\"\u003e#24811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0fbf2bc27336a3d17d39af52cf89b78dcda8c7c8\"\u003e\u003ccode\u003e0fbf2bc\u003c/code\u003e\u003c/a\u003e Drop deprecated license classifier (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24808\"\u003e#24808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/43b174cc7f2fcb0080bb1d4843cd4bf6b72bbe27\"\u003e\u003ccode\u003e43b174c\u003c/code\u003e\u003c/a\u003e [ty] Infer lambda parameter types with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24317\"\u003e#24317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4f449ae4a2377569330a5ab94799d389357b5a3f\"\u003e\u003ccode\u003e4f449ae\u003c/code\u003e\u003c/a\u003e [ty] Add error context for intersection types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24772\"\u003e#24772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5b4e753acb46e96ad408e4904c15308e33efe307\"\u003e\u003ccode\u003e5b4e753\u003c/code\u003e\u003c/a\u003e [ty] Add support for goto in literal enum member inlay hint (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24792\"\u003e#24792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e7cc76275a758ce1c636ea1c2d091fd576aac794\"\u003e\u003ccode\u003ee7cc762\u003c/code\u003e\u003c/a\u003e [ty] Add error context for TypedDict assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24790\"\u003e#24790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.9...0.15.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.20.0 to 1.20.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.20.2\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse WAL with SQLite cache and fix close (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21154\"\u003e21154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust SQLite journal mode (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21217\"\u003e21217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrectly aggregate narrowing information on parent expressions (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21206\"\u003e21206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression related to generic callables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21208\"\u003e21208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression by avoiding widening types in some contexts (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21242\"\u003e21242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix slicing in non-strict optional mode (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21282\"\u003e21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emypyc: Fix match statement semantics for \u0026quot;or\u0026quot; pattern (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21156\"\u003e21156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emypyc: Fix issue with module dunder attributes (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21275\"\u003e21275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInitial support for Python 3.15.0a8 (Marc Mueller, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21255\"\u003e21255\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003cli\u003eNeil Schemenauer\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\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/python/mypy/commit/145a062651b5f9996b75ef32b7040bd2e885ed82\"\u003e\u003ccode\u003e145a062\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/81cd49215c288eacb987de066f02daff2553b7c7\"\u003e\u003ccode\u003e81cd492\u003c/code\u003e\u003c/a\u003e Fix slicing with nonstrict optional (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21282\"\u003e#21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/908d3441eecbaa2a6193165317177db834d7ca1a\"\u003e\u003ccode\u003e908d344\u003c/code\u003e\u003c/a\u003e [mypyc] Set dunder attrs when adding module to sys.modules (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21275\"\u003e#21275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/ba28610fac9d2b33be210ca8dcfe4bc47b7af424\"\u003e\u003ccode\u003eba28610\u003c/code\u003e\u003c/a\u003e Initial support for Python 3.15.0a8 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21255\"\u003e#21255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/7b0e09f48dbd3717ed008a273cd17e8e960c2037\"\u003e\u003ccode\u003e7b0e09f\u003c/code\u003e\u003c/a\u003e Fix match statement semantics for \u0026quot;or\u0026quot; pattern (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21156\"\u003e#21156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/92b74f226de62f7505f5ef5cb158e8ec9c58b8b7\"\u003e\u003ccode\u003e92b74f2\u003c/code\u003e\u003c/a\u003e Avoid widening types in conditional_types (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21242\"\u003e#21242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0dcbfaa40b0e360a16baea9cf851955375d91b54\"\u003e\u003ccode\u003e0dcbfaa\u003c/code\u003e\u003c/a\u003e Fix is_overlapping_types for generic callables (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21208\"\u003e#21208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/210f518dede35292033ef0d387847406a0ccef8f\"\u003e\u003ccode\u003e210f518\u003c/code\u003e\u003c/a\u003e Correctly aggregate narrowing information on parent expressions (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21206\"\u003e#21206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c34530e53a10e385d8b0f1af4baa88a596b5ceaa\"\u003e\u003ccode\u003ec34530e\u003c/code\u003e\u003c/a\u003e Only set journal mode in coordinator (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21217\"\u003e#21217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/79a3ec6d01b56a27c00e9b3320c2b1d4d73a77f9\"\u003e\u003ccode\u003e79a3ec6\u003c/code\u003e\u003c/a\u003e Use WAL with SQLite cache, fix close (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21154\"\u003e#21154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.20.0...v1.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autodoc-typehints` from 3.10.0 to 3.10.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/releases\"\u003esphinx-autodoc-typehints's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(ivar): tolerate malformed :ivar field entries by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/684\"\u003etox-dev/sphinx-autodoc-typehints#684\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.10.1...3.10.2\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.10.1...3.10.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.10.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(resolver): surface hints for \u003ca href=\"https://github.com/no\"\u003e\u003ccode\u003e@​no\u003c/code\u003e\u003c/a\u003e_type_check targets by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/681\"\u003etox-dev/sphinx-autodoc-typehints#681\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.10.0...3.10.1\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.10.0...3.10.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/tox-dev/sphinx-autodoc-typehints/commit/974fabb705774d0a64aa6fc072b4eb96b15a924d\"\u003e\u003ccode\u003e974fabb\u003c/code\u003e\u003c/a\u003e 🐛 fix(ivar): tolerate malformed :ivar field entries (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/684\"\u003e#684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/c1bbf4e9f1155ba9a8290defe81cbf4cbf51aab5\"\u003e\u003ccode\u003ec1bbf4e\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/682\"\u003e#682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/098cce3910cb1d9fa3c940c5022028d21425005b\"\u003e\u003ccode\u003e098cce3\u003c/code\u003e\u003c/a\u003e 🐛 fix(resolver): surface hints for \u003ca href=\"https://github.com/no\"\u003e\u003ccode\u003e@​no\u003c/code\u003e\u003c/a\u003e_type_check targets (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/681\"\u003e#681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.10.0...3.10.2\"\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 \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Dyl-M/liquipydia/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dyl-M%2Fliquipydia/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"}},{"old_version":"0.22.0","new_version":"0.23.1","update_type":"minor","path":null,"pr_created_at":"2026-04-27T09:22:57.000Z","version_change":"0.22.0 → 0.23.1","issue":{"uuid":"4334598472","node_id":"PR_kwDOQHH1dc7V5psG","number":991,"state":"open","title":"build(deps): bump the python-minors group with 7 updates","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-04-27T09:22:57.000Z","updated_at":"2026-04-27T09:22:58.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"python-minors","update_count":7,"packages":[{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"respx","old_version":"0.22.0","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"},{"name":"anyio","old_version":"4.11.0","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"playwright","old_version":"1.49.0","new_version":"1.58.0","repository_url":"https://github.com/microsoft/playwright-python"},{"name":"pytest-playwright","old_version":"0.5.2","new_version":"0.7.2","repository_url":"https://github.com/microsoft/playwright-pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minors group with 7 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [respx](https://github.com/lundberg/respx) | `0.22.0` | `0.23.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.13.0` |\n| [playwright](https://github.com/microsoft/playwright-python) | `1.49.0` | `1.58.0` |\n| [pytest-playwright](https://github.com/microsoft/playwright-pytest) | `0.5.2` | `0.7.2` |\n\nUpdates `httpx` from 0.27.2 to 0.28.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/httpx/releases\"\u003ehttpx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.28.1\u003c/h2\u003e\n\u003ch2\u003e0.28.1 (6th December, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL case where \u003ccode\u003everify=False\u003c/code\u003e together with client side certificates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.28.0\u003c/h2\u003e\n\u003ch2\u003e0.28.0 (28th November, 2024)\u003c/h2\u003e\n\u003cp\u003eThe 0.28 release includes a limited set of deprecations.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003eWe are working towards a simplified SSL configuration API.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFor users of the standard \u003ccode\u003everify=True\u003c/code\u003e or \u003ccode\u003everify=False\u003c/code\u003e cases, or \u003ccode\u003everify=\u0026lt;ssl_context\u0026gt;\u003c/code\u003e case this should require no changes. The following cases have been deprecated...\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003everify\u003c/code\u003e argument as a string argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ecert\u003c/code\u003e argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOur revised \u003ca href=\"https://github.com/encode/httpx/blob/HEAD/docs/advanced/ssl.md\"\u003eSSL documentation\u003c/a\u003e covers how to implement the same behaviour with a more constrained API.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe following changes are also included\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eproxies\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eapp\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eJSON request bodies use a compact representation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReview URL percent escape sets, based on WHATWG spec. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3371\"\u003e#3371\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/encode/httpx/issues/3373\"\u003e#3373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ecertifi\u003c/code\u003e and \u003ccode\u003ehttpcore\u003c/code\u003e are only imported if required. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003esocks5h\u003c/code\u003e as a valid proxy scheme. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3178\"\u003e#3178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCleanup \u003ccode\u003eRequest()\u003c/code\u003e method signature in line with \u003ccode\u003eclient.request()\u003c/code\u003e and \u003ccode\u003ehttpx.request()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: When passing \u003ccode\u003eparams={}\u003c/code\u003e, always strictly update rather than merge with an existing querystring. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\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/encode/httpx/blob/master/CHANGELOG.md\"\u003ehttpx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.28.1 (6th December, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL case where \u003ccode\u003everify=False\u003c/code\u003e together with client side certificates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.28.0 (28th November, 2024)\u003c/h2\u003e\n\u003cp\u003eBe aware that the default \u003cem\u003eJSON request bodies now use a more compact representation\u003c/em\u003e. This is generally considered a prefered style, tho may require updates to test suites.\u003c/p\u003e\n\u003cp\u003eThe 0.28 release includes a limited set of deprecations...\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003eWe are working towards a simplified SSL configuration API.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFor users of the standard \u003ccode\u003everify=True\u003c/code\u003e or \u003ccode\u003everify=False\u003c/code\u003e cases, or \u003ccode\u003everify=\u0026lt;ssl_context\u0026gt;\u003c/code\u003e case this should require no changes. The following cases have been deprecated...\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003everify\u003c/code\u003e argument as a string argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ecert\u003c/code\u003e argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOur revised \u003ca href=\"https://github.com/encode/httpx/blob/master/docs/advanced/ssl.md\"\u003eSSL documentation\u003c/a\u003e covers how to implement the same behaviour with a more constrained API.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe following changes are also included\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eproxies\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eapp\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eJSON request bodies use a compact representation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReview URL percent escape sets, based on WHATWG spec. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3371\"\u003e#3371\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/encode/httpx/issues/3373\"\u003e#3373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ecertifi\u003c/code\u003e and \u003ccode\u003ehttpcore\u003c/code\u003e are only imported if required. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003esocks5h\u003c/code\u003e as a valid proxy scheme. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3178\"\u003e#3178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCleanup \u003ccode\u003eRequest()\u003c/code\u003e method signature in line with \u003ccode\u003eclient.request()\u003c/code\u003e and \u003ccode\u003ehttpx.request()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: When passing \u003ccode\u003eparams={}\u003c/code\u003e, always strictly update rather than merge with an existing querystring. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\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/encode/httpx/commit/26d48e0634e6ee9cdc0533996db289ce4b430177\"\u003e\u003ccode\u003e26d48e0\u003c/code\u003e\u003c/a\u003e Version 0.28.1 (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3445\"\u003e#3445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/89599a9541af14bcf906fc4ed58ccbdf403802ba\"\u003e\u003ccode\u003e89599a9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003everify=False\u003c/code\u003e, \u003ccode\u003ecert=...\u003c/code\u003e case. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3442\"\u003e#3442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/8ecb86f0d74ffc52d4663214fae9526bee89358d\"\u003e\u003ccode\u003e8ecb86f\u003c/code\u003e\u003c/a\u003e Add test for request params behavior changes (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3440\"\u003e#3440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/0cb7e5a2e736628e2f506d259fcf0d48cd2bde82\"\u003e\u003ccode\u003e0cb7e5a\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 11 updates (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3434\"\u003e#3434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/15e21e9ea3cad4f06e22a7e704aabefdf43d2e29\"\u003e\u003ccode\u003e15e21e9\u003c/code\u003e\u003c/a\u003e Updating deprecated docstring Client() class (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3426\"\u003e#3426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/80960fa31918d7663c3f4c3ad61661cf0e80628f\"\u003e\u003ccode\u003e80960fa\u003c/code\u003e\u003c/a\u003e Version 0.28.0. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3419\"\u003e#3419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/a33c87852b8a0dddc65e5f739af1e0a6fca4b91f\"\u003e\u003ccode\u003ea33c878\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eextensions\u003c/code\u003e type annotation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3380\"\u003e#3380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/ce7e14da27abba6574be9b3ea7cd5990556a9343\"\u003e\u003ccode\u003ece7e14d\u003c/code\u003e\u003c/a\u003e Error on verify as str. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3418\"\u003e#3418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/47f4a96ffaaaa07dca1614409549b5d7a6e7af49\"\u003e\u003ccode\u003e47f4a96\u003c/code\u003e\u003c/a\u003e Handle empty zstd responses (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3412\"\u003e#3412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/189fc4bcbe5f314128775dec66a616ac9a31ad48\"\u003e\u003ccode\u003e189fc4b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md, fix typo(s) (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/httpx/compare/0.27.2...0.28.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\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/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-timeout` from 2.3.1 to 2.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/ddabc934535081a5bf9ba7c9ca5b494aeaf8f665\"\u003e\u003ccode\u003eddabc93\u003c/code\u003e\u003c/a\u003e Add python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/617b1b6f0ab74517b92a4966b6db9e509d987972\"\u003e\u003ccode\u003e617b1b6\u003c/code\u003e\u003c/a\u003e Prepare release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/2e96621ee1b61057438c0f8c5b158eddc31654c5\"\u003e\u003ccode\u003e2e96621\u003c/code\u003e\u003c/a\u003e Change error message to clearly relate it to pytest-timeout (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-timeout/issues/180\"\u003e#180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/733b26b5d3b6f1c86876339f336cd827dc7d1a0c\"\u003e\u003ccode\u003e733b26b\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/fa5fd451afa3e7e676c7a31a9e7b058dabf0988b\"\u003e\u003ccode\u003efa5fd45\u003c/code\u003e\u003c/a\u003e Add support sys.monitoring\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/3d41ba8042ab1d07613572d95853dcc1c3602880\"\u003e\u003ccode\u003e3d41ba8\u003c/code\u003e\u003c/a\u003e Update README.rst with pytest-xdist 3.0.2 news\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/935f51cf0931dbbee8162e89b53289f1f43df499\"\u003e\u003ccode\u003e935f51c\u003c/code\u003e\u003c/a\u003e Add missing Python 3.12 trove classifier\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-timeout/compare/2.3.1...2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `respx` from 0.22.0 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.23.0\u003c/h2\u003e\n\u003ch2\u003e0.23.0 (7th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.22.0...0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.11.0 to 4.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.13.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ettl\u003c/code\u003e parameter to the \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e wrapper (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1073\"\u003e#1073\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWidened the type annotations of file I/O streams to accept \u003ccode\u003eIO[bytes]\u003c/code\u003e instead of just \u003ccode\u003eBinaryIO\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path\u003c/code\u003e not being compatible with Python 3.15 due to the removal of \u003ccode\u003epathlib.Path.is_reserved()\u003c/code\u003e and the addition of \u003ccode\u003epathlib.Path.__vfspath__()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1061\"\u003e#1061\u003c/a\u003e; PR by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the \u003ccode\u003eBrokenResourceError\u003c/code\u003e raised by the asyncio \u003ccode\u003eSocketStream\u003c/code\u003e not having the original exception as its cause (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1055\"\u003e#1055\u003c/a\u003e; PR by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the \u003ccode\u003eTypeError\u003c/code\u003e raised when using \u0026quot;func\u0026quot; as a parameter name in \u003ccode\u003epytest.mark.parametrize\u003c/code\u003e when using the pytest plugin (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1068\"\u003e#1068\u003c/a\u003e; PR by \u003ca href=\"https://github.com/JohnnyDeuss\"\u003e\u003ccode\u003e@​JohnnyDeuss\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the pytest plugin not running tests that had the \u003ccode\u003eanyio\u003c/code\u003e marker added programmatically via \u003ccode\u003epytest_collection_modifyitems\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/422\"\u003e#422\u003c/a\u003e; PR by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed cancellation exceptions leaking from a \u003ccode\u003eCancelScope\u003c/code\u003e on asyncio when they are contained in an exception group alongside non-cancellation exceptions (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1091\"\u003e#1091\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCondition.wait()\u003c/code\u003e not passing on a notification when the task is cancelled but already received a notification\u003c/li\u003e\n\u003cli\u003eFixed inverted condition in the process pool shutdown phase which would cause still-running pooled processes not to be terminated (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1074\"\u003e#1074\u003c/a\u003e; PR by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged all functions currently raising the private \u003ccode\u003eNoCurrentAsyncBackend\u003c/code\u003e exception (since v4.12.0) to instead raise the public \u003ccode\u003eNoEventLoopError\u003c/code\u003e exception (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with instance methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1042\"\u003e#1042\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for asyncio's \u003ca href=\"https://docs.python.org/3/library/asyncio-graph.html\"\u003etask call graphs\u003c/a\u003e on Python 3.14 and later when using AnyIO's task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded an asynchronous implementation of the \u003ccode\u003efunctools\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1001\"\u003e#1001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003euvloop=True\u003c/code\u003e on Windows via the \u003ca href=\"https://github.com/Vizonex/Winloop\"\u003ewinloop\u003c/a\u003e implementation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/960\"\u003e#960\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for use as a context manager to \u003ccode\u003eanyio.lowlevel.RunVar\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e__all__\u003c/code\u003e declarations to public submodules (\u003ccode\u003eanyio.lowlevel\u003c/code\u003e etc.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1009\"\u003e#1009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to set the token count of a \u003ccode\u003eCapacityLimiter\u003c/code\u003e to zero (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1019\"\u003e#1019\u003c/a\u003e; requires Python 3.10 or later when using Trio)\u003c/li\u003e\n\u003cli\u003eAdded parameters \u003ccode\u003ecase_sensitive\u003c/code\u003e and \u003ccode\u003erecurse_symlinks\u003c/code\u003e along with support for path-like objects to \u003ccode\u003eanyio.Path.glob()\u003c/code\u003e and \u003ccode\u003eanyio.Path.rglob()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1033\"\u003e#1033\u003c/a\u003e; PR by \u003ca href=\"https://github.com/northisup\"\u003e\u003ccode\u003e@​northisup\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped \u003ccode\u003esniffio\u003c/code\u003e as a direct dependency and added the \u003ccode\u003eget_available_backends()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not raising \u003ccode\u003eClosedResourceError\u003c/code\u003e and \u003ccode\u003eBrokenResourceError\u003c/code\u003e on asyncio. Previously, a non-AnyIO exception was raised in such cases (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not checkpointing before writing data on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1002\"\u003e#1002\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a race condition where cancelling a \u003ccode\u003eFuture\u003c/code\u003e from \u003ccode\u003eBlockingPortal.start_task_soon()\u003c/code\u003e would sometimes not cancel the async function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1011\"\u003e#1011\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the presence of the pytest plugin causing breakage with older versions of pytest (\u0026lt;= 6.1.2) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1028\"\u003e#1028\u003c/a\u003e; PR by \u003ca href=\"https://github.com/saper\"\u003e\u003ccode\u003e@​saper\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a rarely occurring \u003ccode\u003eRuntimeError: Set changed size during iteration\u003c/code\u003e while shutting down the process pool when using the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/985\"\u003e#985\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/agronholm/anyio/commit/afbe93ca9d0c447adf26e9c1715ac20870622bf2\"\u003e\u003ccode\u003eafbe93c\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/33bdf2e4b4f40c2df178123746147a6d2471808d\"\u003e\u003ccode\u003e33bdf2e\u003c/code\u003e\u003c/a\u003e Rearranged the changelog entries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/19e09e25bc5a23dd78a577d8c3909dd377057c78\"\u003e\u003ccode\u003e19e09e2\u003c/code\u003e\u003c/a\u003e Fixed inverted condition in _forcibly_shutdown_process_pool_on_exit (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1074\"\u003e#1074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9369d80b9e8292f2a892a9d5c73923c6a28aa08c\"\u003e\u003ccode\u003e9369d80\u003c/code\u003e\u003c/a\u003e Fixed Condition.wait() not handing over notification when cancelled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/6f122abdc6f6b166c6b6ac27d36d55cdf8fa08e8\"\u003e\u003ccode\u003e6f122ab\u003c/code\u003e\u003c/a\u003e Fixed cancellation exceptions leaking from a \u003ccode\u003eCancelScope\u003c/code\u003e on asyncio when th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/beaa45aff568a4020f2faf317321dd92f0e1f4a0\"\u003e\u003ccode\u003ebeaa45a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1097\"\u003e#1097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/602f6606dcf3f37702686a4f3e161328c537b07f\"\u003e\u003ccode\u003e602f660\u003c/code\u003e\u003c/a\u003e Widened type annotations to accept IO[bytes] in file streams\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b5dcd45170701a756ba634197398f05d4710cab3\"\u003e\u003ccode\u003eb5dcd45\u003c/code\u003e\u003c/a\u003e Added note about erasing the template\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d68670b3b4e0917d4caff2de082e03220f3e05a1\"\u003e\u003ccode\u003ed68670b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1090\"\u003e#1090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/fc17a22dd948e6a3d90d99908813f0010dfc3d2c\"\u003e\u003ccode\u003efc17a22\u003c/code\u003e\u003c/a\u003e tweak to_thread docs about abandon_on_cancel (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1088\"\u003e#1088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.11.0...4.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `playwright` from 1.49.0 to 1.58.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/playwright-python/releases\"\u003eplaywright's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.58.0\u003c/h2\u003e\n\u003ch2\u003eTrace Viewer Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNew 'system' theme option follows your OS dark/light mode preference\u003c/li\u003e\n\u003cli\u003eSearch functionality (Cmd/Ctrl+F) is now available in code editors\u003c/li\u003e\n\u003cli\u003eNetwork details panel has been reorganized for better usability\u003c/li\u003e\n\u003cli\u003eJSON responses are now automatically formatted for readability\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/cpAdm\"\u003e\u003ccode\u003e@​cpAdm\u003c/code\u003e\u003c/a\u003e for contributing these improvements!\u003c/p\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/python/docs/api/class-browsertype#browser-type-connect-over-cdp\"\u003ebrowser_type.connect_over_cdp()\u003c/a\u003e now accepts an \u003ccode\u003eis_local\u003c/code\u003e option. When set to \u003ccode\u003eTrue\u003c/code\u003e, it tells Playwright that it runs on the same host as the CDP server, enabling file system optimizations.\u003c/p\u003e\n\u003ch2\u003eBreaking Changes ⚠️\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved \u003ccode\u003e_react\u003c/code\u003e and \u003ccode\u003e_vue\u003c/code\u003e selectors. See \u003ca href=\"https://playwright.dev/python/docs/locators\"\u003elocators guide\u003c/a\u003e for alternatives.\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003e:light\u003c/code\u003e selector engine suffix. Use standard CSS selectors instead.\u003c/li\u003e\n\u003cli\u003eOption \u003ccode\u003edevtools\u003c/code\u003e from \u003ca href=\"https://playwright.dev/python/docs/api/class-browsertype#browser-type-launch\"\u003ebrowser_type.launch()\u003c/a\u003e has been removed. Use \u003ccode\u003eargs=['--auto-open-devtools-for-tabs']\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eRemoved macOS 13 support for WebKit. We recommend to upgrade your macOS version, or keep using an older Playwright version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBrowser Versions\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChromium 145.0.7632.6\u003c/li\u003e\n\u003cli\u003eMozilla Firefox 146.0.1\u003c/li\u003e\n\u003cli\u003eWebKit 26.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis version was also tested against the following stable channels:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGoogle Chrome 144\u003c/li\u003e\n\u003cli\u003eMicrosoft Edge 144\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.57.0\u003c/h2\u003e\n\u003ch2\u003eChrome for Testing\u003c/h2\u003e\n\u003cp\u003eStarting with this release, Playwright switches from Chromium, to using \u003ca href=\"https://developer.chrome.com/blog/chrome-for-testing/\"\u003eChrome for Testing\u003c/a\u003e builds. Both headed and headless browsers are subject to this. Your tests should still be passing after upgrading to Playwright 1.57.\u003c/p\u003e\n\u003cp\u003eWe're expecting no functional changes to come from this switch. The biggest change is the new icon and title in your toolbar.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eIf you still see an unexpected behaviour change, please \u003ca href=\"https://github.com/microsoft/playwright/issues/new\"\u003efile an issue\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eOn Arm64 Linux, Playwright continues to use Chromium.\u003c/p\u003e\n\u003ch2\u003eBreaking Change\u003c/h2\u003e\n\u003cp\u003eAfter 3 years of being deprecated, we removed \u003ccode\u003epage.accessibility\u003c/code\u003e from our API. Please use other libraries such as \u003ca href=\"https://www.deque.com/axe/\"\u003eAxe\u003c/a\u003e if you need to test page accessibility. See our Node.js \u003ca href=\"https://playwright.dev/docs/accessibility-testing\"\u003eguide\u003c/a\u003e for integration with Axe.\u003c/p\u003e\n\u003ch2\u003eNew APIs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/python/docs/api/class-worker#worker-event-console\"\u003eworker.on(\u0026quot;console\u0026quot;)\u003c/a\u003e event is emitted when JavaScript within the worker calls one of console API methods, e.g. console.log or console.dir. \u003ca href=\"https://playwright.dev/python/docs/api/class-worker#worker-wait-for-event\"\u003eworker.expect_event()\u003c/a\u003e can be used to wait for it.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/python/docs/api/class-locator#locator-description\"\u003elocator.description()\u003c/a\u003e returns locator description previously set with \u003ca href=\"https://playwright.dev/python/docs/api/class-locator#locator-describe\"\u003elocator.describe()\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eNew option \u003ca href=\"https://playwright.dev/python/docs/api/class-locator#locator-click-option-steps\"\u003e\u003ccode\u003esteps\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://playwright.dev/python/docs/api/class-locator#locator-click\"\u003elocator.click()\u003c/a\u003e and \u003ca href=\"https://playwright.dev/python/docs/api/class-locator#locator-drag-to\"\u003elocator.drag_to()\u003c/a\u003e that configures the number of \u003ccode\u003emousemove\u003c/code\u003e events emitted while moving the mouse pointer to the target element.\u003c/li\u003e\n\u003cli\u003eNetwork requests issued by \u003ca href=\"https://playwright.dev/python/docs/service-workers#network-events-and-routing\"\u003eService Workers\u003c/a\u003e are now reported and can be routed through the \u003ca href=\"https://playwright.dev/python/docs/api/class-browsercontext\"\u003eBrowserContext\u003c/a\u003e, only in Chromium. You can opt out using the \u003ccode\u003ePLAYWRIGHT_DISABLE_SERVICE_WORKER_NETWORK\u003c/code\u003e environment variable.\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/microsoft/playwright-python/commit/47a5d35ef4f815a2021349f86ae391f7c20c02d6\"\u003e\u003ccode\u003e47a5d35\u003c/code\u003e\u003c/a\u003e chore: roll to 1.58.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/3026\"\u003e#3026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/d3f5438d53dc10657ec8c5859049069b3b3b281a\"\u003e\u003ccode\u003ed3f5438\u003c/code\u003e\u003c/a\u003e chore: throw FileNotFoundError for nonexistant files (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/3014\"\u003e#3014\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/731b5395c3bd8dd26b9317ec8e7599a29cf99547\"\u003e\u003ccode\u003e731b539\u003c/code\u003e\u003c/a\u003e chore: implement Request.service_worker (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/2d3075502f8d6e4574ae34f71b8f77f61d14903d\"\u003e\u003ccode\u003e2d30755\u003c/code\u003e\u003c/a\u003e chore: roll 1.57.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/3012\"\u003e#3012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/3d1b875a9cc7d975fefb3058022ed31068421950\"\u003e\u003ccode\u003e3d1b875\u003c/code\u003e\u003c/a\u003e chore: roll to 1.57.0-beta-1763718928000 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/3007\"\u003e#3007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/75ceca04b7f4b29c1c026130696568fca68c9e88\"\u003e\u003ccode\u003e75ceca0\u003c/code\u003e\u003c/a\u003e chore: update driver to 1.56.1 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/3002\"\u003e#3002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/f283da50d64ee896d0a148522b6c719b86b721f3\"\u003e\u003ccode\u003ef283da5\u003c/code\u003e\u003c/a\u003e devops: update ado owner (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/019df4b0ecbd8f14154b9ddfbc0b33a3a48c5f96\"\u003e\u003ccode\u003e019df4b\u003c/code\u003e\u003c/a\u003e fix: prevent ProtocolCallback memory leak during tracing (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2977\"\u003e#2977\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2980\"\u003e#2980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/4fb9e0701cbfb7a1da0971b073c593ed44ad0f80\"\u003e\u003ccode\u003e4fb9e07\u003c/code\u003e\u003c/a\u003e chore: add dupe sync tests for 1.56 roll (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2988\"\u003e#2988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/f4ad602401631461f48256ef76f24231992639b0\"\u003e\u003ccode\u003ef4ad602\u003c/code\u003e\u003c/a\u003e fix: remove duplicate callback addition (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2984\"\u003e#2984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright-python/compare/v1.49.0...v1.58.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-playwright` from 0.5.2 to 0.7.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/playwright-pytest/releases\"\u003epytest-playwright's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.7.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump django from 4.2.22 to 4.2.24 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/292\"\u003emicrosoft/playwright-pytest#292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop Python 3.9 by \u003ca href=\"https://github.com/mxschmitt\"\u003e\u003ccode\u003e@​mxschmitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/299\"\u003emicrosoft/playwright-pytest#299\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: support Pytest v9 by \u003ca href=\"https://github.com/mxschmitt\"\u003e\u003ccode\u003e@​mxschmitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/300\"\u003emicrosoft/playwright-pytest#300\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: check common name for incompatible plugin by \u003ca href=\"https://github.com/JamesYFC\"\u003e\u003ccode\u003e@​JamesYFC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/294\"\u003emicrosoft/playwright-pytest#294\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/JamesYFC\"\u003e\u003ccode\u003e@​JamesYFC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/294\"\u003emicrosoft/playwright-pytest#294\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microsoft/playwright-pytest/compare/v0.7.1...v0.7.2\"\u003ehttps://github.com/microsoft/playwright-pytest/compare/v0.7.1...v0.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.7.1\u003c/h2\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efix: use png screenshot type after Playwright v1.55.0 alignment by \u003ca href=\"https://github.com/mxschmitt\"\u003e\u003ccode\u003e@​mxschmitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/290\"\u003emicrosoft/playwright-pytest#290\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add async/sync compatibility check by \u003ca href=\"https://github.com/mecampbellsoup\"\u003e\u003ccode\u003e@​mecampbellsoup\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/282\"\u003emicrosoft/playwright-pytest#282\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/roberfi\"\u003e\u003ccode\u003e@​roberfi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/285\"\u003emicrosoft/playwright-pytest#285\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mecampbellsoup\"\u003e\u003ccode\u003e@​mecampbellsoup\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/282\"\u003emicrosoft/playwright-pytest#282\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microsoft/playwright-pytest/compare/v0.7.0...v0.7.1\"\u003ehttps://github.com/microsoft/playwright-pytest/compare/v0.7.0...v0.7.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.7.0\u003c/h2\u003e\n\u003cp\u003eAllow declaring \u003ccode\u003econnect_options\u003c/code\u003e fixture to connect to remote browsers.\u003c/p\u003e\n\u003ch2\u003ev0.6.2\u003c/h2\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edevops: publish wheels in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/261\"\u003emicrosoft/playwright-pytest#261\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cp\u003eFix conda publishing\u003c/p\u003e\n\u003ch2\u003ev0.6.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: pytest-playwright-asyncio as separate plugin in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/257\"\u003emicrosoft/playwright-pytest#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: expose output_path fixture in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/248\"\u003emicrosoft/playwright-pytest#248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop Python 3.8 in \u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/pull/253\"\u003emicrosoft/playwright-pytest#253\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microsoft/playwright-pytest/compare/v0.5.2...v0.6.0\"\u003ehttps://github.com/microsoft/playwright-pytest/compare/v0.5.2...v0.6.0\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/microsoft/playwright-pytest/commit/b64ad1cf73527a0b60c5569a89825eb13561c897\"\u003e\u003ccode\u003eb64ad1c\u003c/code\u003e\u003c/a\u003e Upgrade EsrpRelease task version and update owners (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/1d6443081099178095ed5513ca159ef36e6a7bd7\"\u003e\u003ccode\u003e1d64430\u003c/code\u003e\u003c/a\u003e fix: check common name for incompatible plugin (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/294\"\u003e#294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/1657ed276e71c448830959bbbb013cc767bf406f\"\u003e\u003ccode\u003e1657ed2\u003c/code\u003e\u003c/a\u003e chore: support Pytest v9 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/5f48b7895be11a9ea5f6bb5282c7eb1dd77ae999\"\u003e\u003ccode\u003e5f48b78\u003c/code\u003e\u003c/a\u003e chore: drop Python 3.9 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/299\"\u003e#299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/c1af305a0026b506919448d2d85ed51a20e5d37f\"\u003e\u003ccode\u003ec1af305\u003c/code\u003e\u003c/a\u003e chore(deps): bump django from 4.2.22 to 4.2.24 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/292\"\u003e#292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/44ca9711e0c145127f2cfc4729801ccc7ed7a033\"\u003e\u003ccode\u003e44ca971\u003c/code\u003e\u003c/a\u003e devops: fix AzDO publishing pipeline (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/291\"\u003e#291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/37fc15616b08ba5e0fcc0a550a8a3a6b33656b0a\"\u003e\u003ccode\u003e37fc156\u003c/code\u003e\u003c/a\u003e fix: use png screenshot type after Playwright v1.55.0 alignment (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/290\"\u003e#290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/48e68b793b4e045006c8236c12b4ccff89f40c86\"\u003e\u003ccode\u003e48e68b7\u003c/code\u003e\u003c/a\u003e fix: throw if both async/sync pytest-playwright plugins are loaded (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/29e723ffc265252560c58bb577c2b8a4963f54b6\"\u003e\u003ccode\u003e29e723f\u003c/code\u003e\u003c/a\u003e test: do not depend on example.com (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/f667863890a660ae4cb180cd53fda66e762ddb5b\"\u003e\u003ccode\u003ef667863\u003c/code\u003e\u003c/a\u003e test: fix 'test_is_able_to_set_expect_timeout_via_conftest' tests (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright-pytest/compare/v0.5.2...v0.7.2\"\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 \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Wolf-Achtung/api-ki-backend-neu/pull/991","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wolf-Achtung%2Fapi-ki-backend-neu/issues/991","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/991/packages"}},{"old_version":"\u003e=0.22.0","new_version":"\u003e=0.23.1","update_type":"minor","path":null,"pr_created_at":"2026-04-24T15:27:57.000Z","version_change":"\u003e=0.22.0 → \u003e=0.23.1","issue":{"uuid":"4323931542","node_id":"PR_kwDORx3mos7VYkSK","number":21,"state":"open","title":"build(deps-dev): Update respx requirement from \u003e=0.22.0 to \u003e=0.23.1","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-04-24T15:27:57.000Z","updated_at":"2026-04-24T15:27:58.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev): Update","packages":[{"name":"respx","old_version":"\u003e=0.22.0","new_version":"\u003e=0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [respx](https://github.com/lundberg/respx) 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/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.22.0] - 2024-12-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport HTTPX 0.28.0, thanks \u003ca href=\"https://github.com/ndhansen\"\u003e\u003ccode\u003e@​ndhansen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, to align with HTTPX 0.25.0 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CI test to not fail fast and cancel workflows, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd dependabot to check GitHub actions packages, thanks \u003ca href=\"https://github.com/flaeppe\"\u003e\u003ccode\u003e@​flaeppe\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 to test suite, thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.21.1] - 2024-03-27\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efiles\u003c/code\u003e pattern not handling \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eBytesIO\u003c/code\u003e, thanks \u003ca href=\"https://github.com/pierremonico\"\u003e\u003ccode\u003e@​pierremonico\u003c/code\u003e\u003c/a\u003e for input\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.22.0...0.23.1\"\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/ZoltyMat/pi-key/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZoltyMat%2Fpi-key/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"}},{"old_version":"0.21.1","new_version":"0.23.1","update_type":"minor","path":null,"pr_created_at":"2026-04-23T10:55:54.000Z","version_change":"0.21.1 → 0.23.1","issue":{"uuid":"4315416663","node_id":"PR_kwDOR6S1x87U8oRn","number":63,"state":"closed","title":"deps(deps): bump the minor-and-patch group across 1 directory with 27 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-11T07:22:35.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-23T10:55:54.000Z","updated_at":"2026-05-11T07:22:38.000Z","time_to_close":1542401,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"minor-and-patch","update_count":27,"packages":[{"name":"fastapi","old_version":"0.115.0","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.30.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"asyncpg","old_version":"0.29.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"arq","old_version":"0.26.3","new_version":"0.28.0","repository_url":"https://github.com/python-arq/arq"},{"name":"curl-cffi","old_version":"0.7.3","new_version":"0.15.0","repository_url":"https://github.com/lexiforest/curl_cffi"},{"name":"camoufox","old_version":"0.4.4","new_version":"0.4.11","repository_url":"https://github.com/daijro/camoufox"},{"name":"patchright","old_version":"1.52.5","new_version":"1.59.1","repository_url":"https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python"},{"name":"pydantic","old_version":"2.10.0","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"python-levenshtein","old_version":"0.25.0","new_version":"0.27.3","repository_url":"https://github.com/rapidfuzz/python-Levenshtein"},{"name":"tldextract","old_version":"5.1.0","new_version":"5.3.1","repository_url":"https://github.com/john-kurkowski/tldextract"},{"name":"celery","old_version":"5.4.0","new_version":"5.6.3","repository_url":"https://github.com/celery/celery"},{"name":"sqlalchemy","old_version":"2.0.30","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"},{"name":"imagehash","old_version":"4.3.1","new_version":"4.3.2","repository_url":"https://github.com/JohannesBuchner/imagehash"},{"name":"psycopg2-binary","old_version":"2.9.9","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pydantic-settings","old_version":"2.5.2","new_version":"2.14.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"sentry-sdk","old_version":"2.22.0","new_version":"2.58.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"prometheus-client","old_version":"0.21.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"fakeredis","old_version":"2.26.1","new_version":"2.35.1","repository_url":"https://github.com/cunla/fakeredis-py"},{"name":"moto","old_version":"5.0.0","new_version":"5.2.0","repository_url":"https://github.com/getmoto/moto"},{"name":"testcontainers","old_version":"4.9.0","new_version":"4.14.2","repository_url":"https://github.com/testcontainers/testcontainers-python"},{"name":"respx","old_version":"0.21.1","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"mypy","old_version":"1.11.0","new_version":"1.20.2","repository_url":"https://github.com/python/mypy"},{"name":"ruff","old_version":"0.6.0","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pip-audit","old_version":"2.7.3","new_version":"2.10.0","repository_url":"https://github.com/pypa/pip-audit"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-and-patch group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.0` | `0.136.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.30.0` | `0.46.0` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.29.0` | `0.31.0` |\n| [arq](https://github.com/python-arq/arq) | `0.26.3` | `0.28.0` |\n| [curl-cffi](https://github.com/lexiforest/curl_cffi) | `0.7.3` | `0.15.0` |\n| [camoufox](https://github.com/daijro/camoufox) | `0.4.4` | `0.4.11` |\n| [patchright](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python) | `1.52.5` | `1.59.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.10.0` | `2.13.3` |\n| [python-levenshtein](https://github.com/rapidfuzz/python-Levenshtein) | `0.25.0` | `0.27.3` |\n| [tldextract](https://github.com/john-kurkowski/tldextract) | `5.1.0` | `5.3.1` |\n| [celery](https://github.com/celery/celery) | `5.4.0` | `5.6.3` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.30` | `2.0.49` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n| [imagehash](https://github.com/JohannesBuchner/imagehash) | `4.3.1` | `4.3.2` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.9` | `2.9.12` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.5.2` | `2.14.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.22.0` | `2.58.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.21.0` | `0.25.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [fakeredis](https://github.com/cunla/fakeredis-py) | `2.26.1` | `2.35.1` |\n| [moto](https://github.com/getmoto/moto) | `5.0.0` | `5.2.0` |\n| [testcontainers](https://github.com/testcontainers/testcontainers-python) | `4.9.0` | `4.14.2` |\n| [respx](https://github.com/lundberg/respx) | `0.21.1` | `0.23.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [mypy](https://github.com/python/mypy) | `1.11.0` | `1.20.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.6.0` | `0.15.12` |\n| [pip-audit](https://github.com/pypa/pip-audit) | `2.7.3` | `2.10.0` |\n\n\nUpdates `fastapi` from 0.115.0 to 0.136.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.3\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/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.0...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.30.0 to 0.46.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.46.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2915\"\u003eKludex/uvicorn#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2916\"\u003eKludex/uvicorn#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2917\"\u003eKludex/uvicorn#2917\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.45.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2903\"\u003eKludex/uvicorn#2903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2905\"\u003eKludex/uvicorn#2905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2907\"\u003eKludex/uvicorn#2907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2906\"\u003eKludex/uvicorn#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert empty context for ASGI runs by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2911\"\u003eKludex/uvicorn#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2912\"\u003eKludex/uvicorn#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e) by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2913\"\u003eKludex/uvicorn#2913\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/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2870\"\u003eKludex/uvicorn#2870\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.44.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2888\"\u003eKludex/uvicorn#2888\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.43.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.42.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.46.0 (April 23, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2916\"\u003e#2916\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2917\"\u003e#2917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.45.0 (April 21, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2913\"\u003e#2913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Explicitly start ASGI run with empty context\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2906\"\u003e#2906\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.44.0 (April 6, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0 (April 3, 2026)\u003c/h2\u003e\n\u003cp\u003eYou can quit Uvicorn now. We heard you, \u003ca href=\"https://github.com/pamelafox\"\u003e\u003ccode\u003e@​pamelafox\u003c/code\u003e\u003c/a\u003e - all 47 of your Ctrl+C's (thanks for flagging it, and thanks to \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e for the fix 🙏). \u003ca href=\"https://x.com/pamelafox/status/2039097686155227623\"\u003eSee the tweet\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.42.0 (March 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\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/Kludex/uvicorn/commit/b224045f5900b7f766743bcb16ba9fc3adea2606\"\u003e\u003ccode\u003eb224045\u003c/code\u003e\u003c/a\u003e Version 0.46.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2918\"\u003e#2918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7375b5bf66d962186d663e85615d4b4d956bf880\"\u003e\u003ccode\u003e7375b5b\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d438fb16fe2d23c7bbc2ca7094645cff1f116458\"\u003e\u003ccode\u003ed438fb1\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3e6b96446653d0156434bce529a14c80764c9eda\"\u003e\u003ccode\u003e3e6b964\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2c423bd82be169459ea254a61476de34767e0326\"\u003e\u003ccode\u003e2c423bd\u003c/code\u003e\u003c/a\u003e Version 0.45.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7f027f8e25e47668a9c2ce8b5c21b35054c48d02\"\u003e\u003ccode\u003e7f027f8\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/73a80c3cc87de269ed016e584a25e585ae6f2b44\"\u003e\u003ccode\u003e73a80c3\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/45c0b568d38e9bf4f2f036bc2d79eb98b0e72f72\"\u003e\u003ccode\u003e45c0b56\u003c/code\u003e\u003c/a\u003e Revert empty context for ASGI runs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/850d92656de0cb5859ee5f6ba252e19ad3d38989\"\u003e\u003ccode\u003e850d926\u003c/code\u003e\u003c/a\u003e Raise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2906\"\u003e#2906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/fdcacb4b83bc686ea1ba9e50ffe5b8cfe49b3e00\"\u003e\u003ccode\u003efdcacb4\u003c/code\u003e\u003c/a\u003e Accept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.30.0...0.46.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asyncpg` from 0.29.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.30.0\u003c/h2\u003e\n\u003cp\u003eSupport Python 3.13 and PostgreSQL 17.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImplement GSSAPI authentication\n(by \u003ca href=\"https://github.com/eltoder\"\u003e\u003ccode\u003e@​eltoder\u003c/code\u003e\u003c/a\u003e in 1d4e5680 for \u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1122\"\u003e#1122\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement SSPI authentication\n(by \u003ca href=\"https://github.com/eltoder\"\u003e\u003ccode\u003e@​eltoder\u003c/code\u003e\u003c/a\u003e in 1aab2094 for \u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1128\"\u003e#1128\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd initial typings\n(by \u003ca href=\"https://github.com/bryanforbes\"\u003e\u003ccode\u003e@​bryanforbes\u003c/code\u003e\u003c/a\u003e in d42432bf for \u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1127\"\u003e#1127\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow building with Cython 3\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/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.29.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `arq` from 0.26.3 to 0.28.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-arq/arq/releases\"\u003earq's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.28.0 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/522\"\u003epython-arq/arq#522\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-arq/arq/compare/v0.27.0...v0.28.0\"\u003ehttps://github.com/python-arq/arq/compare/v0.27.0...v0.28.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.27.0 2026-02-02\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13, remove advertised support for Python 3.8 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/514\"\u003epython-arq/arq#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply lint and format for Python 3.9 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/515\"\u003epython-arq/arq#515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse uv, update actions by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/516\"\u003epython-arq/arq#516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate project URLs by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/517\"\u003epython-arq/arq#517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eretry_on_error\u003c/code\u003e type annotation by \u003ca href=\"https://github.com/armicron\"\u003e\u003ccode\u003e@​armicron\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/446\"\u003epython-arq/arq#446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix wrong reference in \u003ccode\u003eRetry\u003c/code\u003e docstring by \u003ca href=\"https://github.com/PassionateBytes\"\u003e\u003ccode\u003e@​PassionateBytes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/507\"\u003epython-arq/arq#507\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/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/514\"\u003epython-arq/arq#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/armicron\"\u003e\u003ccode\u003e@​armicron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/446\"\u003epython-arq/arq#446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PassionateBytes\"\u003e\u003ccode\u003e@​PassionateBytes\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-arq/arq/pull/507\"\u003epython-arq/arq#507\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-arq/arq/compare/v0.26.3...v0.27.0\"\u003ehttps://github.com/python-arq/arq/compare/v0.26.3...v0.27.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/python-arq/arq/blob/main/HISTORY.rst\"\u003earq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev0.28.0 (2026-04-16)\n....................\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/issues/522\"\u003e#522\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ev0.27.0 (2026-01-30)\n....................\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong reference in \u003ccode\u003eRetry\u003c/code\u003e docstring by \u003ca href=\"https://github.com/PassionateBytes\"\u003e\u003ccode\u003e@​PassionateBytes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/issues/507\"\u003e#507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix retry_on_error type annotation by \u003ca href=\"https://github.com/armicron\"\u003e\u003ccode\u003e@​armicron\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/issues/446\"\u003e#446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13, remove advertised support for Python 3.8 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-arq/arq/issues/514\"\u003e#514\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/python-arq/arq/commit/5ee4b48cf6faf4dc181f1ccb76dfb1bc1fedf9bf\"\u003e\u003ccode\u003e5ee4b48\u003c/code\u003e\u003c/a\u003e Prepare release 0.28.0 (\u003ca href=\"https://redirect.github.com/python-arq/arq/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-arq/arq/commit/5c725217832893c574e0bf215948c42d00d67bff\"\u003e\u003ccode\u003e5c72521\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/python-arq/arq/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-arq/arq/commit/fda407c4cb5ec2e6f2b13c2aa9671f86e7a0f8c5\"\u003e\u003ccode\u003efda407c\u003c/code\u003e\u003c/a\u003e Prepare release 0.27.0 (\u003ca href=\"https://redirect.github.com/python-arq/arq/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-arq/arq/commit/633bba3b464cc1f162d0272a073e1c04d2b9898d\"\u003e\u003ccode\u003e633bba3\u003c/code\u003e\u003c/a\u003e Fix wrong reference in \u003ccode\u003eRetry\u003c/code\u003e docstring (\u003ca href=\"https://redirect.github.com/python-arq/arq/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-arq/arq/commit/1ceb4351441b602e2d942daf57540adfe90acf38\"\u003e\u003ccode\u003e1ceb435\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eretry_on_error\u003c/code\u003e type annotation (\u003ca href=\"https://redirect.github.com/python-arq/arq/issues/446\"\u003e#446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-arq/arq/commit/2354d8f52982f6e29b9ba67fd4d7e6017099d7b8\"\u003e\u003ccode\u003e2354d8f\u003c/code\u003e\u003c/a\u003e Update project URLs (\u003ca href=\"https://redirect.github.com/python-arq/arq/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-arq/arq/commit/4c0602d1c49dfb364c333a3c3a3b062387c2a896\"\u003e\u003ccode\u003e4c0602d\u003c/code\u003e\u003c/a\u003e Use uv, update actions (\u003ca href=\"https://redirect.github.com/python-arq/arq/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-arq/arq/commit/4636c86bae2fb42796b60f578e7772f42c84a08a\"\u003e\u003ccode\u003e4636c86\u003c/code\u003e\u003c/a\u003e Apply lint and format for Python 3.9 (\u003ca href=\"https://redirect.github.com/python-arq/arq/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-arq/arq/commit/a8b4c1706548981eab217dc9256a837ebbe73975\"\u003e\u003ccode\u003ea8b4c17\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13, remove advertised support for Python 3.8 (\u003ca href=\"https://redirect.github.com/python-arq/arq/issues/514\"\u003e#514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-arq/arq/commit/0e3295b0dfda2899153a7012d642cdf077a463b7\"\u003e\u003ccode\u003e0e3295b\u003c/code\u003e\u003c/a\u003e [skip ci] add maintenance notice to readme\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python-arq/arq/compare/v0.26.3...v0.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `curl-cffi` from 0.7.3 to 0.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lexiforest/curl_cffi/releases\"\u003ecurl-cffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.15.0\u003c/h2\u003e\n\u003cp\u003e🎉 Another release with significant changes!\u003c/p\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ehttp/3 fingerprints, added for Chrome 145, 146 and Firefox 147. To verify http3 fingerprints, visit \u003ca href=\"https://fp.impersonate.pro\"\u003ehttps://fp.impersonate.pro\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ehttp/3 proxy support with socks5 udp proxy server.\u003c/li\u003e\n\u003cli\u003eNew CLI tool, just called \u003ccode\u003ecurl-cffi\u003c/code\u003e, easier http debugging for both humans and agents. See \u003ca href=\"https://curl-cffi.readthedocs.io/en/latest/cli/_index.html\"\u003edocs\u003c/a\u003e. We also added a \u003ca href=\"https://github.com/lexiforest/curl_cffi/blob/main/skills/imp-fetch/SKILL.md\"\u003eskill\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCompatibility optimization, curl_cffi is now fully static. Especially for macOS, no dependencies needed and compatible with macOS since 11.0.\u003c/li\u003e\n\u003cli\u003e⚠️ Security improvement. If you are accepting urls from others and returning the response to them, you are vulnerable to redirection-based SSRF. Disable \u003ccode\u003eallow_redirects\u003c/code\u003e or at lease set \u003ccode\u003eallow_redirects=\u0026quot;safe\u0026quot;\u003c/code\u003e, see the \u003ca href=\"https://github.com/lexiforest/curl_cffi/security/advisories/GHSA-qw2m-4pqf-rmpp\"\u003eadvisory\u003c/a\u003e and the \u003ca href=\"https://curl-cffi.readthedocs.io/en/latest/security.html#ssrf-protection\"\u003edocs\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePerformance optimization: WebSocket improvement and free-threading support.\u003c/li\u003e\n\u003cli\u003eAndroid is officially supported, closing a 3-years-old issue.\u003c/li\u003e\n\u003cli\u003eNew impersonation behaviors, the cookie header behavior and POST boundary are now made exactly the same as browsers. These are not part of tls or http binary fingerprints, but are exploited by WAFs, too.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe list of proxy vendors with udp sock5 support is very limited, so I set up 2 servers for testing. You can simply run:\u003c/p\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl-cffi get https://fp.impersonate.pro/api/http3 --proxy socks5://imp:curl-cffi@206.189.95.199:1080 --http3-only\r\ncurl-cffi get https://fp.impersonate.pro/api/http3 --proxy socks5://imp:curl-cffi@24.144.88.46:1080 --http3-only\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIf you need more udp socks5 servers from us, click the 👀 emoji to vote.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix some of the extension values being overwritten caused by applying… by \u003ca href=\"https://github.com/enter-a-new-username3\"\u003e\u003ccode\u003e@​enter-a-new-username3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/680\"\u003elexiforest/curl_cffi#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTypehint session return values and internal functions by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/664\"\u003elexiforest/curl_cffi#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd free threaded builds by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/697\"\u003elexiforest/curl_cffi#697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAsync WebSocket: Docs, Safety \u0026amp; Performance Improvements by \u003ca href=\"https://github.com/Sh3llcod3\"\u003e\u003ccode\u003e@​Sh3llcod3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/692\"\u003elexiforest/curl_cffi#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Android by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/699\"\u003elexiforest/curl_cffi#699\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd type hint for request responses by \u003ca href=\"https://github.com/MFTabriz\"\u003e\u003ccode\u003e@​MFTabriz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/690\"\u003elexiforest/curl_cffi#690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResponse hint fix for \u0026lt; 3.13 by \u003ca href=\"https://github.com/novitae\"\u003e\u003ccode\u003e@​novitae\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/546\"\u003elexiforest/curl_cffi#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix BufferError Crash by \u003ca href=\"https://github.com/Sh3llcod3\"\u003e\u003ccode\u003e@​Sh3llcod3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/700\"\u003elexiforest/curl_cffi#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWS: Small Optimizations by \u003ca href=\"https://github.com/Sh3llcod3\"\u003e\u003ccode\u003e@​Sh3llcod3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/702\"\u003elexiforest/curl_cffi#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for retrying by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/689\"\u003elexiforest/curl_cffi#689\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWS: Update Docs by \u003ca href=\"https://github.com/Sh3llcod3\"\u003e\u003ccode\u003e@​Sh3llcod3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/705\"\u003elexiforest/curl_cffi#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable http3 fingerprints by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/712\"\u003elexiforest/curl_cffi#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for loongarch64 by \u003ca href=\"https://github.com/wxpppp\"\u003e\u003ccode\u003e@​wxpppp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/716\"\u003elexiforest/curl_cffi#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake the CLI more useful by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/726\"\u003elexiforest/curl_cffi#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd option to mitigate SSRF by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/727\"\u003elexiforest/curl_cffi#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose http3 fingerprints customization by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/728\"\u003elexiforest/curl_cffi#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd body to response.request by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/710\"\u003elexiforest/curl_cffi#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix Makefile issue by \u003ca href=\"https://github.com/p9s\"\u003e\u003ccode\u003e@​p9s\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/655\"\u003elexiforest/curl_cffi#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for READFUNCTION by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/698\"\u003elexiforest/curl_cffi#698\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/enter-a-new-username3\"\u003e\u003ccode\u003e@​enter-a-new-username3\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/680\"\u003elexiforest/curl_cffi#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MFTabriz\"\u003e\u003ccode\u003e@​MFTabriz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/690\"\u003elexiforest/curl_cffi#690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wxpppp\"\u003e\u003ccode\u003e@​wxpppp\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/716\"\u003elexiforest/curl_cffi#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/p9s\"\u003e\u003ccode\u003e@​p9s\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/655\"\u003elexiforest/curl_cffi#655\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lexiforest/curl_cffi/compare/v0.14.0...v0.15.0\"\u003ehttps://github.com/lexiforest/curl_cffi/compare/v0.14.0...v0.15.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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/0e219c43701f955436ef4a20486a7237a417dbc6\"\u003e\u003ccode\u003e0e219c4\u003c/code\u003e\u003c/a\u003e cli: add --http3-only\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/21ca4f0e0fdc16401949dbd939c9e1c0973d6e85\"\u003e\u003ccode\u003e21ca4f0\u003c/code\u003e\u003c/a\u003e Optimize CLI output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/884fffd752c1ac1890f74eb87ef682b7a17f486a\"\u003e\u003ccode\u003e884fffd\u003c/code\u003e\u003c/a\u003e Bump version to 0.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/754b43d76ce07db943d656524ee8c2432e99b74e\"\u003e\u003ccode\u003e754b43d\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/6e61a25d13edfe062554310913c1fd1c19b9e5af\"\u003e\u003ccode\u003e6e61a25\u003c/code\u003e\u003c/a\u003e Add support for READFUNCTION (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/698\"\u003e#698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/5eb13bc91f2a6f5014d163ea9c0b89a3b70c8cab\"\u003e\u003ccode\u003e5eb13bc\u003c/code\u003e\u003c/a\u003e fix Makefile issue (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/39c046c548a490c2f2fed8c9c82ed6a5ab39ad05\"\u003e\u003ccode\u003e39c046c\u003c/code\u003e\u003c/a\u003e Store request body (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/710\"\u003e#710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/06237c9172815071678c920afb75dfd1ab6db32a\"\u003e\u003ccode\u003e06237c9\u003c/code\u003e\u003c/a\u003e Expose http3 fingerprints customization (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/5686baf38d6d5128b80b83573158ee1241dff4da\"\u003e\u003ccode\u003e5686baf\u003c/code\u003e\u003c/a\u003e Add option to mitigate SSRF (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/73b2b1694324a426ba8ddc61a602867d1d764552\"\u003e\u003ccode\u003e73b2b16\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lexiforest/curl_cffi/compare/v0.7.3...v0.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `camoufox` from 0.4.4 to 0.4.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/daijro/camoufox/releases\"\u003ecamoufox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eHardware Spoofing\u003c/h2\u003e\n\u003cp\u003eThis release has not been tested yet. Please don't use unless you know what you are doing :)\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\u003eSee full diff in \u003ca href=\"https://github.com/daijro/camoufox/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `patchright` from 1.52.5 to 1.59.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python/releases\"\u003epatchright's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.59.0\u003c/h2\u003e\n\u003cp\u003eThis is an automatic deployment in response to a new release of \u003ca href=\"https://github.com/microsoft/playwright-python\"\u003emicrosoft/playwright-python\u003c/a\u003e.\nThis Release is only used for Versioning.\u003c/p\u003e\n\u003ch2\u003ev1.58.0\u003c/h2\u003e\n\u003cp\u003eThis is an automatic deployment in response to a new release of \u003ca href=\"https://github.com/microsoft/playwright-python\"\u003emicrosoft/playwright-python\u003c/a\u003e.\nThis Release is only used for Versioning.\u003c/p\u003e\n\u003ch2\u003ev1.57.0\u003c/h2\u003e\n\u003cp\u003eThis is an automatic deployment in response to a new release of \u003ca href=\"https://github.com/microsoft/playwright-python\"\u003emicrosoft/playwright-python\u003c/a\u003e.\nThis Release is only used for Versioning.\u003c/p\u003e\n\u003ch2\u003ev1.56.0\u003c/h2\u003e\n\u003cp\u003eThis is an automatic deployment in response to a new release of \u003ca href=\"https://github.com/microsoft/playwright-python\"\u003emicrosoft/playwright-python\u003c/a\u003e.\nThis Release is only used for Versioning.\u003c/p\u003e\n\u003ch2\u003ev1.55.0\u003c/h2\u003e\n\u003cp\u003eThis is an automatic deployment in response to a new release of \u003ca href=\"https://github.com/microsoft/playwright-python\"\u003emicrosoft/playwright-python\u003c/a\u003e.\nThis Release is only used for Versioning.\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\u003eSee full diff in \u003ca href=\"https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.10.0 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\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/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\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/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.10.0...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-levenshtein` from 0.25.0 to 0.27.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/releases\"\u003epython-levenshtein's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 0.27.3\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 0.27.1\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix build with \u003ccode\u003escikit-build-core\u003c/code\u003e \u003ccode\u003ev0.11\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eupgrade to \u003ccode\u003eCython==3.0.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 0.26.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd missing mac os wheels\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 0.26.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for Python 3.13\u003c/li\u003e\n\u003cli\u003edrop support for Python 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 0.25.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix potentially incorrect results of \u003ccode\u003ejaro_winkler\u003c/code\u003e when using high prefix weights\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/rapidfuzz/python-Levenshtein/blob/main/HISTORY.md\"\u003epython-levenshtein's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev0.27.3\u003c/h3\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.27.1\u003c/h3\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003efix build with \u003ccode\u003escikit-build-core\u003c/code\u003e \u003ccode\u003ev0.11\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eupgrade to \u003ccode\u003eCython==3.0.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.26.1\u003c/h3\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eadd missing mac os wheels\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.26.0\u003c/h3\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for Python 3.13\u003c/li\u003e\n\u003cli\u003edrop support for Python 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.25.1\u003c/h3\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003efix potentially incorrect results of \u003ccode\u003ejaro_winkler\u003c/code\u003e when using high prefix weights\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/rapidfuzz/python-Levenshtein/commit/23fffc235b9290c3288ece63a9463d92b65fb17e\"\u003e\u003ccode\u003e23fffc2\u003c/code\u003e\u003c/a\u003e add support for python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/commit/e46eaff43c00aac3e80266b1a6c503af97bcc817\"\u003e\u003ccode\u003ee46eaff\u003c/code\u003e\u003c/a\u003e use pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/commit/3bbf7ec56df5c708977104827129767edebbd1f6\"\u003e\u003ccode\u003e3bbf7ec\u003c/code\u003e\u003c/a\u003e remove duplicated license information\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/commit/ec1a77524a8c7277cbcd3162cf6deaabfbfd9a9c\"\u003e\u003ccode\u003eec1a775\u003c/code\u003e\u003c/a\u003e rename license file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/commit/26cb183f4ef394af6c12817f09b3fbda33bb3499\"\u003e\u003ccode\u003e26cb183\u003c/code\u003e\u003c/a\u003e update to 0.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/commit/ff4cd4ea9b15c6d1c9ba79a2266fb7760879fc4c\"\u003e\u003ccode\u003eff4cd4e\u003c/code\u003e\u003c/a\u003e Update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/commit/3ba4bb30f8bda276e070e3416f6905d77ddde633\"\u003e\u003ccode\u003e3ba4bb3\u003c/code\u003e\u003c/a\u003e update installer version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/commit/abd121defa4d40aa1d3d65b5d768067c5ac602ed\"\u003e\u003ccode\u003eabd121d\u003c/code\u003e\u003c/a\u003e update Levenshtein version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/commit/bb6eff3005f180853b13e86356e103368c92c3e6\"\u003e\u003ccode\u003ebb6eff3\u003c/code\u003e\u003c/a\u003e tag 0.25.1\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rapidfuzz/python-Levenshtein/compare/v0.25.0...v0.27.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tldextract` from 5.1.0 to 5.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/john-kurkowski/tldextract/releases\"\u003etldextract's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.9 (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 + PyPy 3.11 (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up IP address search space with \u003ccode\u003eisdecimal()\u003c/code\u003e instead of \u003ccode\u003eisdigit()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/352\"\u003e#352\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDocs\n\u003cul\u003e\n\u003cli\u003eReorganize, dedupe, and shorten README (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\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/bmos\"\u003e\u003ccode\u003e@​bmos\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/pull/358\"\u003ejohn-kurkowski/tldextract#358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elliotwutingfeng\"\u003e\u003ccode\u003e@​elliotwutingfeng\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/john-kurkowski/tldextract/compare/5.3.0...5.3.1\"\u003ehttps://github.com/john-kurkowski/tldextract/compare/5.3.0...5.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeatures\n\u003cul\u003e\n\u003cli\u003eAdd result field \u003ccode\u003eregistry_suffix\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/344\"\u003e#344\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eTo complement the existing public suffix field \u003ccode\u003esuffix\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd result property \u003ccode\u003etop_domain_under_public_suffix\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd result property \u003ccode\u003etop_domain_under_registry_suffix\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eregistered_domain\u003c/code\u003e property\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003etop_domain_under_public_suffix\u003c/code\u003e instead, which has the same behavior\nbut a more accurate name\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eFix missing \u003ccode\u003ereverse_domain_name\u003c/code\u003e property in CLI \u003ccode\u003e--json\u003c/code\u003e output (\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/a545c67d87223616fc13e90692886b3ca9af18bb\"\u003e\u003ccode\u003ea545c67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMisc.\n\u003cul\u003e\n\u003cli\u003eExpand internal \u003ccode\u003esuffix_index\u003c/code\u003e return type to be richer than bools, and\ninclude the registry suffix during trie traversal\n(\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-kurkowski\"\u003e\u003ccode\u003e@​john-kurkowski\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/john-kurkowski/tldextract/compare/5.2.0...5.3.0\"\u003ehttps://github.com/john-kurkowski/tldextract/compare/5.2.0...5.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeatures\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ereverse_domain_name\u003c/code\u003e result property (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eExtend exported public interface with \u003ccode\u003eExtractResult\u003c/code\u003e and \u003ccode\u003eupdate\u003c/code\u003e (\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/36ff658c53b510c5d56f8af235c8b08ce3c512f5\"\u003e\u003ccode\u003e36ff658\u003c/code\u003e\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eThese were always meant to be public. Eases user import.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDocs\n\u003cul\u003e\n\u003cli\u003eDocument result fields\u003c/li\u003e\n\u003c/ul\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/john-kurkowski/tldextract/blob/master/CHANGELOG.md\"\u003etldextract's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.3.1 (2025-12-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.9 (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 + PyPy 3.11 (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up IP address search space with \u003ccode\u003eisdecimal()\u003c/code\u003e instead of \u003ccode\u003eisdigit()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/352\"\u003e#352\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDocs\n\u003cul\u003e\n\u003cli\u003eReorganize, dedupe, and shorten README (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.3.0 (2025-04-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeatures\n\u003cul\u003e\n\u003cli\u003eAdd result field \u003ccode\u003eregistry_suffix\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/344\"\u003e#344\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eTo complement the existing public suffix field \u003ccode\u003esuffix\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd result property \u003ccode\u003etop_domain_under_public_suffix\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd result property \u003ccode\u003etop_domain_under_registry_suffix\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eregistered_domain\u003c/code\u003e property\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003etop_domain_under_public_suffix\u003c/code\u003e instead, which has the same behavior\nbut a more accurate name\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eFix missing \u003ccode\u003ereverse_domain_name\u003c/code\u003e property in CLI \u003ccode\u003e--json\u003c/code\u003e output (\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/a545c67d87223616fc13e90692886b3ca9af18bb\"\u003e\u003ccode\u003ea545c67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMisc.\n\u003cul\u003e\n\u003cli\u003eExpand internal \u003ccode\u003esuffix_index\u003c/code\u003e return type to be richer than bools, and\ninclude the registry suffix during trie traversal\n(\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.2.0 (2025-04-07)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeatures\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ereverse_domain_name\u003c/code\u003e result property (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eExtend exported public interface with \u003ccode\u003eExtractResult\u003c/code\u003e and \u003ccode\u003eupdate\u003c/code\u003e (\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/36ff658c53b510c5d56f8af235c8b08ce3c512f5\"\u003e\u003ccode\u003e36ff658\u003c/code\u003e\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eThese were always meant to be public. Eases user import.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDocs\n\u003cul\u003e\n\u003cli\u003eDocument result fields\u003c/li\u003e\n\u003cli\u003eNote all return values\u003c/li\u003e\n\u003cli\u003eColocate usage in the usage section\u003c/li\u003e\n\u003cli\u003eLink to private domain docs\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMisc.\n\u003cul\u003e\n\u003cli\u003eUpdate bundled snapshot\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.3 (2024-11-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eReduce logging errors (\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/921a82523c0e4403d21d50b2c3410d9af43520ac\"\u003e\u003ccode\u003e921a825\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/340\"\u003e#340\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Python 3.13 (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate bundled snapshot\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDocs\n\u003cul\u003e\n\u003cli\u003eClarify how to use your own definitions\u003c/li\u003e\n\u003c/ul\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/john-kurkowski/tldextract/commit/361f12febf901ef48215d0380551d86c7f0608ac\"\u003e\u003ccode\u003e361f12f\u003c/code\u003e\u003c/a\u003e 5.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/34482ce70cb4ca7210d39fefb57b8b1ee34bc853\"\u003e\u003ccode\u003e34482ce\u003c/code\u003e\u003c/a\u003e Upgrade to newer setuptools-scm usage instructions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/b9a78148f1551c4f3c3d441c07cafd34207030cc\"\u003e\u003ccode\u003eb9a7814\u003c/code\u003e\u003c/a\u003e Fix license field deprecations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/e397b6cdff10e89cbf66e758c8fcfa31ede2dabd\"\u003e\u003ccode\u003ee397b6c\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.9 (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/77b10ba7fca31a827fc678dbff34897663f2f611\"\u003e\u003ccode\u003e77b10ba\u003c/code\u003e\u003c/a\u003e Support Python 3.14 + PyPy 3.11 (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/49c59d9f1ff9e25fce73ba8d9cde5274f7117c2b\"\u003e\u003ccode\u003e49c59d9\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Pin requests-file during typecheck\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-kurkowski/tldextract/commit/6e49ea583c85a80e82ae5554cd615e8ee305a026\"\u003e\u003ccode\u003e6e49ea5\u003c/code\u003e\u003c/a\u003e Reorganize, dedupe, and shorten README (\u003ca href=\"https://redirect.github.com/john-kurkowski/tldextract/issues...\n\n_Description has been truncated_","html_url":"https://github.com/PrajwalJahagirdar/hydrascraper/pull/63","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrajwalJahagirdar%2Fhydrascraper/issues/63","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/63/packages"}},{"old_version":"0.22.0","new_version":"0.23.1","update_type":"minor","path":"the python-dependencies group across 1 directory","pr_created_at":"2026-04-23T01:55:39.000Z","version_change":"0.22.0 → 0.23.1","issue":{"uuid":"4312885663","node_id":"PR_kwDONc1GDc7U0Wt6","number":76,"state":"closed","title":"chore(deps): bump respx from 0.22.0 to 0.23.1 in the python-dependencies group across 1 directory","user":"dependabot[bot]","labels":["dependencies"],"assignees":["Jakan-Kink"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-27T01:16:55.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-23T01:55:39.000Z","updated_at":"2026-04-27T01:16:57.000Z","time_to_close":343276,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"respx","old_version":"0.22.0","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":"the python-dependencies group across 1 directory","ecosystem":"pip"},"body":"Bumps the python-dependencies group with 1 update in the / directory: [respx](https://github.com/lundberg/respx).\n\nUpdates `respx` from 0.22.0 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.23.0\u003c/h2\u003e\n\u003ch2\u003e0.23.0 (7th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.22.0...0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e","html_url":"https://github.com/Jakan-Kink/fansly-scraper/pull/76","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jakan-Kink%2Ffansly-scraper/issues/76","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/76/packages"}},{"old_version":"0.22.0","new_version":"0.23.1","update_type":"minor","path":null,"pr_created_at":"2026-04-20T06:31:15.000Z","version_change":"0.22.0 → 0.23.1","issue":{"uuid":"4293571694","node_id":"PR_kwDOIye5g87T1w3y","number":32,"state":"open","title":"chore(deps): bump the python-dependencies group with 14 updates","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-04-20T06:31:15.000Z","updated_at":"2026-04-20T06:32:37.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-dependencies","update_count":14,"packages":[{"name":"sqlmodel","old_version":"0.0.37","new_version":"0.0.38","repository_url":"https://github.com/fastapi/sqlmodel"},{"name":"duckdb","old_version":"1.4.4","new_version":"1.5.2","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"rich","old_version":"14.3.3","new_version":"15.0.0","repository_url":"https://github.com/Textualize/rich"},{"name":"textual","old_version":"8.0.2","new_version":"8.2.4","repository_url":"https://github.com/Textualize/textual"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"respx","old_version":"0.22.0","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [polars[database,pyarrow]](https://github.com/pola-rs/polars), [pandera[polars]](https://github.com/pandera-dev/pandera), [sqlmodel](https://github.com/fastapi/sqlmodel), [duckdb](https://github.com/duckdb/duckdb-python), [rich](https://github.com/Textualize/rich), [textual](https://github.com/Textualize/textual), [pytest](https://github.com/pytest-dev/pytest), [pytest-cov](https://github.com/pytest-dev/pytest-cov), [respx](https://github.com/lundberg/respx), [hypothesis](https://github.com/HypothesisWorks/hypothesis), [ruff](https://github.com/astral-sh/ruff), [ty](https://github.com/astral-sh/ty), [sqlfluff](https://github.com/sqlfluff/sqlfluff) and [sqlglot](https://github.com/tobymao/sqlglot) to permit the latest version.\nUpdates `polars[database,pyarrow]` to 1.40.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pola-rs/polars/releases\"\u003epolars[database,pyarrow]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePython Polars 1.40.0\u003c/h2\u003e\n\u003ch2\u003e🏆 Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd streaming support for grouped AsOf join (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27293\"\u003e#27293\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚠️ Deprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate support for dataframe interchange protocol (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27214\"\u003e#27214\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Performance improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCreate IR slice from expr slice pushdown (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27200\"\u003e#27200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd streaming support for grouped AsOf join (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27293\"\u003e#27293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid unnecessary rechunk when sorting already sorted DataFrame (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27264\"\u003e#27264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLower basic over() to streaming primitives (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27303\"\u003e#27303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLower \u003ccode\u003edrop_{nulls,nans}\u003c/code\u003e in streaming \u003ccode\u003egroup_by\u003c/code\u003e aggregations (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27296\"\u003e#27296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLower \u003ccode\u003eentropy\u003c/code\u003e to streaming reductions (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27174\"\u003e#27174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd native streaming \u003ccode\u003einterpolate\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27185\"\u003e#27185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStreaming \u003ccode\u003estrptime\u003c/code\u003e with \u003ccode\u003eformat=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27056\"\u003e#27056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLower \u003ccode\u003eskew\u003c/code\u003e / \u003ccode\u003ekurtosis\u003c/code\u003e to streaming aggregations (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27176\"\u003e#27176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePost apply pyarrow filter in Polars' engine instead of pyarrow (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27192\"\u003e#27192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003edrop_nulls().{first,last}()\u003c/code\u003e to \u003ccode\u003e{first,last}(ignore_nulls=True)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27187\"\u003e#27187\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlways process pyarrow scan in batches (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27183\"\u003e#27183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003ecut\u003c/code\u003e output \u003ccode\u003eEnum\u003c/code\u003e and mark as elementwise (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27173\"\u003e#27173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unused expression sorts (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27075\"\u003e#27075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse delta stats for mixed hive and non-hive predicate pushdown (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27102\"\u003e#27102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTake into account size per row in join sampling (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27098\"\u003e#27098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStreaming is_first_distinct and unique(maintain_order=True) (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27052\"\u003e#27052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStreaming \u003ccode\u003ecov\u003c/code\u003e and \u003ccode\u003ecorr\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27008\"\u003e#27008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd sorted unique node to streaming engine (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26990\"\u003e#26990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure Expr.append is lowered in streaming engine (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27022\"\u003e#27022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCollapse consecutive Sort nodes (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26965\"\u003e#26965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop \u003ccode\u003emaintain_order=True\u003c/code\u003e requirement in \u003ccode\u003esink_delta\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27007\"\u003e#27007\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e✨ Enhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eignore_nulls\u003c/code\u003e to \u003ccode\u003e{list,arr}.{any,all}\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27186\"\u003e#27186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLock-free memory manager with spill-to-disk and fully OOC multiplexer (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26774\"\u003e#26774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eis_unique\u003c/code\u003e to list/array dtypes (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27290\"\u003e#27290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStreaming pyarrow datasets sources (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27230\"\u003e#27230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003epl.merge_sorted\u003c/code\u003e operating on multiple frames (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27014\"\u003e#27014\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003egroup_by()\u003c/code\u003e without key exprs (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27141\"\u003e#27141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChange default scan/read_lines column name from \u0026quot;lines\u0026quot; to \u0026quot;line\u0026quot; (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27122\"\u003e#27122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake unnest() effective on all columns by default (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27029\"\u003e#27029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCollapse consecutive Sort nodes (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26965\"\u003e#26965\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003egroups\u003c/code\u003e to correct length for \u003ccode\u003eImplode\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27282\"\u003e#27282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix scan_csv missing_columns='insert' overwrote existing data with NULLs (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27297\"\u003e#27297\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/pola-rs/polars/commit/bf6a425f4ecdc53fd5d0c4b47ef4a08ca61f8d87\"\u003e\u003ccode\u003ebf6a425\u003c/code\u003e\u003c/a\u003e fix: Update \u003ccode\u003egroups\u003c/code\u003e to correct length for \u003ccode\u003eImplode\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27282\"\u003e#27282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/aeb677d8598fc3032458751b53bd04c0e1963401\"\u003e\u003ccode\u003eaeb677d\u003c/code\u003e\u003c/a\u003e test(python): Add regression test for instantiating polars DataFrame from pan...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/5fd657e420147284358e8388c389a566ae13ff38\"\u003e\u003ccode\u003e5fd657e\u003c/code\u003e\u003c/a\u003e docs: Add documentation for openlineage on-premises (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27334\"\u003e#27334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/fad784c03ada4eb23c75985eac3e254d6b5977bc\"\u003e\u003ccode\u003efad784c\u003c/code\u003e\u003c/a\u003e fix: Fix scan_csv missing_columns='insert' overwrote existing data with NULLs...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/bdf73dc7991754b7e4025a7760d3a0f7c7f2914c\"\u003e\u003ccode\u003ebdf73dc\u003c/code\u003e\u003c/a\u003e docs: Release page (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27335\"\u003e#27335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/f9dfa217361aa3ee9866a8532904d58668a6fcad\"\u003e\u003ccode\u003ef9dfa21\u003c/code\u003e\u003c/a\u003e perf: Create IR slice from expr slice pushdown (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27200\"\u003e#27200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/f81f8f8b1caef5d86d9adcf01ae18aa228dd38a1\"\u003e\u003ccode\u003ef81f8f8\u003c/code\u003e\u003c/a\u003e refactor(rust): Add generic tree traversal with edge value propagation (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27249\"\u003e#27249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/d1165c074ebfb3bc8a3a19efb21ce09cb34877e0\"\u003e\u003ccode\u003ed1165c0\u003c/code\u003e\u003c/a\u003e docs: Update uv pip install polars-on-premises cmd (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27330\"\u003e#27330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/4b216a89fc691a2ece5ca8511cc978e1aba2079f\"\u003e\u003ccode\u003e4b216a8\u003c/code\u003e\u003c/a\u003e perf: Add streaming support for grouped AsOf join (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27293\"\u003e#27293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/518b9a3f5da2403d5b20fe0feb7faa2a336eb68b\"\u003e\u003ccode\u003e518b9a3\u003c/code\u003e\u003c/a\u003e chore: Bump Python Polars version (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/27315\"\u003e#27315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pola-rs/polars/compare/py-1.38.1...py-1.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandera[polars]` to 0.31.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandera-dev/pandera/releases\"\u003epandera[polars]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix pandera[polars] import without pandas by \u003ca href=\"https://github.com/cosmicBboy\"\u003e\u003ccode\u003e@​cosmicBboy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2291\"\u003eunionai-oss/pandera#2291\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1\"\u003ehttps://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.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/unionai-oss/pandera/commit/df7cb7d8282e20cca0fc13f166bb7d99e48c5a3f\"\u003e\u003ccode\u003edf7cb7d\u003c/code\u003e\u003c/a\u003e Fix pandera[polars] import without pandas (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2291\"\u003e#2291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/1921c1d56d7436dfc4592f1be8739a25ff7accd2\"\u003e\u003ccode\u003e1921c1d\u003c/code\u003e\u003c/a\u003e Rename test functions for clarity\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/0502361a191431b9e34520330afd65141b0af164\"\u003e\u003ccode\u003e0502361\u003c/code\u003e\u003c/a\u003e test(pyspark): add str_length regressions for issues \u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/1311\"\u003e#1311\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/1314\"\u003e#1314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/7773eb8626985f33b23c398389cee6f47497d1ed\"\u003e\u003ccode\u003e7773eb8\u003c/code\u003e\u003c/a\u003e fix: support Spark Connect DataFrame in cache_check_obj decorator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/52f9805fd6055aca1f907af32c5b8d481b98f247\"\u003e\u003ccode\u003e52f9805\u003c/code\u003e\u003c/a\u003e tests(mypy): add polars Column Decimal/Struct typing regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/e61e02ce7dc0b12b1248a5f1cc3e78f1480f336e\"\u003e\u003ccode\u003ee61e02c\u003c/code\u003e\u003c/a\u003e fix(geopandas): re-export errors in module \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/3d95fc16fe85734c2a47dd749ff529be351146ac\"\u003e\u003ccode\u003e3d95fc1\u003c/code\u003e\u003c/a\u003e fix(pandas): export errors in pandera.pandas public API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/1370d6d480e018443d7ca224e6344443dbd49261\"\u003e\u003ccode\u003e1370d6d\u003c/code\u003e\u003c/a\u003e docs: fix xarray guide link in banner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/356f1a6aefee572ebc6eafe77affb89c2bf0fa5a\"\u003e\u003ccode\u003e356f1a6\u003c/code\u003e\u003c/a\u003e docs: update xarray integration info for v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/99fbb48998308542e48047332693a14281d2da0b\"\u003e\u003ccode\u003e99fbb48\u003c/code\u003e\u003c/a\u003e fix(pandas): remove deprecated applymap from parser backend (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2281\"\u003e#2281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandera-dev/pandera/compare/v0.29.0...v0.31.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlmodel` from 0.0.37 to 0.0.38\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/sqlmodel/releases\"\u003esqlmodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.38\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix type annotation in \u003ccode\u003eSQLModel.__new__\u003c/code\u003e, avoid explicitly returning \u003ccode\u003eAny\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1846\"\u003e#1846\u003c/a\u003e by \u003ca href=\"https://github.com/carljm\"\u003e\u003ccode\u003e@​carljm\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003etuple_\u003c/code\u003e return type annotation. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1639\"\u003e#1639\u003c/a\u003e by \u003ca href=\"https://github.com/kakeruzoku\"\u003e\u003ccode\u003e@​kakeruzoku\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typos in \u003ccode\u003econtributing.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1842\"\u003e#1842\u003c/a\u003e by \u003ca href=\"https://github.com/GopalGB\"\u003e\u003ccode\u003e@​GopalGB\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove outdated Python 3.9 tutorial file. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1822\"\u003e#1822\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix ambiguous phrasing regarding \u003ccode\u003eHeroPublicWithTeam\u003c/code\u003e model. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1678\"\u003e#1678\u003c/a\u003e by \u003ca href=\"https://github.com/berkaykrc\"\u003e\u003ccode\u003e@​berkaykrc\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Handle external links \u003ccode\u003etarget=_blank\u003c/code\u003e and CSS automatically in JS and CSS. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1799\"\u003e#1799\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Document \u003ccode\u003e.in_()\u003c/code\u003e method. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/619\"\u003e#619\u003c/a\u003e by \u003ca href=\"https://github.com/masylum\"\u003e\u003ccode\u003e@​masylum\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix small typos in the documentation. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1641\"\u003e#1641\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1786\"\u003e#1786\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1845\"\u003e#1845\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.135.2 to 0.135.3. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1844\"\u003e#1844\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.6 to 0.3.8. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1829\"\u003e#1829\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1827\"\u003e#1827\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.135.1 to 0.135.2. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1828\"\u003e#1828\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e➕ Add a direct dependency on \u003ccode\u003etyping-extensions\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1815\"\u003e#1815\u003c/a\u003e by \u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.5 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1825\"\u003e#1825\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.6 to 0.15.7. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1826\"\u003e#1826\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.5 to 0.3.6. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1817\"\u003e#1817\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📌 Update internal dependency limits. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1809\"\u003e#1809\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.5 to 0.15.6. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1814\"\u003e#1814\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cairosvg from 2.8.2 to 2.9.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1813\"\u003e#1813\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump dorny/paths-filter from 3 to 4. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1812\"\u003e#1812\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump black from 26.3.0 to 26.3.1. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1811\"\u003e#1811\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.4 to 9.7.5. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1808\"\u003e#1808\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.4 to 0.3.5. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1807\"\u003e#1807\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump black from 26.1.0 to 26.3.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1803\"\u003e#1803\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.4 to 0.15.5. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1801\"\u003e#1801\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.3 to 9.7.4. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1797\"\u003e#1797\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump sqlalchemy from 2.0.47 to 2.0.48. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1793\"\u003e#1793\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.3 to 0.3.4. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1794\"\u003e#1794\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.134.0 to 0.135.1. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1795\"\u003e#1795\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.133.1 to 0.134.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1792\"\u003e#1792\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.2 to 0.15.4. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1790\"\u003e#1790\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact from 7 to 8. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1789\"\u003e#1789\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 6 to 7. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1788\"\u003e#1788\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.133.0 to 0.133.1. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1787\"\u003e#1787\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.2 to 9.7.3. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1782\"\u003e#1782\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.132.0 to 0.133.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1781\"\u003e#1781\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump sqlalchemy from 2.0.46 to 2.0.47. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1783\"\u003e#1783\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 8.4.2 to 9.0.2. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1780\"\u003e#1780\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocstrings[python] from 0.30.1 to 1.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1776\"\u003e#1776\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\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/fastapi/sqlmodel/blob/main/docs/release-notes.md\"\u003esqlmodel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.38 (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix type annotation in \u003ccode\u003eSQLModel.__new__\u003c/code\u003e, avoid explicitly returning \u003ccode\u003eAny\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1846\"\u003e#1846\u003c/a\u003e by \u003ca href=\"https://github.com/carljm\"\u003e\u003ccode\u003e@​carljm\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003etuple_\u003c/code\u003e return type annotation. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1639\"\u003e#1639\u003c/a\u003e by \u003ca href=\"https://github.com/kakeruzoku\"\u003e\u003ccode\u003e@​kakeruzoku\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typos in \u003ccode\u003econtributing.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1842\"\u003e#1842\u003c/a\u003e by \u003ca href=\"https://github.com/GopalGB\"\u003e\u003ccode\u003e@​GopalGB\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove outdated Python 3.9 tutorial file. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1822\"\u003e#1822\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix ambiguous phrasing regarding \u003ccode\u003eHeroPublicWithTeam\u003c/code\u003e model. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1678\"\u003e#1678\u003c/a\u003e by \u003ca href=\"https://github.com/berkaykrc\"\u003e\u003ccode\u003e@​berkaykrc\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Handle external links \u003ccode\u003etarget=_blank\u003c/code\u003e and CSS automatically in JS and CSS. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1799\"\u003e#1799\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Document \u003ccode\u003e.in_()\u003c/code\u003e method. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/619\"\u003e#619\u003c/a\u003e by \u003ca href=\"https://github.com/masylum\"\u003e\u003ccode\u003e@​masylum\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix small typos in the documentation. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1641\"\u003e#1641\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1786\"\u003e#1786\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1845\"\u003e#1845\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.135.2 to 0.135.3. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1844\"\u003e#1844\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.6 to 0.3.8. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1829\"\u003e#1829\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1827\"\u003e#1827\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.135.1 to 0.135.2. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1828\"\u003e#1828\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e➕ Add a direct dependency on \u003ccode\u003etyping-extensions\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1815\"\u003e#1815\u003c/a\u003e by \u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.5 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1825\"\u003e#1825\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.6 to 0.15.7. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1826\"\u003e#1826\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.5 to 0.3.6. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1817\"\u003e#1817\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📌 Update internal dependency limits. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1809\"\u003e#1809\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.5 to 0.15.6. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1814\"\u003e#1814\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cairosvg from 2.8.2 to 2.9.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1813\"\u003e#1813\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump dorny/paths-filter from 3 to 4. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1812\"\u003e#1812\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump black from 26.3.0 to 26.3.1. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1811\"\u003e#1811\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.4 to 9.7.5. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1808\"\u003e#1808\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.4 to 0.3.5. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1807\"\u003e#1807\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump black from 26.1.0 to 26.3.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1803\"\u003e#1803\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.4 to 0.15.5. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1801\"\u003e#1801\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.3 to 9.7.4. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1797\"\u003e#1797\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump sqlalchemy from 2.0.47 to 2.0.48. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1793\"\u003e#1793\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.3 to 0.3.4. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1794\"\u003e#1794\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.134.0 to 0.135.1. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1795\"\u003e#1795\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.133.1 to 0.134.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1792\"\u003e#1792\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.2 to 0.15.4. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1790\"\u003e#1790\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact from 7 to 8. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1789\"\u003e#1789\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 6 to 7. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1788\"\u003e#1788\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.133.0 to 0.133.1. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1787\"\u003e#1787\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.2 to 9.7.3. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1782\"\u003e#1782\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi from 0.132.0 to 0.133.0. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1781\"\u003e#1781\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump sqlalchemy from 2.0.46 to 2.0.47. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1783\"\u003e#1783\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 8.4.2 to 9.0.2. PR \u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/pull/1780\"\u003e#1780\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\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/fastapi/sqlmodel/commit/de0ecdf63e9eae5da67f7ffc8d73577a326e30b9\"\u003e\u003ccode\u003ede0ecdf\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.0.38\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/sqlmodel/commit/8363cc764e6d3e9744b42df265071db6f0e98446\"\u003e\u003ccode\u003e8363cc7\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/sqlmodel/commit/ae672ce7caebc84098731d216c2919f483c5dce0\"\u003e\u003ccode\u003eae672ce\u003c/code\u003e\u003c/a\u003e 🔨 Add pre-commit hook to ensure latest release header has date (\u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/issues/1786\"\u003e#1786\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/sqlmodel/commit/f9e8e4c3f33f8f03c70e0dbd6f96d9fb34aa9be1\"\u003e\u003ccode\u003ef9e8e4c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/sqlmodel/commit/5da82e2d741e6ab94580395ee637721ca0cb315e\"\u003e\u003ccode\u003e5da82e2\u003c/code\u003e\u003c/a\u003e 🐛 Fix type annotation in \u003ccode\u003eSQLModel.__new__\u003c/code\u003e, avoid explicitly returning \u003ccode\u003eAny\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/sqlmodel/commit/9a44fc440020594b1c99f3b86ca958179f921dbb\"\u003e\u003ccode\u003e9a44fc4\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/sqlmodel/commit/f7e193acfb91cb020074f3d72bba9d9d745958e6\"\u003e\u003ccode\u003ef7e193a\u003c/code\u003e\u003c/a\u003e ⬆ Bump pillow from 12.1.1 to 12.2.0 (\u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/issues/1845\"\u003e#1845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/sqlmodel/commit/2df429faf73597a4fbaa6a904046c5ff14d0735d\"\u003e\u003ccode\u003e2df429f\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/sqlmodel/commit/a2474ce772705a10fda32cfde33f955572cbe45a\"\u003e\u003ccode\u003ea2474ce\u003c/code\u003e\u003c/a\u003e ⬆ Bump fastapi from 0.135.2 to 0.135.3 (\u003ca href=\"https://redirect.github.com/fastapi/sqlmodel/issues/1844\"\u003e#1844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/sqlmodel/commit/fc18b94a9a012e62f98a4e92cfb4e91bd8f9c7d2\"\u003e\u003ccode\u003efc18b94\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/sqlmodel/compare/0.0.37...0.0.38\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `duckdb` from 1.4.4 to 1.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/duckdb/duckdb-python/releases\"\u003educkdb's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.5.2 Bugfix Release\u003c/h2\u003e\n\u003cp\u003eSee the DuckDB core release notes here: \u003ca href=\"https://github.com/duckdb/duckdb/releases/tag/v1.5.2\"\u003ehttps://github.com/duckdb/duckdb/releases/tag/v1.5.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed in duckdb-python\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eType hints overhaul by \u003ca href=\"https://github.com/OutSquareCapital\"\u003e\u003ccode\u003e@​OutSquareCapital\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/352\"\u003educkdb/duckdb-python#352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache arrow schema for streaming types by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/423\"\u003educkdb/duckdb-python#423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix segfault on join with None by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/422\"\u003educkdb/duckdb-python#422\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix stubs for path_or_buffer param by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/425\"\u003educkdb/duckdb-python#425\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.5.1 Bugfix Release\u003c/h2\u003e\n\u003cp\u003eDuckDB core v1.5.1 Changelog: \u003ca href=\"https://github.com/duckdb/duckdb/compare/v1.5.0...v1.5.1\"\u003ehttps://github.com/duckdb/duckdb/compare/v1.5.0...v1.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRe-added basic support for the GEOMETRY type\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDuckDB Python 1.5.0 \u0026quot;Variegata\u0026quot;\u003c/h2\u003e\n\u003cp\u003eThis is the 1.5.0 release of DuckDB's Python bindings. For a list of changes in DuckDB core, have a look at the \u003ca href=\"https://github.com/duckdb/duckdb/releases/tag/v1.5.0\"\u003eDuckDB release notes\u003c/a\u003e and \u003ca href=\"https://duckdb.org/2026/03/09/announcing-duckdb-150.html\"\u003ethe blogpost\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDropped Python 3.9 support.\u003c/strong\u003e The minimum supported version is now Python 3.10.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemoved deprecated \u003ccode\u003educkdb.typing\u003c/code\u003e and \u003ccode\u003educkdb.functional\u003c/code\u003e modules.\u003c/strong\u003e These were deprecated in 1.4.0. Use \u003ccode\u003educkdb.sqltypes\u003c/code\u003e and \u003ccode\u003educkdb.func\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRenamed \u003ccode\u003ecolumn\u003c/code\u003e parameter to \u003ccode\u003eexpression\u003c/code\u003e\u003c/strong\u003e in relational API functions (e.g., \u003ccode\u003emin\u003c/code\u003e, \u003ccode\u003emax\u003c/code\u003e, \u003ccode\u003esum\u003c/code\u003e, \u003ccode\u003emean\u003c/code\u003e, etc.) to better reflect that these accept expressions, not just column names.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDeprecated \u003ccode\u003efetch_arrow_table()\u003c/code\u003e and \u003ccode\u003efetch_record_batch()\u003c/code\u003e\u003c/strong\u003e on connections and relations. Use the new \u003ccode\u003eto_arrow_table()\u003c/code\u003e and \u003ccode\u003eto_arrow_reader()\u003c/code\u003e methods instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePolars LazyFrame projection and filter pushdown.\u003c/strong\u003e DuckDB can now push down projections and filters when scanning Polars LazyFrames, including support for cast nodes and unstrict casts.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePolars Int128 / UInt128 support.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eVARIANT type support\u003c/strong\u003e — Python conversion, NumPy array wrapping, and type stubs.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTIME_NS type support\u003c/strong\u003e — nanosecond-precision time values across Python, NumPy, and Spark type systems.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eProfiling API\u003c/strong\u003e — new \u003ccode\u003eget_profiling_info()\u003c/code\u003e and \u003ccode\u003eget_profiling_json()\u003c/code\u003e methods on connections, plus a refactored \u003ccode\u003equery_graph\u003c/code\u003e module with improved HTML visualization (dark mode, expandable phases, depth).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eto_arrow_table()\u003c/code\u003e and \u003ccode\u003eto_arrow_reader()\u003c/code\u003e\u003c/strong\u003e — new methods on connections and relations as the preferred Arrow export API.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e__arrow_c_stream__\u003c/code\u003e on relations\u003c/strong\u003e — relations now export via the Arrow PyCapsule interface using \u003ccode\u003ePhysicalArrowCollector\u003c/code\u003e for zero-copy streaming.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUnified Arrow stream scanning\u003c/strong\u003e via \u003ccode\u003e__arrow_c_stream__\u003c/code\u003e, with filter pushdown only when pyarrow is present.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eArrow schema caching\u003c/strong\u003e to avoid repeated lookups during scanning.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eArrow object type caching\u003c/strong\u003e to avoid repeated detection.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEmpty params treated as None for \u003ccode\u003e.sql()\u003c/code\u003e\u003c/strong\u003e — avoids unnecessary parameter binding overhead.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSimplified GIL management\u003c/strong\u003e for \u003ccode\u003eFetchRow\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed Python object leak in scalar UDFs\u003c/strong\u003e — \u003ccode\u003ePyObject_CallObject\u003c/code\u003e return values are now properly stolen to avoid reference count leaks.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed reference cycle\u003c/strong\u003e between connections and relations that could prevent garbage collection.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRelations now hold a reference to their connection\u003c/strong\u003e, preventing premature connection closure.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed fsspec race condition\u003c/strong\u003e in the Python filesystem implementation.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed numeric conversion logic\u003c/strong\u003e — improved handling of large integers (fallback to VARCHAR) and UNION types.\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/duckdb/duckdb-python/commit/2aea44eeae35b9c77dc2ff672634034a75c9bb16\"\u003e\u003ccode\u003e2aea44e\u003c/code\u003e\u003c/a\u003e pin submodule at release hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/3aa2bf2022b91dc9a96c3f91c8bb1fb0296586ef\"\u003e\u003ccode\u003e3aa2bf2\u003c/code\u003e\u003c/a\u003e Fix stubs for path_or_buffer param (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/018fe057d5a003355deb4213a894af559a947aa7\"\u003e\u003ccode\u003e018fe05\u003c/code\u003e\u003c/a\u003e Fix stubs for path_or_buffer param\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/0ef05d69fc8a123cf532f3ffb3e088212bbbfaf7\"\u003e\u003ccode\u003e0ef05d6\u003c/code\u003e\u003c/a\u003e Fix segfault on join with None (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/4acb9f71e00c5002d3ab3aba78a172df8f7ebbc4\"\u003e\u003ccode\u003e4acb9f7\u003c/code\u003e\u003c/a\u003e Fix segfault on join\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/6f161de62403c209633fcbd52c6c0403dadef7da\"\u003e\u003ccode\u003e6f161de\u003c/code\u003e\u003c/a\u003e Cache arrow schema for streaming types (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/423\"\u003e#423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/87d6a319674c5e2fb855e140bf539e997e978a2e\"\u003e\u003ccode\u003e87d6a31\u003c/code\u003e\u003c/a\u003e Add CLAUDE.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/ae356cb03926372b9cd3736f39662efd25bb4915\"\u003e\u003ccode\u003eae356cb\u003c/code\u003e\u003c/a\u003e Cache the arrow schema for streams so we don't need an active client context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/b71639f215d29c4f8b1c53cb3d7cf45603f4c5d2\"\u003e\u003ccode\u003eb71639f\u003c/code\u003e\u003c/a\u003e Test that client context stays open on arrow streams\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/305d11457efd4ca0767cad0868b16310b04160a7\"\u003e\u003ccode\u003e305d114\u003c/code\u003e\u003c/a\u003e fix spark test (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/duckdb/duckdb-python/compare/v1.4.4...v1.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rich` from 14.3.3 to 15.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/releases\"\u003erich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe So Long 3.8 Release\u003c/h2\u003e\n\u003cp\u003eA few fixes. The major version bump is to honor the passing of 3.8 support which reached its EOL in October 7, 2024\u003c/p\u003e\n\u003ch2\u003e[15.0.0] - 2026-04-12\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBreaking change: Dropped support for Python3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed empty print ignoring the \u003ccode\u003eend\u003c/code\u003e parameter \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4075\"\u003eTextualize/rich#4075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eText.from_ansi\u003c/code\u003e removing newlines \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4076\"\u003eTextualize/rich#4076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eFileProxy.isatty\u003c/code\u003e not proxying \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4077\"\u003eTextualize/rich#4077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed inline code in Markdown tables cells \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4079\"\u003eTextualize/rich#4079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Faster Startup Release\u003c/h2\u003e\n\u003cp\u003eNo new features in this release, but there should be improved startup time for Rich apps, and potentially improved runtime if you have a lot of links.\u003c/p\u003e\n\u003ch2\u003e[14.3.4] - 2026-04-11\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved import time with lazy loading \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4070\"\u003eTextualize/rich#4070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged link id generation to avoid random number generation at runtime \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3845\"\u003eTextualize/rich#3845\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/Textualize/rich/blob/master/CHANGELOG.md\"\u003erich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[15.0.0] - 2026-04-12\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBreaking change: Dropped support for Python3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed empty print ignoring the \u003ccode\u003eend\u003c/code\u003e parameter \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4075\"\u003eTextualize/rich#4075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eText.from_ansi\u003c/code\u003e removing newlines \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4076\"\u003eTextualize/rich#4076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eFileProxy.isatty\u003c/code\u003e not proxying \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4077\"\u003eTextualize/rich#4077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed inline code in Markdown tables cells \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4079\"\u003eTextualize/rich#4079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[14.3.4] - 2026-04-11\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved import time with lazy loading \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4070\"\u003eTextualize/rich#4070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged link id generation to avoid random number generation at runtime \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3845\"\u003eTextualize/rich#3845\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/Textualize/rich/commit/6ac483cbea39cab124dfd3483bba70ffafb71050\"\u003e\u003ccode\u003e6ac483c\u003c/code\u003e\u003c/a\u003e correction\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/458a9109c8b7da81c17b2270ea8a88f3e8c0465a\"\u003e\u003ccode\u003e458a910\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4080\"\u003e#4080\u003c/a\u003e from Textualize/bump1500\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/82e06e0d9985fd8cce456dc3977e0d2d9e84b4d8\"\u003e\u003ccode\u003e82e06e0\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/d6556bc44881b9904f29f5d9d69a0812b30675d1\"\u003e\u003ccode\u003ed6556bc\u003c/code\u003e\u003c/a\u003e bump to 15.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/ffe2edc5968eac19d5493c2d7b27965031a692e9\"\u003e\u003ccode\u003effe2edc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4079\"\u003e#4079\u003c/a\u003e from Textualize/inline-table-code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/cf3b5a16f7a76b2e8c4921d3314021bb72a6c5c1\"\u003e\u003ccode\u003ecf3b5a1\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/77f0edbdef71f2a895cd0ab1481e9a1fc79d42e6\"\u003e\u003ccode\u003e77f0edb\u003c/code\u003e\u003c/a\u003e remove comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/7ef2d05ca8aa3cb405dab2fdf3282e69cf8089e3\"\u003e\u003ccode\u003e7ef2d05\u003c/code\u003e\u003c/a\u003e fix inline code in table cells\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/19c67b9a3479841e9133bea94607c89ee931d3fc\"\u003e\u003ccode\u003e19c67b9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4077\"\u003e#4077\u003c/a\u003e from Textualize/isattry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/494b795031782c694297d2db78bd04fb8c82f590\"\u003e\u003ccode\u003e494b795\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/rich/compare/v14.3.3...v15.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `textual` from 8.0.2 to 8.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/textual/releases\"\u003etextual's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe small potatoes Release\u003c/h2\u003e\n\u003cp\u003eSmall potatoes update, to fix a glitch with anchor.\u003c/p\u003e\n\u003ch2\u003e[8.2.4] - 2026-04-19\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eDOM.update_classes\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6478\"\u003eTextualize/textual#6478\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed anchor released when scrolling down with the trackpad \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6503\"\u003eTextualize/textual#6503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe snappier resize Release\u003c/h2\u003e\n\u003ch2\u003e[8.2.3] - 2026-04-05\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce lag when resizing window, by moving resize from idle to a timer \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6471\"\u003eTextualize/textual#6471\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Faster Resize Release\u003c/h2\u003e\n\u003cp\u003eFixed an issue where styles were being unneccesarily updated when resizing. Textual apps will now adapt to changes in the terminal size much more quickly.\u003c/p\u003e\n\u003ch2\u003e[8.2.2] - 2026-04-03\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Pointless style updates when resizing \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6464\"\u003eTextualize/textual#6464\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Hot Select Release\u003c/h2\u003e\n\u003cp\u003eFixes a crash when a selected widget is removed while selecting\u003c/p\u003e\n\u003ch2\u003e[8.2.1] - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash when a widget disapears between selections \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6455\"\u003eTextualize/textual#6455\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Select Release\u003c/h2\u003e\n\u003cp\u003eThis release enhances text selection, with auto-scrolling, and the ability to select across container widgets.\u003c/p\u003e\n\u003cp\u003eThis work was sponsored by Mistral AI.\u003c/p\u003e\n\u003ch2\u003e[8.2.0] - 2026-03-27\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAuto-scrolling on select \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSelecting over containers \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eApp.ENABLE_SELECT_AUTO_SCROLL\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_LINES\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_SPEED\u003c/code\u003e to tweak auto scrolling behavior \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\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/Textualize/textual/blob/main/CHANGELOG.md\"\u003etextual's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[8.2.4] - 2026-04-19\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eDOM.update_classes\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6478\"\u003eTextualize/textual#6478\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed anchor released when scrolling down with the trackpad \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6503\"\u003eTextualize/textual#6503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.3] - 2026-04-05\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce lag when resizing window, by moving resize from idle to a timer \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6471\"\u003eTextualize/textual#6471\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.2] - 2026-04-03\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Pointless style updates when resizing \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6464\"\u003eTextualize/textual#6464\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.1] - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash when a widget disapears between selections \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6455\"\u003eTextualize/textual#6455\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.0] - 2026-03-27\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAuto-scrolling on select \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSelecting over containers \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eApp.ENABLE_SELECT_AUTO_SCROLL\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_LINES\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_SPEED\u003c/code\u003e to tweak auto scrolling behavior \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.1.1] - 2026-03-10\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHotfix for animation on complete \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6412\"\u003eTextualize/textual#6412\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.1.0] - 2026-03-10\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplace circuar references in DOM with weak references to improve GC times \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6410\"\u003eTextualize/textual#6410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen animating an attribute a second time, the original \u003ccode\u003eon_complete\u003c/code\u003e is now called \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6410\"\u003eTextualize/textual#6410\u003c/a\u003e\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/Textualize/textual/commit/49a24d67a66b553ef2dede0674232a4704f5b4d8\"\u003e\u003ccode\u003e49a24d6\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/2a84efdda39e996a5bd698b510b87e7f90590996\"\u003e\u003ccode\u003e2a84efd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6503\"\u003e#6503\u003c/a\u003e from Textualize/anchor-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/c9a49755a45497f0b604a42a477e47fe162c5cb7\"\u003e\u003ccode\u003ec9a4975\u003c/code\u003e\u003c/a\u003e fix anchor release on trackpad\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/f8b42bd7a93578338f1b3668a1dc83f79e344fe8\"\u003e\u003ccode\u003ef8b42bd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6495\"\u003e#6495\u003c/a\u003e from Rohan5commit/docs-input-messages-20260417\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/697d0ffe41ce314b07835fcf00d5e841430d7ce9\"\u003e\u003ccode\u003e697d0ff\u003c/code\u003e\u003c/a\u003e docs: fix input validation typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/759e66f8218b422ec76b35d0c8454eb5eb6291b1\"\u003e\u003ccode\u003e759e66f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6478\"\u003e#6478\u003c/a\u003e from Textualize/update-classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/3a3a76cd5754d44155c8ea6f6684d15837177c8c\"\u003e\u003ccode\u003e3a3a76c\u003c/code\u003e\u003c/a\u003e Added update flag\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/91c86a14ca523817b8e56f8b928cbf1a706f1123\"\u003e\u003ccode\u003e91c86a1\u003c/code\u003e\u003c/a\u003e Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/27623a95efb5454fad63158858a4528e6c185fc5\"\u003e\u003ccode\u003e27623a9\u003c/code\u003e\u003c/a\u003e name change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/3decce56d9f5c157e641c5be5f59d00450effbd7\"\u003e\u003ccode\u003e3decce5\u003c/code\u003e\u003c/a\u003e leaner with sets\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/textual/compare/v8.0.2...v8.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\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/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\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/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `respx` from 0.22.0 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.23.0\u003c/h2\u003e\n\u003ch2\u003e0.23.0 (7th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#...\n\n_Description has been truncated_","html_url":"https://github.com/wyattowalsh/nbadb/pull/32","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/wyattowalsh%2Fnbadb/issues/32","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/32/packages"}},{"old_version":"0.22.0","new_version":"0.23.1","update_type":"minor","path":null,"pr_created_at":"2026-04-17T04:40:14.000Z","version_change":"0.22.0 → 0.23.1","issue":{"uuid":"4280152637","node_id":"PR_kwDORPNgGM7TMEWA","number":39,"state":"closed","title":"chore(deps): bump the dependencies group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-24T04:41:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-17T04:40:14.000Z","updated_at":"2026-04-24T04:41:46.000Z","time_to_close":604891,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"dependencies","update_count":7,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.1","repository_url":"https://github.com/pydantic/pydantic"},{"name":"cryptography","old_version":"46.0.6","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"platformdirs","old_version":"4.9.4","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"respx","old_version":"0.22.0","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"},{"name":"ruff","old_version":"0.15.8","new_version":"0.15.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"basedpyright","old_version":"1.38.4","new_version":"1.39.2","repository_url":"https://github.com/detachhead/basedpyright"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.6` | `46.0.7` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.4` | `4.9.6` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [respx](https://github.com/lundberg/respx) | `0.22.0` | `0.23.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.8` | `0.15.11` |\n| [basedpyright](https://github.com/detachhead/basedpyright) | `1.38.4` | `1.39.2` |\n\n\nUpdates `pydantic` from 2.12.5 to 2.13.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0b3 2026-03-31\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\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/pydantic/pydantic/blob/v2.13.1/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0b3 (2026-03-31)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0b3\"\u003eGitHub release\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/17a35e371bdff348c0690651d324c91fc7c9ff9e\"\u003e\u003ccode\u003e17a35e3\u003c/code\u003e\u003c/a\u003e Update jiter to v0.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13064\"\u003e#13064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/feea402b23fa23774669908c4e08a61ba1e4238e\"\u003e\u003ccode\u003efeea402\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003esimulation\u003c/code\u003e mode in Codspeed CI (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13063\"\u003e#13063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/671c9b0d4d3f9b2f1b95ca32ac85cb69e824e0bc\"\u003e\u003ccode\u003e671c9b0\u003c/code\u003e\u003c/a\u003e Add basic benchmarks for model equality (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13061\"\u003e#13061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d17d71e00a35f190b27321aa6f8f2a03139c00b8\"\u003e\u003ccode\u003ed17d71e\u003c/code\u003e\u003c/a\u003e Bump cryptography from 46.0.6 to 46.0.7 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13056\"\u003e#13056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/919d61ac419af5151b673a90b65c9a12631091cf\"\u003e\u003ccode\u003e919d61a\u003c/code\u003e\u003c/a\u003e 👥 Update Pydantic People (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13059\"\u003e#13059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 46.0.6 to 46.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.7 - 2026-04-07\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed an issue where non-contiguous buffers could be\n  passed to APIs that accept Python buffers, which could lead to buffer\n  overflow. **CVE-2026-39892**\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.6.\n\u003cp\u003e.. _v46-0-6:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\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/pyca/cryptography/commit/622d672e429a7cff836a23c5903683dbec1901f5\"\u003e\u003ccode\u003e622d672\u003c/code\u003e\u003c/a\u003e 46.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14602\"\u003e#14602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.6...46.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.9.4 to 4.9.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.9.6\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(release): use double quotes for tag variable expansion by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/477\"\u003etox-dev/platformdirs#477\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.9.5...4.9.6\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.9.5...4.9.6\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/tox-dev/platformdirs/blob/main/docs/changelog.rst\"\u003eplatformdirs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.6 (2026-04-09)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(release): use double quotes for tag variable expansion :pr:\u003ccode\u003e477\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.5 (2026-04-06)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs(appauthor): clarify None vs False on Windows :pr:\u003ccode\u003e476\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSeparates implementations of macOS dirs that share a default :pr:\u003ccode\u003e473\u003c/code\u003e - by :user:\u003ccode\u003eGoddesen\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove persist-credentials: false from release job :pr:\u003ccode\u003e472\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003efix: do not duplicate site dirs in Unix.iter_{config,site}_dirs() when use_site_for_root is active :pr:\u003ccode\u003e469\u003c/code\u003e - by\n:user:\u003ccode\u003eviccie30\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔧 fix(type): resolve ty 0.0.25 type errors :pr:\u003ccode\u003e468\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔒 ci(workflows): add zizmor security auditing :pr:\u003ccode\u003e467\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(release): generate docstrfmt-compatible changelog entries :pr:\u003ccode\u003e463\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.4 (2026-03-05)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e461\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README.md\u003c/li\u003e\n\u003cli\u003e📝 docs: add project logo to documentation :pr:\u003ccode\u003e459\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStandardize .github files to .yaml suffix\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump the all group with 2 updates :pr:\u003ccode\u003e457\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMove SECURITY.md to .github/SECURITY.md\u003c/li\u003e\n\u003cli\u003eAdd permissions to workflows :pr:\u003ccode\u003e455\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd security policy\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e454\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.2 (2026-02-16)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: restructure following Diataxis framework :pr:\u003ccode\u003e448\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs(platforms): fix RST formatting and TOC hierarchy :pr:\u003ccode\u003e447\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.1 (2026-02-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: enhance README, fix issues, and reorganize platforms.rst :pr:\u003ccode\u003e445\u003c/code\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/tox-dev/platformdirs/commit/56efd776d68a94898b319c108933d0cfbff813af\"\u003e\u003ccode\u003e56efd77\u003c/code\u003e\u003c/a\u003e Release 4.9.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/d5d812a02102c633a39f3dfdddbc6bb1670b13ae\"\u003e\u003ccode\u003ed5d812a\u003c/code\u003e\u003c/a\u003e 🐛 fix(release): use double quotes for tag variable expansion (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/c2b0cee3a8261b3a75b283b9ef148d2425d48d35\"\u003e\u003ccode\u003ec2b0cee\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 in the al...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/7688069a09e03bb4e97fe0f9cf3aebedc8a6f7f9\"\u003e\u003ccode\u003e7688069\u003c/code\u003e\u003c/a\u003e Release 4.9.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/104d28b48c59b327a7832b23509187eef2764af8\"\u003e\u003ccode\u003e104d28b\u003c/code\u003e\u003c/a\u003e 📝 docs(appauthor): clarify None vs False on Windows (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/0955048684241725bb2eae8a2ba5bc7f7f46c9a0\"\u003e\u003ccode\u003e0955048\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/475\"\u003e#475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/bd3c76602f88284eb832c7f5297c354ea7ac5906\"\u003e\u003ccode\u003ebd3c766\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 7.6.0 to 8.0.0 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/749ac3f33ffc5af04fb8bb046bbbcc4d5aa562c9\"\u003e\u003ccode\u003e749ac3f\u003c/code\u003e\u003c/a\u003e Separates implementations of macOS dirs that share a default (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/473\"\u003e#473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/cb8815684f15c58ad1b87c8b1d34f9bf2d79780e\"\u003e\u003ccode\u003ecb88156\u003c/code\u003e\u003c/a\u003e Remove persist-credentials: false from release job (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/472\"\u003e#472\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a501eabd7dd0e56116c38fa9dba15f3c0b60010a\"\u003e\u003ccode\u003ea501eab\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/470\"\u003e#470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.9.4...4.9.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\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/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `respx` from 0.22.0 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.23.0\u003c/h2\u003e\n\u003ch2\u003e0.23.0 (7th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions, by\ndoing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.22.0...0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.8 to 0.15.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.11\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.15.11\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz\"\u003eruff-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz\"\u003eruff-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip\"\u003eruff-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip\"\u003eruff-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\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/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\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/astral-sh/ruff/commit/53554b1cfe837f2eb992a81794480699478f1116\"\u003e\u003ccode\u003e53554b1\u003c/code\u003e\u003c/a\u003e Bump 0.15.11 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24678\"\u003e#24678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/08c56c83cffbb1025cbf5bdede6c6d8be591cf47\"\u003e\u003ccode\u003e08c56c8\u003c/code\u003e\u003c/a\u003e Factor out the \u003ccode\u003emdtest\u003c/code\u003e crate (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24616\"\u003e#24616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/725fbb736d2a999971449b61190b914abd26102a\"\u003e\u003ccode\u003e725fbb7\u003c/code\u003e\u003c/a\u003e [ty] Use partially qualified names when reporting diagnostics regarding bad c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ddd6a30ff5fa27694dc1c50d0749885a1519d0a7\"\u003e\u003ccode\u003eddd6a30\u003c/code\u003e\u003c/a\u003e [ty] Do not suggest argument completion when at value of keyword argument (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9282e61d482a36da08d66bb8271afeef50b3bc45\"\u003e\u003ccode\u003e9282e61\u003c/code\u003e\u003c/a\u003e Disallow \u003ca href=\"https://github.com/disjoint\"\u003e\u003ccode\u003e@​disjoint\u003c/code\u003e\u003c/a\u003e_base on TypedDicts and Protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24671\"\u003e#24671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9986d8e3008eefe2e387312c4dc8b9c60f6f362\"\u003e\u003ccode\u003ee9986d8\u003c/code\u003e\u003c/a\u003e [ty] Reject using properties with \u003ccode\u003eNever\u003c/code\u003e setters or deleters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24510\"\u003e#24510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9cf212ff82f7b66b4a275ad6a9b1564aee1fa4a8\"\u003e\u003ccode\u003e9cf212f\u003c/code\u003e\u003c/a\u003e [ty] Normalize property setter and deleter wrappers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24509\"\u003e#24509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/12a1589de4d7120cf99441ee4c14871bdc20968d\"\u003e\u003ccode\u003e12a1589\u003c/code\u003e\u003c/a\u003e Add override mention to ASYNC109 docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dccb03d010f4442ed60624f8d2ba932706abaabb\"\u003e\u003ccode\u003edccb03d\u003c/code\u003e\u003c/a\u003e [ty] Avoid panicking on overloaded \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24661\"\u003e#24661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/61f9a0a5763fb068cd2f26c0ee9d63a277fb26c2\"\u003e\u003ccode\u003e61f9a0a\u003c/code\u003e\u003c/a\u003e [ty] Sync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24646\"\u003e#24646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.8...0.15.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `basedpyright` from 1.38.4 to 1.39.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/ceb200c192bb53629b4c62fdc082ec27b108f316\"\u003e\u003ccode\u003eceb200c\u003c/code\u003e\u003c/a\u003e 1.39.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/eb7a92cacd2697acb4e36e2f3147333588c88fa7\"\u003e\u003ccode\u003eeb7a92c\u003c/code\u003e\u003c/a\u003e try to fix browser-basedpyright being published with nothing in it\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/dec5306e9aabbce3f9b1b9ec283981d92dd43d80\"\u003e\u003ccode\u003edec5306\u003c/code\u003e\u003c/a\u003e update package-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/6db43de5dda601e3cd83998c669c4ecbbfde26f6\"\u003e\u003ccode\u003e6db43de\u003c/code\u003e\u003c/a\u003e 1.39.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/335e48619fa223fe3be0b6560d746a10934509c8\"\u003e\u003ccode\u003e335e486\u003c/code\u003e\u003c/a\u003e fix failing tests from merge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/bbe71b686e84ebbff7699d35dab3376d411bb99d\"\u003e\u003ccode\u003ebbe71b6\u003c/code\u003e\u003c/a\u003e delete newly added github action from upstream that we don't use\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/8f2261891e8ceb278963e84658ebaf054b88e559\"\u003e\u003ccode\u003e8f22618\u003c/code\u003e\u003c/a\u003e update prettierignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/ff1f5a4af835b14927545c8890b303f48553acac\"\u003e\u003ccode\u003eff1f5a4\u003c/code\u003e\u003c/a\u003e fix compile errors from merge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/f2f217469b0b59e77c49e8a92be3e8fe1c0e5146\"\u003e\u003ccode\u003ef2f2174\u003c/code\u003e\u003c/a\u003e Merge tag '1.1.409' into merge-1.1.409\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/63998f4d0720a86447f4c4a04716e34f3e703660\"\u003e\u003ccode\u003e63998f4\u003c/code\u003e\u003c/a\u003e Publish 1.1.409\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/detachhead/basedpyright/compare/v1.38.4...v1.39.2\"\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 \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/holdjun/kmoe/pull/39","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/holdjun%2Fkmoe/issues/39","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/39/packages"}},{"old_version":"0.22.0","new_version":"0.23.1","update_type":"minor","path":null,"pr_created_at":"2026-04-13T16:15:47.000Z","version_change":"0.22.0 → 0.23.1","issue":{"uuid":"4256319830","node_id":"PR_kwDOOl2Wg87SCrgz","number":182,"state":"closed","title":"chore(deps-dev): bump respx from 0.22.0 to 0.23.1","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-16T02:05:31.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T16:15:47.000Z","updated_at":"2026-04-16T02:05:32.000Z","time_to_close":208184,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"respx","old_version":"0.22.0","new_version":"0.23.1","repository_url":"https://github.com/lundberg/respx"}],"path":null,"ecosystem":"pip"},"body":"Bumps [respx](https://github.com/lundberg/respx) from 0.22.0 to 0.23.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lundberg/respx/releases\"\u003erespx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.23.1\u003c/h2\u003e\n\u003ch2\u003e0.23.1 (8th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.23.0\u003c/h2\u003e\n\u003ch2\u003e0.23.0 (7th April 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/blob/master/CHANGELOG.md\"\u003erespx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.23.1] - 2026-04-08\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression causing \u003ccode\u003eparams\u003c/code\u003e pattern to stop working under some conditions,\nby doing a strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate workflows actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.23.0] - 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edata\u003c/code\u003e pattern with list value (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix and enhance incorrect documentations about iterable side effects (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation typo, thanks \u003ca href=\"https://github.com/markhobson\"\u003e\u003ccode\u003e@​markhobson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix support for multiple slashes \u003ccode\u003e//\u003c/code\u003e in URL path by not using \u003ccode\u003eurljoin\u003c/code\u003e when\nprepending path, thanks \u003ca href=\"https://github.com/lewiscollard\"\u003e\u003ccode\u003e@​lewiscollard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Skeen\"\u003e\u003ccode\u003e@​Skeen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/302\"\u003e#302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType Route.respond json as \u003ccode\u003eAny\u003c/code\u003e to align with HTTPX, thanks \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly handle \u003ccode\u003eANY\u003c/code\u003e in \u003ccode\u003eMuitiItems\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix test warnings (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 to test matrix, thanks \u003ca href=\"https://github.com/carlosdorneles-mb\"\u003e\u003ccode\u003e@​carlosdorneles-mb\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate nix flake, mypy target and workflows (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\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/lundberg/respx/commit/fc8b43bc74a69d07a6bdccf61522069b12bb8fad\"\u003e\u003ccode\u003efc8b43b\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/1da5d2ff487122de3648efd4ad8d33ae9a1a5393\"\u003e\u003ccode\u003e1da5d2f\u003c/code\u003e\u003c/a\u003e Strict detection of \u003ccode\u003eANY\u003c/code\u003e in multi items patterns (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/6f1bf70576eb7a024272c82cd84fb523d50fe9e9\"\u003e\u003ccode\u003e6f1bf70\u003c/code\u003e\u003c/a\u003e Bump checkout and python actions (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/310\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/62aaeabf2d55c9dcafa74ec086885850194e0dda\"\u003e\u003ccode\u003e62aaeab\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e0.23.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/d8edf3db92c4e6830301a4f4e51fe56b743e0ed9\"\u003e\u003ccode\u003ed8edf3d\u003c/code\u003e\u003c/a\u003e Adjust badges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/b3a193d3a443472c9f0241599f02d89f4a3f33f9\"\u003e\u003ccode\u003eb3a193d\u003c/code\u003e\u003c/a\u003e Add downloads badge to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/9961e9b79641635f3c891d8ded5c7e5aa3d8f049\"\u003e\u003ccode\u003e9961e9b\u003c/code\u003e\u003c/a\u003e Handle multiple routes using \u003ccode\u003eMuitiItems\u003c/code\u003e pattern with \u003ccode\u003eANY\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/e51c2a6ffad066c78dedb0fc0e2fa27257f686f2\"\u003e\u003ccode\u003ee51c2a6\u003c/code\u003e\u003c/a\u003e Update Route.respond json type hint to Any to match HTTPX (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/a499260e28520ad6f19b06539f3321aa67f3f3b3\"\u003e\u003ccode\u003ea499260\u003c/code\u003e\u003c/a\u003e Bump less-action/reusables from 8 to 10 (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lundberg/respx/commit/7b44b512c8e44db460bbafaddb382444660c55f4\"\u003e\u003ccode\u003e7b44b51\u003c/code\u003e\u003c/a\u003e Update nix flake and mypy target (\u003ca href=\"https://redirect.github.com/lundberg/respx/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lundberg/respx/compare/0.22.0...0.23.1\"\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=respx\u0026package-manager=uv\u0026previous-version=0.22.0\u0026new-version=0.23.1)](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/thurstonsand/anypod/pull/182","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/thurstonsand%2Fanypod/issues/182","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/182/packages"}}]}