{"id":15216,"name":"sqlalchemy-utils","ecosystem":"pip","repository_url":"https://github.com/kvesteri/sqlalchemy-utils","issues_count":50,"created_at":"2025-06-06T23:57:39.685Z","updated_at":"2025-06-06T23:57:39.685Z","purl":"pkg:pypi/sqlalchemy-utils","metadata":{"id":2930295,"name":"sqlalchemy-utils","ecosystem":"pypi","description":"Various utility functions for SQLAlchemy.","homepage":"https://github.com/kvesteri/sqlalchemy-utils","licenses":"BSD","normalized_licenses":["BSD-3-Clause"],"repository_url":"https://github.com/kvesteri/sqlalchemy-utils","keywords_array":[],"namespace":null,"versions_count":215,"first_release_published_at":"2013-03-01T13:33:20.000Z","latest_release_published_at":"2024-03-24T15:17:24.000Z","latest_release_number":"0.41.2","last_synced_at":"2025-06-06T03:30:58.739Z","created_at":"2022-04-10T12:42:05.238Z","updated_at":"2025-06-06T03:30:58.739Z","registry_url":"https://pypi.org/project/sqlalchemy-utils/","install_command":"pip install sqlalchemy-utils --index-url https://pypi.org/simple","documentation_url":"https://sqlalchemy-utils.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Environment :: Web Environment","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.7","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Topic :: Internet :: WWW/HTTP :: Dynamic Content","Topic :: Software Development :: Libraries :: Python Modules"],"normalized_name":"sqlalchemy-utils"},"repo_metadata":{"id":7005500,"uuid":"8272640","full_name":"kvesteri/sqlalchemy-utils","owner":"kvesteri","description":"Various utility functions and datatypes for SQLAlchemy.","archived":false,"fork":false,"pushed_at":"2024-05-17T15:39:23.000Z","size":1991,"stargazers_count":1247,"open_issues_count":205,"forks_count":317,"subscribers_count":33,"default_branch":"master","last_synced_at":"2024-08-30T10:02:27.915Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kvesteri.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.rst","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-02-18T16:48:22.000Z","updated_at":"2024-08-28T02:58:34.000Z","dependencies_parsed_at":"2024-06-05T18:57:56.469Z","dependency_job_id":"348f596d-892a-4726-8745-b37ade179586","html_url":"https://github.com/kvesteri/sqlalchemy-utils","commit_stats":{"total_commits":1191,"total_committers":121,"mean_commits":9.84297520661157,"dds":0.272879932829555,"last_synced_commit":"28aa8ade377d7de6f2a3b87048e9e0fa4c2cf36a"},"previous_names":[],"tags_count":95,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kvesteri","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":217590636,"owners_count":16201384,"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":"kvesteri","name":"Konsta Vesterinen","uuid":"398714","kind":"user","description":null,"email":"","website":"www.fastmonkeys.com","location":"Espoo, Finland","twitter":null,"company":"Fast Monkeys Ltd","icon_url":"https://avatars.githubusercontent.com/u/398714?v=4","repositories_count":39,"last_synced_at":"2023-03-22T16:27:23.824Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kvesteri","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-03T10:49:31.632Z","updated_at":"2023-03-22T16:27:24.304Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kvesteri","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kvesteri/repositories"},"tags":[{"name":"0.42.2","sha":"02045c4b24b0767617eea4202a4c570842fe9991","kind":"commit","published_at":"2024-03-22T15:16:53.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.42.2","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.42.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.42.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.42.2/manifests"},{"name":"0.41.1","sha":"fd94d17621b8e741b8c7353b700c19a4f38c7015","kind":"commit","published_at":"2023-04-27T11:28:21.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.41.1","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.41.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.41.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.41.1/manifests"},{"name":"0.41.0","sha":"eb3b9e052dcc4a40cf1a89ebba74ec77475017ec","kind":"tag","published_at":"2023-04-13T10:37:39.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.41.0","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.41.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.41.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.41.0/manifests"},{"name":"0.40.0","sha":"0c158eb9d05297dd4538083aee5f3ba0d72653e9","kind":"commit","published_at":"2023-02-12T12:48:16.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.40.0","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.40.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.40.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.40.0/manifests"},{"name":"0.39.0","sha":"c16267935a843c7a1f1d19f068bef2b83c85a483","kind":"tag","published_at":"2022-12-23T15:09:38.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.39.0","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.39.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.39.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.39.0/manifests"},{"name":"0.29.6","sha":"1ced0eac57e9ecf7aae83690aee6d0a81bb55cc7","kind":"tag","published_at":"2022-07-11T23:58:14.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.29.6","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.29.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.6/manifests"},{"name":"0.38.3","sha":"c402cc7d6a209a7212f9ac89b002f12f885ac753","kind":"commit","published_at":"2022-07-11T07:31:28.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.38.3","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.38.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.38.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.38.3/manifests"},{"name":"0.38.2","sha":"be3ae16c39f58657b45feafd226a88b3e681ad76","kind":"commit","published_at":"2021-12-29T08:48:37.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.38.2","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.38.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.38.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.38.2/manifests"},{"name":"0.38.1","sha":"a67bc8e9bf9a4517ef0d609ad3456d3bcd1cf992","kind":"commit","published_at":"2021-12-21T13:07:03.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.38.1","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.38.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.38.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.38.1/manifests"},{"name":"0.37.10","sha":"3a8ec9cdf8b6a12bdb17387ab28e21e2f8933063","kind":"commit","published_at":"2021-12-05T20:00:14.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.37.10","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.37.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.10/manifests"},{"name":"0.37.9","sha":"f491aa99514560216bd79985d36651642a951737","kind":"commit","published_at":"2021-10-19T07:54:32.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.37.9","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.37.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.9/manifests"},{"name":"0.37.8","sha":"db2c618cfb5d294b7c99aac59123a1f46cb70abd","kind":"commit","published_at":"2021-06-28T07:22:13.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.37.8","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.37.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.8/manifests"},{"name":"0.37.7","sha":"66343e618bbcb5190d183b901edef2dbb11b6750","kind":"commit","published_at":"2021-06-15T09:46:45.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.37.7","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.37.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.7/manifests"},{"name":"0.37.6","sha":"d51a4331f5fc145e145b58a6e26121c1dfbfc9c5","kind":"commit","published_at":"2021-06-02T15:22:19.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.37.6","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.37.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.6/manifests"},{"name":"0.37.5","sha":"7cf3d859f97319d92c7dd4e745288b03cd358f0e","kind":"commit","published_at":"2021-05-31T12:44:41.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.37.5","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.37.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.5/manifests"},{"name":"0.37.4","sha":"657c721c3332f4a7788134cbeaa0002f818a406a","kind":"commit","published_at":"2021-05-21T10:26:23.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.37.4","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.37.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.4/manifests"},{"name":"0.37.3","sha":"0a3ec1a34341dabeacf88baa3fe620236b088cf3","kind":"commit","published_at":"2021-05-16T08:55:46.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.37.3","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.37.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.3/manifests"},{"name":"0.37.1","sha":"a13dae402d21fcff20c6ab4088ea85c75dcc47a4","kind":"commit","published_at":"2021-05-03T07:50:43.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.37.1","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.37.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.1/manifests"},{"name":"0.37.0","sha":"fd85312da82adcaaeb98a37c91f75c094219033f","kind":"commit","published_at":"2021-04-12T12:16:23.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.37.0","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.37.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.37.0/manifests"},{"name":"0.36.8","sha":"9b300357637d5c97f9197ae5a6806d9156ac44da","kind":"commit","published_at":"2020-07-08T08:20:48.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.36.8","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.36.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.36.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.36.8/manifests"},{"name":"0.36.7","sha":"73ea41da3dc5859fe86fe909466388d8456bcb13","kind":"commit","published_at":"2020-07-02T07:18:28.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.36.7","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.36.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.36.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.36.7/manifests"},{"name":"0.36.6","sha":"d9cd6042891173d852cb541f9d8735895baf2b95","kind":"commit","published_at":"2020-05-24T18:29:51.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.36.6","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.36.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.36.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.36.6/manifests"},{"name":"0.36.5","sha":"0b42e06ed29e4a3126a889e45d3100718d2e6019","kind":"commit","published_at":"2020-05-03T18:16:30.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.36.5","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.36.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.36.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.36.5/manifests"},{"name":"0.36.4","sha":"5dbc4a88201d78affe51642ee8a86c30f6de89c2","kind":"commit","published_at":"2020-04-30T07:50:12.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.36.4","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.36.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.36.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.36.4/manifests"},{"name":"0.36.3","sha":"0abaaceaa51dc501359efd5d73888e3b4b67cda3","kind":"commit","published_at":"2020-03-18T09:27:09.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.36.3","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.36.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.36.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.36.3/manifests"},{"name":"0.36.2","sha":"84cac2c9a311957649340e36540fbf25657cbe8b","kind":"commit","published_at":"2020-03-16T11:57:59.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.36.2","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.36.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.36.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.36.2/manifests"},{"name":"0.36.1","sha":"8d535bdc0e902f5154a8102263a1e9f67b183330","kind":"commit","published_at":"2019-12-23T08:48:44.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.36.1","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.36.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.36.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.36.1/manifests"},{"name":"0.36.0","sha":"627e2a3ef94ac7f04b39861d1e139a9f98a89c7f","kind":"commit","published_at":"2019-12-08T17:37:46.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.36.0","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.36.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.36.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.36.0/manifests"},{"name":"0.35.0","sha":"85753817ee1712b29e3f73395342527bd306265c","kind":"commit","published_at":"2019-11-01T10:32:59.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.35.0","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.35.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.35.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.35.0/manifests"},{"name":"0.34.2","sha":"57ff31ccf7c30c96057849604d4c0486b7ce5df6","kind":"commit","published_at":"2019-08-20T12:11:55.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.34.2","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.34.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.34.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.34.2/manifests"},{"name":"0.34.1","sha":"06b84cea2701ba17863769a4eaedd9bf9687d475","kind":"commit","published_at":"2019-07-15T12:55:40.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.34.1","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.34.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.34.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.34.1/manifests"},{"name":"0.34.0","sha":"bc42df90a8db137147273ffaea19f983bf4d3257","kind":"commit","published_at":"2019-06-09T13:02:04.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.34.0","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.34.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.34.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.34.0/manifests"},{"name":"0.33.11","sha":"6aa4e0d2aea5b3d524296412394f013960fd891f","kind":"commit","published_at":"2019-01-13T14:14:45.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.33.11","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.33.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.11/manifests"},{"name":"0.33.10","sha":"408dbfe7ff204008471ccf17cd3b13f9e7ec83c9","kind":"commit","published_at":"2018-12-27T11:42:50.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.33.10","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.33.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.10/manifests"},{"name":"0.33.9","sha":"717432b0db34f64ce9ebde4ba0950dd12fbb1a2c","kind":"commit","published_at":"2018-12-04T13:38:00.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.33.9","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.33.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.9/manifests"},{"name":"0.33.8","sha":"13ca6e586ce041be6c9b43d81060784582533d3d","kind":"commit","published_at":"2018-11-19T12:17:54.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.33.8","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.33.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.8/manifests"},{"name":"0.33.7","sha":"35638582e55fb06f157da5fceb8d4d711446139a","kind":"commit","published_at":"2018-11-19T07:54:43.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.33.7","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.33.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.7/manifests"},{"name":"0.33.6","sha":"9c4c9dfc4f666cf9a300607ce15a55c3d4f09e75","kind":"commit","published_at":"2018-10-14T07:14:15.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.33.6","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.33.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.6/manifests"},{"name":"0.33.5","sha":"fb1a2f35c4a368c0cdb1c6fd05f90a25b7858ea0","kind":"commit","published_at":"2018-09-20T07:35:01.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.33.5","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.33.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.5/manifests"},{"name":"0.33.2","sha":"2ab5e1496626c40828f4f9576ff20376002149ff","kind":"commit","published_at":"2018-04-02T15:01:21.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.33.2","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.33.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.2/manifests"},{"name":"0.33.1","sha":"957557633c94935f75589eea51124bc0fe8aabb6","kind":"commit","published_at":"2018-03-19T14:50:44.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.33.1","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.33.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.1/manifests"},{"name":"0.33.0","sha":"3b34e4a8e06d1818ab55c81365c886ac1d473643","kind":"commit","published_at":"2018-02-18T14:42:36.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.33.0","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.33.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.33.0/manifests"},{"name":"0.32.21","sha":"727b3942ce0ce6341d487327d6707c766803b6b5","kind":"commit","published_at":"2017-11-11T17:52:23.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.32.21","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.32.21","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.21","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.21/manifests"},{"name":"0.32.20","sha":"96057c0baeed7a9913fbc899184bc0676f7ec066","kind":"commit","published_at":"2017-11-05T15:23:02.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.32.20","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.32.20","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.20","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.20/manifests"},{"name":"0.32.19","sha":"a9389f4cdc6a936bbf27b74e3a00bb69703e4fc0","kind":"commit","published_at":"2017-10-17T08:39:32.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.32.19","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.32.19","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.19","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.19/manifests"},{"name":"0.32.18","sha":"504390502a0a53c4556c9e5ac99376ddfe5bf641","kind":"commit","published_at":"2017-10-06T07:17:39.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.32.18","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.32.18","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.18/manifests"},{"name":"0.32.14","sha":"40fd44c2bb38a2b0e2c007895483a88a4ecc336c","kind":"commit","published_at":"2017-03-27T13:51:44.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.32.14","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.32.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.14/manifests"},{"name":"0.32.13","sha":"b87a83557c94bd1ccecbf41dbf8d3bb73ee5ddef","kind":"commit","published_at":"2017-03-12T10:10:52.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.32.13","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.32.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.13/manifests"},{"name":"0.32.12","sha":"a5ef06f125cf4da6f6b5d2ad4f71f51d31db3ae9","kind":"commit","published_at":"2016-12-18T09:11:18.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.32.12","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.32.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.12/manifests"},{"name":"0.32.11","sha":"7f7ed30951e0b4399c3c455f1185d314106abd49","kind":"commit","published_at":"2016-11-19T08:38:38.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.32.11","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.32.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.11/manifests"},{"name":"0.32.9","sha":"daf09046859bfe5db49635b2dd2854012fdbbebe","kind":"commit","published_at":"2016-07-17T20:00:35.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.32.9","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.32.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.9/manifests"},{"name":"0.32.7","sha":"57ab3d7126bfce0e52db87d7ceea27fd0bb95438","kind":"commit","published_at":"2016-05-20T07:01:40.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.32.7","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.32.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.7/manifests"},{"name":"0.32.6","sha":"57b552c7e4921340e8c7e98b860520247c7cee83","kind":"commit","published_at":"2016-05-11T11:25:30.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.32.6","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.32.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.6/manifests"},{"name":"0.32.5","sha":"64933dbfa3b074e32a9cb221b5189087935c394b","kind":"commit","published_at":"2016-04-29T10:42:52.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.32.5","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.32.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.5/manifests"},{"name":"0.32.4","sha":"376407bc8e5d2a4949469ed90a6696bd3b224122","kind":"commit","published_at":"2016-04-25T18:11:21.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.32.4","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.32.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.4/manifests"},{"name":"0.32.3","sha":"c3a931b549c34e6213b19bd9a15bfeacd3ed2993","kind":"commit","published_at":"2016-04-21T14:29:00.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.32.3","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.32.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.3/manifests"},{"name":"0.32.2","sha":"c5b20535fd21fa0cce8eda056406f8f5839e9732","kind":"commit","published_at":"2016-04-20T12:33:48.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.32.2","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.32.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.2/manifests"},{"name":"0.32.1","sha":"e3c1ebfd8bd89efc5590d787630acfbe7676166c","kind":"commit","published_at":"2016-03-30T13:08:04.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.32.1","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.32.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.32.1/manifests"},{"name":"0.31.6","sha":"7ad870d78b28e49daeb91af461e278c32db03d7e","kind":"commit","published_at":"2016-01-21T12:35:46.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.31.6","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.31.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.31.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.31.6/manifests"},{"name":"0.31.5","sha":"2ccc934e816ca9597796b22e0c9cae3aa98103b1","kind":"commit","published_at":"2016-01-14T16:26:59.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.31.5","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.31.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.31.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.31.5/manifests"},{"name":"0.31.3","sha":"bed76729a297f75fd74574eefc1801b60c00e789","kind":"commit","published_at":"2015-11-09T15:44:29.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.31.3","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.31.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.31.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.31.3/manifests"},{"name":"0.31.1","sha":"91fc57f805ebc6208ce294d6b284c57c7cc6e841","kind":"commit","published_at":"2015-10-26T12:17:36.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.31.1","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.31.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.31.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.31.1/manifests"},{"name":"0.31.0","sha":"5207b40e679b7e1b396c8e7557b54b74a9128a7c","kind":"commit","published_at":"2015-09-17T11:25:40.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.31.0","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.31.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.31.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.31.0/manifests"},{"name":"0.30.12","sha":"6f1b61762f906144b064a933c8d1e5afc226dea2","kind":"commit","published_at":"2015-07-05T16:01:51.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.30.12","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.30.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.12/manifests"},{"name":"0.30.11","sha":"62da10c9585d88b5fd902938b2c0b137a939964d","kind":"commit","published_at":"2015-06-18T10:19:18.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.30.11","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.30.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.11/manifests"},{"name":"0.30.10","sha":"204aba376de3ff283a7462d86eb1f5e92b0dccb2","kind":"commit","published_at":"2015-06-17T16:36:46.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.30.10","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.30.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.10/manifests"},{"name":"0.30.9","sha":"9b72d2776314dc75faf38d32724509de3b1d57db","kind":"commit","published_at":"2015-06-09T09:21:33.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.30.9","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.30.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.9/manifests"},{"name":"0.30.8","sha":"810f38a26f04ff641f1b2b10b6c97ccabe6119ba","kind":"commit","published_at":"2015-06-05T11:02:56.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.30.8","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.30.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.8/manifests"},{"name":"0.30.7","sha":"afe4db7bbcf91545aa6a6df62af0257ab444fa1c","kind":"commit","published_at":"2015-05-30T05:17:50.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.30.7","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.30.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.7/manifests"},{"name":"0.30.6","sha":"b7a9281679a1e2b448abd92bbbeaf7749b59cc88","kind":"commit","published_at":"2015-05-28T16:02:54.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.30.6","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.30.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.6/manifests"},{"name":"0.30.5","sha":"417afb3eca28c6039c4a87dd68939973c1de5271","kind":"commit","published_at":"2015-05-27T12:14:57.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.30.5","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.30.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.5/manifests"},{"name":"0.30.4","sha":"eed50186293c3464f2fc19bb9322b711a76eb811","kind":"commit","published_at":"2015-05-27T10:53:33.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.30.4","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.30.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.4/manifests"},{"name":"0.30.3","sha":"5de59d622dbc8394f59e07853fab1c8d9edc6466","kind":"commit","published_at":"2015-05-27T10:04:17.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.30.3","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.30.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.3/manifests"},{"name":"0.30.2","sha":"f7cb3832bd191d4b4b6c7360c2a2946e1f00c883","kind":"commit","published_at":"2015-05-21T11:36:49.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.30.2","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.30.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.2/manifests"},{"name":"0.30.1","sha":"48064bac1ded8484087a0f9f3ce6b7f05a970686","kind":"commit","published_at":"2015-05-06T08:23:02.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.30.1","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.30.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.1/manifests"},{"name":"0.30.0","sha":"e7f665d4b75e80f5073f2117c373c97eba9f06f8","kind":"commit","published_at":"2015-04-15T08:19:04.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.30.0","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.30.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.30.0/manifests"},{"name":"0.29.9","sha":"7f253ab9d9316d9f613760daabe229c405216584","kind":"commit","published_at":"2015-04-07T20:39:26.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.29.9","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.29.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.9/manifests"},{"name":"0.29.8","sha":"5f2b120bc7e3cb64b4f33e4c2e61ac7d5432e450","kind":"commit","published_at":"2015-03-03T12:03:35.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.29.8","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.29.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.8/manifests"},{"name":"0.29.7","sha":"e62fe449c0e533f6451ab398e4f0d4f3b44ae11d","kind":"commit","published_at":"2015-03-01T10:44:27.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.29.7","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.29.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.7/manifests"},{"name":"0.29.5","sha":"270098403baf1862f78e57391252eb97d8f5a23c","kind":"commit","published_at":"2015-02-03T09:24:48.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.29.5","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.29.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.5/manifests"},{"name":"0.29.4","sha":"9e85029620a140770bafbf913104d1f9da1eafbe","kind":"commit","published_at":"2015-01-31T10:44:59.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.29.4","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.29.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.4/manifests"},{"name":"0.29.3","sha":"64e7ea4c62a06726b763b26220da4a77ed169ca2","kind":"commit","published_at":"2015-01-24T09:43:19.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.29.3","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.29.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.3/manifests"},{"name":"0.29.2","sha":"c1389d9e0781a7ee82ab65d64e6f151d0e6ee448","kind":"commit","published_at":"2015-01-08T11:49:14.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.29.2","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.29.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.2/manifests"},{"name":"0.29.1","sha":"611c938bfb1bad43cfa4cfd4b357d038b4ad87e8","kind":"commit","published_at":"2015-01-03T11:20:30.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.29.1","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.29.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.1/manifests"},{"name":"0.29.0","sha":"8c335fbd41d37fff07a05bc0a8ffcb6d0cc391e7","kind":"commit","published_at":"2015-01-02T16:40:36.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.29.0","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.29.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.29.0/manifests"},{"name":"0.28.3","sha":"0e40618ff93573e51c32dbcf570c22047c7ec962","kind":"commit","published_at":"2014-12-17T09:01:44.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.28.3","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.28.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.28.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.28.3/manifests"},{"name":"0.28.2","sha":"038cc2b3af0d50459260e9653ca0fcf74f2fb70e","kind":"commit","published_at":"2014-12-13T19:54:59.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.28.2","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.28.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.28.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.28.2/manifests"},{"name":"0.28.1","sha":"6f3af3ee7539b7fa4a8d823f258606a83f7007d6","kind":"commit","published_at":"2014-12-13T08:30:46.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.28.1","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.28.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.28.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.28.1/manifests"},{"name":"0.28.0","sha":"f16a4dc3211412873d7804a78955a08ae89de2a7","kind":"commit","published_at":"2014-12-12T11:03:06.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.28.0","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.28.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.28.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.28.0/manifests"},{"name":"0.27.11","sha":"936b066eb51f2ac39206c85979819252651704b6","kind":"commit","published_at":"2014-12-06T08:22:43.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.27.11","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.27.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.27.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.27.11/manifests"},{"name":"0.27.9","sha":"1cf5d5a81072777228f844629f8d916051d17962","kind":"commit","published_at":"2014-12-01T13:40:38.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.27.9","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.27.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.27.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.27.9/manifests"},{"name":"0.27.8","sha":"0d2efa1015bce232055579f95cc1fc3e11fdd122","kind":"commit","published_at":"2014-11-13T12:11:00.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.27.8","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.27.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.27.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.27.8/manifests"},{"name":"0.27.5","sha":"63ef4407c2658c7931cc00192d91b3566d7a0f1f","kind":"commit","published_at":"2014-10-24T11:52:23.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.27.5","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.27.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.27.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.27.5/manifests"},{"name":"0.26.15","sha":"aa478a8e20431dcf51134052c619e92b2cac1294","kind":"commit","published_at":"2014-08-28T20:20:57.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.26.15","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.26.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.26.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.26.15/manifests"},{"name":"0.26.14","sha":"0340ea1533a8988fbf6110790294fe26688b9848","kind":"commit","published_at":"2014-08-26T12:44:38.000Z","download_url":"https://codeload.github.com/kvesteri/sqlalchemy-utils/tar.gz/0.26.14","html_url":"https://github.com/kvesteri/sqlalchemy-utils/releases/tag/0.26.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.26.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvesteri%2Fsqlalchemy-utils/tags/0.26.14/manifests"}]},"repo_metadata_updated_at":"2024-09-08T01:59:00.306Z","dependent_packages_count":220,"downloads":15363424,"downloads_period":"last-month","dependent_repos_count":3003,"rankings":{"downloads":0.1328838731740681,"dependent_repos_count":0.19404953832624944,"dependent_packages_count":0.09361539123025087,"stargazers_count":1.9156773657726316,"forks_count":2.931042906418863,"docker_downloads_count":0.7505984659729347,"average":1.0029779234824996},"purl":"pkg:pypi/sqlalchemy-utils","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/sqlalchemy-utils","docker_dependents_count":104,"docker_downloads_count":90389449,"usage_url":"https://repos.ecosyste.ms/usage/pypi/sqlalchemy-utils","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/sqlalchemy-utils/dependencies","status":null,"funding_links":[],"critical":true,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sqlalchemy-utils/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sqlalchemy-utils/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sqlalchemy-utils/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sqlalchemy-utils/related_packages","maintainers":[{"uuid":"kvesteri","login":"kvesteri","name":null,"email":null,"url":null,"packages_count":22,"html_url":"https://pypi.org/user/kvesteri/","role":null,"created_at":"2022-12-23T15:29:33.483Z","updated_at":"2022-12-23T15:29:33.483Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/kvesteri/packages"},{"uuid":"vesauimonen","login":"vesauimonen","name":null,"email":null,"url":null,"packages_count":6,"html_url":"https://pypi.org/user/vesauimonen/","role":null,"created_at":"2022-12-23T15:29:33.502Z","updated_at":"2022-12-23T15:29:33.502Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/vesauimonen/packages"},{"uuid":"kurtmckee","login":"kurtmckee","name":null,"email":null,"url":null,"packages_count":16,"html_url":"https://pypi.org/user/kurtmckee/","role":null,"created_at":"2022-12-23T15:29:33.512Z","updated_at":"2022-12-23T15:29:33.512Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/kurtmckee/packages"},{"uuid":"jpvanhal","login":"jpvanhal","name":null,"email":null,"url":null,"packages_count":16,"html_url":"https://pypi.org/user/jpvanhal/","role":null,"created_at":"2023-04-29T14:46:55.397Z","updated_at":"2023-04-29T14:46:55.397Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/jpvanhal/packages"},{"uuid":"marksteward","login":"marksteward","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://pypi.org/user/marksteward/","role":null,"created_at":"2024-03-24T15:33:06.167Z","updated_at":"2024-03-24T15:33:06.167Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/marksteward/packages"},{"uuid":"josecsoto91","login":"josecsoto91","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/josecsoto91/","role":null,"created_at":"2024-03-24T15:33:06.132Z","updated_at":"2024-03-24T15:33:06.132Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/josecsoto91/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690419,"maintainers_count":292811,"namespaces_count":0,"keywords_count":228590,"github":"pypi","metadata":{"funded_packages_count":48950},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-06T05:32:09.692Z","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":36,"unique_repositories_count_past_30_days":1,"recent_issues":[{"uuid":"4610040022","node_id":"PR_kwDOS0CgI87jwV_w","number":5,"state":"open","title":"chore(deps): bump sqlalchemy-utils from 0.42.0 to 0.42.1","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-08T04:30:45.000Z","updated_at":"2026-06-08T04:38:20.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"sqlalchemy-utils","old_version":"0.42.0","new_version":"0.42.1","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.42.0 to 0.42.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError with Sequence defaults in instant_defaults_listener by \u003ca href=\"https://github.com/wadinj\"\u003e\u003ccode\u003e@​wadinj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/pull/793\"\u003ekvesteri/sqlalchemy-utils#793\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.1 (2025-12-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/793\"\u003e#793\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/kvesteri/sqlalchemy-utils/commit/ed0cc46f96d3065331ff34c0713da23ee90920a0\"\u003e\u003ccode\u003eed0cc46\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/11cf519375af877839d025c2d4ce402db035b81f\"\u003e\u003ccode\u003e11cf519\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.5.0 to 2.6.0 in /requirements/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/881fed424d9e2b360c82e4318a4842a85514981b\"\u003e\u003ccode\u003e881fed4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/797\"\u003e#797\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/81a5f82b2d1b104a9a377103262d3c0b64ad60d6\"\u003e\u003ccode\u003e81a5f82\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e8b12f849325fd910c89e14017a572b1bd4066a4\"\u003e\u003ccode\u003ee8b12f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/794\"\u003e#794\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/19570dcae67c84e50cb37ea06db717429fc188e7\"\u003e\u003ccode\u003e19570dc\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/4a7d764a4f490614cf1e597f1101bd7153573141\"\u003e\u003ccode\u003e4a7d764\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9645938138e998190d20bbd6c955eeca6a024d4d\"\u003e\u003ccode\u003e9645938\u003c/code\u003e\u003c/a\u003e Fix AttributeError with Sequence defaults in instant_defaults_listener\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e4b9f72230fde81e00ee4f9e34839f6d635fd2f3\"\u003e\u003ccode\u003ee4b9f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/792\"\u003e#792\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/755064d8add7496fb5002c0eaa309542fab7a301\"\u003e\u003ccode\u003e755064d\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.42.0...0.42.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=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.42.0\u0026new-version=0.42.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/ishaansingh22/superset-devin-target/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ishaansingh22%2Fsuperset-devin-target/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"},{"uuid":"3954847229","node_id":"PR_kwDONqUKmM7Ed3s5","number":323,"state":"open","title":"chore(deps): bump sqlalchemy-utils from 0.41.2 to 0.42.1","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-17T21:59:36.000Z","updated_at":"2026-02-17T21:59:42.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"sqlalchemy-utils","old_version":"0.41.2","new_version":"0.42.1","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.41.2 to 0.42.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError with Sequence defaults in instant_defaults_listener by \u003ca href=\"https://github.com/wadinj\"\u003e\u003ccode\u003e@​wadinj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/pull/793\"\u003ekvesteri/sqlalchemy-utils#793\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.1 (2025-12-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/793\"\u003e#793\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/commit/ed0cc46f96d3065331ff34c0713da23ee90920a0\"\u003e\u003ccode\u003eed0cc46\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/11cf519375af877839d025c2d4ce402db035b81f\"\u003e\u003ccode\u003e11cf519\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.5.0 to 2.6.0 in /requirements/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/881fed424d9e2b360c82e4318a4842a85514981b\"\u003e\u003ccode\u003e881fed4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/797\"\u003e#797\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/81a5f82b2d1b104a9a377103262d3c0b64ad60d6\"\u003e\u003ccode\u003e81a5f82\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e8b12f849325fd910c89e14017a572b1bd4066a4\"\u003e\u003ccode\u003ee8b12f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/794\"\u003e#794\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/19570dcae67c84e50cb37ea06db717429fc188e7\"\u003e\u003ccode\u003e19570dc\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/4a7d764a4f490614cf1e597f1101bd7153573141\"\u003e\u003ccode\u003e4a7d764\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9645938138e998190d20bbd6c955eeca6a024d4d\"\u003e\u003ccode\u003e9645938\u003c/code\u003e\u003c/a\u003e Fix AttributeError with Sequence defaults in instant_defaults_listener\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e4b9f72230fde81e00ee4f9e34839f6d635fd2f3\"\u003e\u003ccode\u003ee4b9f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/792\"\u003e#792\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/755064d8add7496fb5002c0eaa309542fab7a301\"\u003e\u003ccode\u003e755064d\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.2...0.42.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=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.41.2\u0026new-version=0.42.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/MoonLadderStudios/MoonMind/pull/323","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoonLadderStudios%2FMoonMind/issues/323","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/323/packages"},{"uuid":"3858222818","node_id":"PR_kwDOLzgXB86_e42s","number":659,"state":"closed","title":"Bump the allpip group across 1 directory with 34 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-02T07:41:31.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-27T00:10:11.000Z","updated_at":"2026-02-02T07:41:33.000Z","time_to_close":545480,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"allpip","update_count":34,"packages":[{"name":"fastapi","old_version":"0.124.0","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"alembic","old_version":"1.17.2","new_version":"1.18.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sqlalchemy","old_version":"2.0.44","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"sqlalchemy-utils","old_version":"0.42.0","new_version":"0.42.1","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"},{"name":"aiosqlite","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"async-lru","old_version":"2.0.5","new_version":"2.1.0","repository_url":"https://github.com/aio-libs/async-lru"},{"name":"poetry","old_version":"2.2.1","new_version":"2.3.1","repository_url":"https://github.com/python-poetry/poetry"},{"name":"vcrpy","old_version":"8.1.0","new_version":"8.1.1","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"coverage","old_version":"7.13.0","new_version":"7.13.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"ruff","old_version":"0.14.8","new_version":"0.14.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pre-commit","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pyright","old_version":"1.1.407","new_version":"1.1.408","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"setuptools","old_version":"80.9.0","new_version":"80.10.2","repository_url":"https://github.com/pypa/setuptools"},{"name":"anyio","old_version":"4.12.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"build","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pypa/build"},{"name":"certifi","old_version":"2025.11.12","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"fsspec","old_version":"2025.12.0","new_version":"2026.1.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"greenlet","old_version":"3.3.0","new_version":"3.3.1","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"identify","old_version":"2.6.15","new_version":"2.6.16","repository_url":"https://github.com/pre-commit/identify"},{"name":"jaraco-context","old_version":"6.0.1","new_version":"6.1.0","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"jaraco-functools","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/jaraco/jaraco.functools"},{"name":"json5","old_version":"0.12.1","new_version":"0.13.0","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pathspec","old_version":"0.12.1","new_version":"1.0.3","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"pbs-installer","old_version":"2025.12.5","new_version":"2026.1.14","repository_url":"https://github.com/frostming/pbs-installer"},{"name":"pycparser","old_version":"2.23","new_version":"3.0","repository_url":"https://github.com/eliben/pycparser"},{"name":"regex","old_version":"2025.11.3","new_version":"2026.1.15","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"tomlkit","old_version":"0.13.3","new_version":"0.14.0","repository_url":"https://github.com/sdispater/tomlkit"},{"name":"trove-classifiers","old_version":"2025.12.1.14","new_version":"2026.1.14.14","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"}],"path":null,"ecosystem":"pip"},"body":"Bumps the allpip group with 32 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.124.0` | `0.128.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.17.2` | `1.18.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.38.0` | `0.40.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.44` | `2.0.46` |\n| [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) | `0.42.0` | `0.42.1` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.21.0` | `0.22.1` |\n| [async-lru](https://github.com/aio-libs/async-lru) | `2.0.5` | `2.1.0` |\n| [poetry](https://github.com/python-poetry/poetry) | `2.2.1` | `2.3.1` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `8.1.0` | `8.1.1` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.0` | `7.13.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.14.14` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.0` | `4.5.1` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.407` | `1.1.408` |\n| [setuptools](https://github.com/pypa/setuptools) | `80.9.0` | `80.10.2` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.0` | `4.12.1` |\n| [build](https://github.com/pypa/build) | `1.3.0` | `1.4.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.11.12` | `2026.1.4` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.12.0` | `2026.1.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.3.0` | `3.3.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.15` | `2.6.16` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.0.1` | `6.1.0` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) | `4.3.0` | `4.4.0` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.1` | `0.13.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `0.12.1` | `1.0.3` |\n| [pbs-installer](https://github.com/frostming/pbs-installer) | `2025.12.5` | `2026.1.14` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.23` | `3.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2025.11.3` | `2026.1.15` |\n| [tomlkit](https://github.com/sdispater/tomlkit) | `0.13.3` | `0.14.0` |\n| [trove-classifiers](https://github.com/pypa/trove-classifiers) | `2025.12.1.14` | `2026.1.14.14` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n\n\nUpdates `fastapi` from 0.124.0 to 0.128.0\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.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\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✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\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\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\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\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\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🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\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 missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\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👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\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👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\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👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\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 scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\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\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\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 LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\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⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\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\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\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\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/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.124.0...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.17.2 to 1.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.1\u003c/h1\u003e\n\u003cp\u003eReleased: January 14, 2026\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [autogenerate]\u003c/strong\u003e Fixed issue in new plugin system where the configured logger was not\ncorrectly using the \u003ccode\u003e__name__\u003c/code\u003e token to identify the logger.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1779\"\u003e#1779\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [operations]\u003c/strong\u003e Revised the change regarding SQLAlchemy 2.1 and deprecation warnings\nrelated to \u003ccode\u003eisolate_from_table=True\u003c/code\u003e. Further developments in release 2.1\nhave revised how this parameter will be modified.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.18.0\u003c/h1\u003e\n\u003cp\u003eReleased: January 9, 2026\u003c/p\u003e\n\u003ch2\u003efeature\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [operations]\u003c/strong\u003e When alembic is run in \u0026quot;verbose\u0026quot; mode, alembic now logs a message to\nindicate from which file is used to load the configuration.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1737\"\u003e#1737\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Autogenerate reflection sweeps now use the \u0026quot;bulk\u0026quot; inspector methods\nintroduced in SQLAlchemy 2.0, which for selected dialects including\nPostgreSQL and Oracle use batched queries to reflect whole collections of\ntables using O(1) queries rather than O(N).\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Release 1.18.0 introduces a plugin system that allows for automatic\nloading of third-party extensions as well as configurable autogenerate\ncompare functionality on a per-environment basis.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003ePlugin\u003c/code\u003e class provides a common interface for extensions that\nregister handlers among Alembic's existing extension points such as\n\u003ccode\u003eOperations.register_operation()\u003c/code\u003e and\n\u003ccode\u003eOperations.implementation_for()\u003c/code\u003e. A new interface for registering\nautogenerate comparison handlers,\n\u003ccode\u003ePlugin.add_autogenerate_comparator()\u003c/code\u003e, provides for autogenerate\ncompare functionality that may be custom-configured on a per-environment\nbasis using the new\n\u003ccode\u003eEnvironmentContext.configure.autogenerate_plugins\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eThe change does not impact well known Alembic add-ons such as\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.38.0 to 0.40.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.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 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/2772\"\u003eKludex/uvicorn#2772\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.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return 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/2769\"\u003eKludex/uvicorn#2769\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/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\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.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.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/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.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\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/Kludex/uvicorn/commit/9ff60042a53cd1bbfd5580ab0a91ea2d1d8f2f8c\"\u003e\u003ccode\u003e9ff6004\u003c/code\u003e\u003c/a\u003e Version 0.40.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2773\"\u003e#2773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/19df042c54c1562f058daf021d6f7bd1d5ed621c\"\u003e\u003ccode\u003e19df042\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/865ce7c0b4329a384273a6628eceb8d597989521\"\u003e\u003ccode\u003e865ce7c\u003c/code\u003e\u003c/a\u003e Run strict mypy on test suite (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2771\"\u003e#2771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4f40b8495772eb3a1ab3613ffd7be5156f8e1389\"\u003e\u003ccode\u003e4f40b84\u003c/code\u003e\u003c/a\u003e Version 0.39.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2770\"\u003e#2770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5692dfc416f9e65aee5028e55d119313d8d3ab0f\"\u003e\u003ccode\u003e5692dfc\u003c/code\u003e\u003c/a\u003e fix(websockets): Send close frame on ASGI return (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4194764a26824e5d8ddd1fa673df78dff82966e0\"\u003e\u003ccode\u003e4194764\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2763\"\u003e#2763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d94bf28743de545d2d4b150f022203a5178cb705\"\u003e\u003ccode\u003ed94bf28\u003c/code\u003e\u003c/a\u003e explicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8ae0bcbecb0a655789abf0c2dd4200848fc68a30\"\u003e\u003ccode\u003e8ae0bcb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4744ff9a1a4888c76ea160328cc9dcc2680c2c71\"\u003e\u003ccode\u003e4744ff9\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0391372376c264604a0475b0864bcbf3a8705352\"\u003e\u003ccode\u003e0391372\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.8.0 to 7.1.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2746\"\u003e#2746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.44 to 2.0.46\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.46\u003c/h1\u003e\n\u003cp\u003eReleased: January 21, 2026\u003c/p\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed typing issues where ORM mapped classes and aliased entities could not\nbe used as keys in result row mappings or as join targets in select\nstatements. Patterns such as \u003ccode\u003erow._mapping[User]\u003c/code\u003e,\n\u003ccode\u003erow._mapping[aliased(User)]\u003c/code\u003e, \u003ccode\u003erow._mapping[with_polymorphic(...)]\u003c/code\u003e\n(rejected by both mypy and Pylance), and \u003ccode\u003e.join(aliased(User))\u003c/code\u003e\n(rejected by Pylance) are documented and fully supported at runtime but\nwere previously rejected by type checkers. The type definitions for\n\u003ccode\u003e_KeyType\u003c/code\u003e and \u003ccode\u003e_FromClauseArgument\u003c/code\u003e have been updated to\naccept these ORM entity types.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13075\"\u003e#13075\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed issue where PostgreSQL JSONB operators\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_match()\u003c/code\u003e and\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_exists()\u003c/code\u003e were applying incorrect\n\u003ccode\u003eVARCHAR\u003c/code\u003e casts to the right-hand side operand when used with newer\nPostgreSQL drivers such as psycopg. The operators now indicate the\nright-hand type as \u003ccode\u003eJSONPATH\u003c/code\u003e, which currently results in no casting\ntaking place, but is also compatible with explicit casts if the\nimplementation were require it at a later point.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13059\"\u003e#13059\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed regression in PostgreSQL dialect where JSONB subscription syntax\nwould generate incorrect SQL for \u003ccode\u003ecast()\u003c/code\u003e expressions returning JSONB,\ncausing syntax errors. The dialect now properly wraps cast expressions in\nparentheses when using the \u003ccode\u003e[]\u003c/code\u003e subscription syntax, generating\n\u003ccode\u003e(CAST(...))[index]\u003c/code\u003e instead of \u003ccode\u003eCAST(...)[index]\u003c/code\u003e to comply with\nPostgreSQL syntax requirements. This extends the fix from \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12778\"\u003e#12778\u003c/a\u003e\nwhich addressed the same issue for function calls.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13067\"\u003e#13067\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Improved the foreign key reflection regular expression pattern used by the\nPostgreSQL dialect to be more permissive in matching identifier characters,\nallowing it to correctly handle unicode characters in table and column\nnames. This change improves compatibility with PostgreSQL variants such as\nCockroachDB that may use different quoting patterns in combination with\nunicode characters in their identifiers.  Pull request courtesy Gord\nThompson.\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy-utils` from 0.42.0 to 0.42.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError with Sequence defaults in instant_defaults_listener by \u003ca href=\"https://github.com/wadinj\"\u003e\u003ccode\u003e@​wadinj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/pull/793\"\u003ekvesteri/sqlalchemy-utils#793\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.1 (2025-12-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/793\"\u003e#793\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/kvesteri/sqlalchemy-utils/commit/ed0cc46f96d3065331ff34c0713da23ee90920a0\"\u003e\u003ccode\u003eed0cc46\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/11cf519375af877839d025c2d4ce402db035b81f\"\u003e\u003ccode\u003e11cf519\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.5.0 to 2.6.0 in /requirements/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/881fed424d9e2b360c82e4318a4842a85514981b\"\u003e\u003ccode\u003e881fed4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/797\"\u003e#797\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/81a5f82b2d1b104a9a377103262d3c0b64ad60d6\"\u003e\u003ccode\u003e81a5f82\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e8b12f849325fd910c89e14017a572b1bd4066a4\"\u003e\u003ccode\u003ee8b12f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/794\"\u003e#794\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/19570dcae67c84e50cb37ea06db717429fc188e7\"\u003e\u003ccode\u003e19570dc\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/4a7d764a4f490614cf1e597f1101bd7153573141\"\u003e\u003ccode\u003e4a7d764\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9645938138e998190d20bbd6c955eeca6a024d4d\"\u003e\u003ccode\u003e9645938\u003c/code\u003e\u003c/a\u003e Fix AttributeError with Sequence defaults in instant_defaults_listener\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e4b9f72230fde81e00ee4f9e34839f6d635fd2f3\"\u003e\u003ccode\u003ee4b9f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/792\"\u003e#792\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/755064d8add7496fb5002c0eaa309542fab7a301\"\u003e\u003ccode\u003e755064d\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.42.0...0.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiosqlite` from 0.21.0 to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.1\u003c/h2\u003e\n\u003cp\u003eBug fix release\u003c/p\u003e\n\u003cp\u003eNOTE: Starting with \u003ccode\u003ev0.22.0\u003c/code\u003e, the \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e object no longer\ninherits from \u003ccode\u003ethreading.Thread\u003c/code\u003e. If not using aiosqlite as a context manager,\nclients must \u003ccode\u003eawait connection.close()\u003c/code\u003e or call \u003ccode\u003econnection.stop()\u003c/code\u003e to ensure\nthe helper thread is completed and terminated correctly. A \u003ccode\u003eResourceWarning\u003c/code\u003e\nwill be emitted for any connection that is garbage collected without being\nclosed or stopped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded synchronous \u003ccode\u003estop()\u003c/code\u003e method to \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e to enable safe\ncleanup and termination of the background thread without dependence\non having an active event loop (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.22.0...v0.22.1\n     2\tAmethyst Reese\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cp\u003eFeature release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eset_authorizer\u003c/code\u003e query access controls (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWait for transaction queue to complete when closing connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit warning when connection goes out of scope without being closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on \u003ccode\u003etyping_extensions\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.21.0...v0.22.0\n     1\tAlec Berryman\n     1\tAmethyst Reese\n     1\tDavid Andreoletti\n     1\tMarkus Heidelberg\n     1\tbeerpsi\n    19\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/9b127cecc7de843bf4f343b6da63b641866533fb\"\u003e\u003ccode\u003e9b127ce\u003c/code\u003e\u003c/a\u003e Version bump v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/5c3f61c1ea49401f2716d8f58d494e76ca766921\"\u003e\u003ccode\u003e5c3f61c\u003c/code\u003e\u003c/a\u003e Improve stop semantics for connections (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/a869d73678adbc14472e4ac2c31f4e706efe8ef3\"\u003e\u003ccode\u003ea869d73\u003c/code\u003e\u003c/a\u003e Version bump v0.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/1cd60adcab12347577150a6fa6c7d92b7b86d989\"\u003e\u003ccode\u003e1cd60ad\u003c/code\u003e\u003c/a\u003e Emit warning if connection is deleted before it is closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/611d7b4f29fc3d7df6c173b2e79b0892e9d249aa\"\u003e\u003ccode\u003e611d7b4\u003c/code\u003e\u003c/a\u003e Add set_authorizer support for fine-grained access control (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/81d00c8f1676851c8634ca98f99e0973083ea75f\"\u003e\u003ccode\u003e81d00c8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/7a26722f7e6da6a1ae0febf515b4624794173fcc\"\u003e\u003ccode\u003e7a26722\u003c/code\u003e\u003c/a\u003e Bump coverage[toml] from 7.8.0 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/445754087ec452f888cc152debf79590d8a25d86\"\u003e\u003ccode\u003e4457540\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.2.0 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/b650dad318ad72e582b7ba1143cc05f270f8ab6b\"\u003e\u003ccode\u003eb650dad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/065ffdd1291693c5e69d2f3efff17e351d9a0163\"\u003e\u003ccode\u003e065ffdd\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.15.0 to 1.19.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.21.0...v0.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-lru` from 2.0.5 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-lru/releases\"\u003easync-lru's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed cancelling of task when all tasks waiting on it have been cancelled.\u003c/li\u003e\n\u003cli\u003eFixed DeprecationWarning from asyncio.iscoroutinefunction.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-lru/blob/master/CHANGES.rst\"\u003easync-lru's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.0 (2026-01-17)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed cancelling of task when all tasks waiting on it have been cancelled.\u003c/li\u003e\n\u003cli\u003eFixed DeprecationWarning from asyncio.iscoroutinefunction.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/b4e713b6e71cd4bc36fe0aa980951a1d9a1d2584\"\u003e\u003ccode\u003eb4e713b\u003c/code\u003e\u003c/a\u003e Release v2.1.0 (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/729\"\u003e#729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/64e52a30c7396863f245f3fd92deb077c3a83cd9\"\u003e\u003ccode\u003e64e52a3\u003c/code\u003e\u003c/a\u003e fix: callback inappropriately suppresses asyncio logs (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/dfa691513d454f72e37b7f04f3e40aa42009926c\"\u003e\u003ccode\u003edfa6915\u003c/code\u003e\u003c/a\u003e build(deps): bump sigstore/gh-action-sigstore-python from 3.1.0 to 3.2.0 (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/f0501344470a7c0c3df0d1d15482f9ad9620f0a6\"\u003e\u003ccode\u003ef050134\u003c/code\u003e\u003c/a\u003e build(deps): bump coverage from 7.13.0 to 7.13.1 (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/e19862dd0a9dcdf4db25c4c15eaa280bb86516b7\"\u003e\u003ccode\u003ee19862d\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/9ab48ab90c633e4708d725f0708f2ec651f188d1\"\u003e\u003ccode\u003e9ab48ab\u003c/code\u003e\u003c/a\u003e build(deps): bump coverage from 7.12.0 to 7.13.0 (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/724\"\u003e#724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/bbfbdae43bf7bf0ff274e3d1a7439c9081d96362\"\u003e\u003ccode\u003ebbfbdae\u003c/code\u003e\u003c/a\u003e build(deps): bump pytest from 9.0.1 to 9.0.2 (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/723\"\u003e#723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/8414747ae04e62683afc11e474e3e57d97b9522e\"\u003e\u003ccode\u003e8414747\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/02126177e0eeae2b6614a70ee85a46563148161c\"\u003e\u003ccode\u003e0212617\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump mypy from 1.18.2 to 1.19.0 (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/721\"\u003e#721\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/760a980b7b6dba5686a4be528bdd4542ad11edb8\"\u003e\u003ccode\u003e760a980\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump flake8-bugbear from 25.10.21 to 25.11.29 (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/720\"\u003e#720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-lru/compare/v2.0.5...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `poetry` from 2.2.1 to 2.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-poetry/poetry/releases\"\u003epoetry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue where cached information about each package was always considered outdated (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10699\"\u003e#10699\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument SHELL_VERBOSITY environment variable (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10678\"\u003e#10678\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd support for exporting \u003ccode\u003epylock.toml\u003c/code\u003e files with \u003ccode\u003epoetry-plugin-export\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10677\"\u003e#10677\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for specifying build constraints for dependencies (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10388\"\u003e#10388\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for publishing artifacts whose version is determined dynamically by the build-backend (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10644\"\u003e#10644\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for editable project plugins (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10661\"\u003e#10661\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eCheck \u003ccode\u003erequires-poetry\u003c/code\u003e before any other validation (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10593\"\u003e#10593\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eValidate the content of \u003ccode\u003eproject.readme\u003c/code\u003e when running \u003ccode\u003epoetry check\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10604\"\u003e#10604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd the option to clear all caches by making the cache name in \u003ccode\u003epoetry cache clear\u003c/code\u003e optional (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10627\"\u003e#10627\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAutomatically update the cache for packages where the locked files differ from cached files (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10657\"\u003e#10657\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSuggest to clear the cache if running a command with \u003ccode\u003e--no-cache\u003c/code\u003e solves an issue (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10585\"\u003e#10585\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003ePropose \u003ccode\u003epoetry init\u003c/code\u003e when trying \u003ccode\u003epoetry new\u003c/code\u003e for an existing directory (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10563\"\u003e#10563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003epoetry publish --skip-existing\u003c/code\u003e for new Nexus OSS versions (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10603\"\u003e#10603\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eShow Poetry's own Python's path in \u003ccode\u003epoetry debug info\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10588\"\u003e#10588\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop support for Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10634\"\u003e#10634\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChange the default of \u003ccode\u003einstaller.re-resolve\u003c/code\u003e from \u003ccode\u003etrue\u003c/code\u003e to \u003ccode\u003efalse\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10622\"\u003e#10622\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePEP 735 dependency groups are considered in the lock file hash\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10621\"\u003e#10621\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003epoetry.utils._compat.metadata\u003c/code\u003e, which is sometimes used in plugins, in favor of \u003ccode\u003eimportlib.metadata\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10634\"\u003e#10634\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImprove managing free-threaded Python versions with \u003ccode\u003epoetry python\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10606\"\u003e#10606\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003ePrefer JSON API to HTML API in legacy repositories (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10672\"\u003e#10672\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eWhen running \u003ccode\u003epoetry init\u003c/code\u003e, only add the readme field in the \u003ccode\u003epyproject.toml\u003c/code\u003e if the readme file exists (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10679\"\u003e#10679\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRaise an error if no hash can be determined for any distribution link of a package (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10673\"\u003e#10673\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRequire \u003ccode\u003edulwich\u0026gt;=0.25.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10674\"\u003e#10674\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry remove\u003c/code\u003e did not work for PEP 735 dependency groups with \u003ccode\u003einclude-group\u003c/code\u003e items (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10587\"\u003e#10587\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry remove\u003c/code\u003e caused dangling \u003ccode\u003einclude-group\u003c/code\u003e references in PEP 735 dependency groups (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10590\"\u003e#10590\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry add\u003c/code\u003e did not work for PEP 735 dependency groups with \u003ccode\u003einclude-group\u003c/code\u003e items (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10636\"\u003e#10636\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where PEP 735 dependency groups were not considered in the lock file hash (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10621\"\u003e#10621\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where wrong markers were locked for a dependency that was required by several groups with different markers (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10613\"\u003e#10613\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where non-deterministic markers were created in a method used by \u003ccode\u003epoetry-plugin-export\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10667\"\u003e#10667\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where wrong wheels were chosen for installation in free-threaded Python environments if Poetry itself was not installed with free-threaded Python (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10614\"\u003e#10614\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry publish\u003c/code\u003e used the metadata of the project instead of the metadata of the build artifact (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10624\"\u003e#10624\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry env use\u003c/code\u003e just used another Python version instead of failing when the requested version was not supported by the project (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10685\"\u003e#10685\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry env activate\u003c/code\u003e returned the wrong command for \u003ccode\u003edash\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10696\"\u003e#10696\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003edata-dir\u003c/code\u003e and \u003ccode\u003epython.installation-dir\u003c/code\u003e could not be set (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10595\"\u003e#10595\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/python-poetry/poetry/blob/main/CHANGELOG.md\"\u003epoetry's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.3.1] - 2026-01-20\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue where cached information about each package was always considered outdated (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10699\"\u003e#10699\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument SHELL_VERBOSITY environment variable (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10678\"\u003e#10678\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[2.3.0] - 2026-01-18\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd support for exporting \u003ccode\u003epylock.toml\u003c/code\u003e files with \u003ccode\u003epoetry-plugin-export\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10677\"\u003e#10677\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for specifying build constraints for dependencies (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10388\"\u003e#10388\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for publishing artifacts whose version is determined dynamically by the build-backend (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10644\"\u003e#10644\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for editable project plugins (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10661\"\u003e#10661\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eCheck \u003ccode\u003erequires-poetry\u003c/code\u003e before any other validation (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10593\"\u003e#10593\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eValidate the content of \u003ccode\u003eproject.readme\u003c/code\u003e when running \u003ccode\u003epoetry check\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10604\"\u003e#10604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd the option to clear all caches by making the cache name in \u003ccode\u003epoetry cache clear\u003c/code\u003e optional (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10627\"\u003e#10627\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAutomatically update the cache for packages where the locked files differ from cached files (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10657\"\u003e#10657\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSuggest to clear the cache if running a command with \u003ccode\u003e--no-cache\u003c/code\u003e solves an issue (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10585\"\u003e#10585\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003ePropose \u003ccode\u003epoetry init\u003c/code\u003e when trying \u003ccode\u003epoetry new\u003c/code\u003e for an existing directory (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10563\"\u003e#10563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003epoetry publish --skip-existing\u003c/code\u003e for new Nexus OSS versions (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10603\"\u003e#10603\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eShow Poetry's own Python's path in \u003ccode\u003epoetry debug info\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10588\"\u003e#10588\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop support for Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10634\"\u003e#10634\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChange the default of \u003ccode\u003einstaller.re-resolve\u003c/code\u003e from \u003ccode\u003etrue\u003c/code\u003e to \u003ccode\u003efalse\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10622\"\u003e#10622\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePEP 735 dependency groups are considered in the lock file hash\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10621\"\u003e#10621\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003epoetry.utils._compat.metadata\u003c/code\u003e, which is sometimes used in plugins, in favor of \u003ccode\u003eimportlib.metadata\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10634\"\u003e#10634\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImprove managing free-threaded Python versions with \u003ccode\u003epoetry python\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10606\"\u003e#10606\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003ePrefer JSON API to HTML API in legacy repositories (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10672\"\u003e#10672\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eWhen running \u003ccode\u003epoetry init\u003c/code\u003e, only add the readme field in the \u003ccode\u003epyproject.toml\u003c/code\u003e if the readme file exists (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10679\"\u003e#10679\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRaise an error if no hash can be determined for any distribution link of a package (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10673\"\u003e#10673\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRequire \u003ccode\u003edulwich\u0026gt;=0.25.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10674\"\u003e#10674\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry remove\u003c/code\u003e did not work for PEP 735 dependency groups with \u003ccode\u003einclude-group\u003c/code\u003e items (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10587\"\u003e#10587\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry remove\u003c/code\u003e caused dangling \u003ccode\u003einclude-group\u003c/code\u003e references in PEP 735 dependency groups (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10590\"\u003e#10590\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry add\u003c/code\u003e did not work for PEP 735 dependency groups with \u003ccode\u003einclude-group\u003c/code\u003e items (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10636\"\u003e#10636\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where PEP 735 dependency groups were not considered in the lock file hash (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10621\"\u003e#10621\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where wrong markers were locked for a dependency that was required by several groups with different markers (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10613\"\u003e#10613\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where non-deterministic markers were created in a method used by \u003ccode\u003epoetry-plugin-export\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10667\"\u003e#10667\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where wrong wheels were chosen for installation in free-threaded Python environments if Poetry itself was not installed with free-threaded Python (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10614\"\u003e#10614\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry publish\u003c/code\u003e used the metadata of the project instead of the metadata of the build artifact (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10624\"\u003e#10624\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/python-poetry/poetry/commit/f3d239baaed2cd5c5512f827d0d80ecbfb1181fe\"\u003e\u003ccode\u003ef3d239b\u003c/code\u003e\u003c/a\u003e release: bump version to 2.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/6a81e6069f8a01edb58b12c9890113ffb13c0116\"\u003e\u003ccode\u003e6a81e60\u003c/code\u003e\u003c/a\u003e fix: ignore different URL in cache staleness check (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10699\"\u003e#10699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/697c1709468cf74858b6c041d66bc785b4b10c3e\"\u003e\u003ccode\u003e697c170\u003c/code\u003e\u003c/a\u003e docs: document SHELL_VERBOSITY environment variable (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10678\"\u003e#10678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/e39f1f1d9a68c93258513d4f6f8e1121e70c1e82\"\u003e\u003ccode\u003ee39f1f1\u003c/code\u003e\u003c/a\u003e release: bump version to 2.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/c6d3537a7d73d24e1e1b68fb3d4f860a0e83e21c\"\u003e\u003ccode\u003ec6d3537\u003c/code\u003e\u003c/a\u003e env activate: fallback to POSIX compatible builtin (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10696\"\u003e#10696\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/ba73d18e51d51f185ce6f733a9cc79552d3f28f0\"\u003e\u003ccode\u003eba73d18\u003c/code\u003e\u003c/a\u003e chore: update locked dependencies (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10694\"\u003e#10694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/a09b5033f3fd543e9a7a6ea8925ee2d86a806c60\"\u003e\u003ccode\u003ea09b503\u003c/code\u003e\u003c/a\u003e chore: update actions (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10693\"\u003e#10693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/74e3d4e40282ec695c7a9bcac551da6351eaa550\"\u003e\u003ccode\u003e74e3d4e\u003c/code\u003e\u003c/a\u003e direct-origin: add size to file info (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10677\"\u003e#10677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/e29ac7a16ff502fb6ae9ee9881484feb006100ad\"\u003e\u003ccode\u003ee29ac7a\u003c/code\u003e\u003c/a\u003e repository: bump cache version (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10677\"\u003e#10677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/ab293dc58a5ca944507817439a3ab3fe6692b5c3\"\u003e\u003ccode\u003eab293dc\u003c/code\u003e\u003c/a\u003e repository: add size and upload-time to file info if available (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10677\"\u003e#10677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-poetry/poetry/compare/2.2.1...2.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `vcrpy` from 8.1.0 to 8.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kevin1024/vcrpy/releases\"\u003evcrpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix sync requests in async contexts for HTTPX (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/965\"\u003e#965\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/seowalex\"\u003e\u003ccode\u003e@​seowalex\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: bump peter-evans/create-pull-request from 7 to 8 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/969\"\u003e#969\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/kevin1024/vcrpy/blob/master/docs/changelog.rst\"\u003evcrpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cp\u003eFor a full list of triaged issues, bugs and PRs and what release they are targeted for please see the following link.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eROADMAP MILESTONES \u0026lt;https://github.com/kevin1024/vcrpy/milestones\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cp\u003eAll help in providing PRs to close out bug issues is appreciated. Even if that is providing a repo that fully replicates issues. We have very generous contributors that have added these to bug issues which meant another contributor picked up the bug and closed it out.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e8.1.1\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix sync requests in async contexts for HTTPX (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/965\"\u003e#965\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/seowalex\"\u003e\u003ccode\u003e@​seowalex\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: bump peter-evans/create-pull-request from 7 to 8 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e8.1.0\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable brotli decompression if available (via \u003ccode\u003ebrotli\u003c/code\u003e, \u003ccode\u003ebrotlipy\u003c/code\u003e or \u003ccode\u003ebrotlicffi\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/620\"\u003e#620\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/immerrr\"\u003e\u003ccode\u003e@​immerrr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aiohttp allowing both \u003ccode\u003edata\u003c/code\u003e and \u003ccode\u003ejson\u003c/code\u003e arguments when one is None (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/624\"\u003e#624\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/leorochael\"\u003e\u003ccode\u003e@​leorochael\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix usage of io-like interface with VCR.py (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/906\"\u003e#906\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/tito\"\u003e\u003ccode\u003e@​tito\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/kevdevg\"\u003e\u003ccode\u003e@​kevdevg\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate to declarative Python package config (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/767\"\u003e#767\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/deronnax\"\u003e\u003ccode\u003e@​deronnax\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious linting fixes - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/955\"\u003e#955\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e8.0.0\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBREAKING: Drop support for Python 3.9 (major version bump) - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBREAKING: Drop support for urllib3 \u0026lt; 2 - fixes CVE warnings from urllib3 1.x (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/926\"\u003e#926\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/880\"\u003e#880\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNew feature: \u003ccode\u003edrop_unused_requests\u003c/code\u003e option to remove unused interactions from cassettes (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/763\"\u003e#763\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/danielnsilva\"\u003e\u003ccode\u003e@​danielnsilva\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRewrite httpx support to patch httpcore instead of httpx (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/943\"\u003e#943\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/seowalex\"\u003e\u003ccode\u003e@​seowalex\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eFixes \u003ccode\u003ehttpx.ResponseNotRead\u003c/code\u003e exceptions (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/832\"\u003e#832\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/834\"\u003e#834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixes \u003ccode\u003eKeyError: 'follow_redirects'\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdds support for custom httpx transports\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix HTTPS proxy handling - proxy address no longer ends up in cassette URIs (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/809\"\u003e#809\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/914\"\u003e#914\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/alga\"\u003e\u003ccode\u003e@​alga\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eiscoroutinefunction\u003c/code\u003e deprecation warning on Python 3.14 - thanks \u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly log message if response is appended - thanks \u003ca href=\"https://github.com/talfus-laddus\"\u003e\u003ccode\u003e@​talfus-laddus\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize urllib.parse calls - thanks \u003ca href=\"https://github.com/Martin-Brunthaler\"\u003e\u003ccode\u003e@​Martin-Brunthaler\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI for Ubuntu 24.04 - thanks \u003ca href=\"https://github.com/hartwork\"\u003e\u003ccode\u003e@​hartwork\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious CI improvements: migrate to uv, update GitHub Actions - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious linting and test improvements - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/hartwork\"\u003e\u003ccode\u003e@​hartwork\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e7.0.0\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for python 3.8 (major version bump) - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious linting and test fixes - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix for urllib2\u0026gt;=2.3.0 - missing version_string (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/888\"\u003e#888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix for asyncio.run - thanks \u003ca href=\"https://github.com/alekeik1\"\u003e\u003ccode\u003e@​alekeik1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e6.0.2\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure body is consumed only once (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/846\"\u003e#846\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/sathieu\"\u003e\u003ccode\u003e@​sathieu\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePermit urllib3 2.x for non-PyPy Python \u0026gt;=3.10\u003c/li\u003e\n\u003cli\u003eFix typos in test commands - thanks \u003ca href=\"https://github.com/chuckwondo\"\u003e\u003ccode\u003e@​chuckwondo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral test and workflow improvements - thanks \u003ca href=\"https://github.com/hartwork\"\u003e\u003ccode\u003e@​hartwork\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e6.0.1\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix with to Tornado cassette generator (thanks \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e6.0.0\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/kevin1024/vcrpy/commit/9b586631e4131fce906207c40eeb71e41df6c23a\"\u003e\u003ccode\u003e9b58663\u003c/code\u003e\u003c/a\u003e Release v8.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/3780f580409a437d98a257a0455d4a01b2664dce\"\u003e\u003ccode\u003e3780f58\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/create-pull-request from 7 to 8 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/1b70394f3592d51f6ac88c86ee05e5915064c9ea\"\u003e\u003ccode\u003e1b70394\u003c/code\u003e\u003c/a\u003e Split sync and async HTTPX handlers (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/ca4b1e19c2e9259690987e18587f70362fe98858\"\u003e\u003ccode\u003eca4b1e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/960\"\u003e#960\u003c/a\u003e from kevin1024/precommit-autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/8d47ca10d086c88fb755560d1dca3b2132cf20d7\"\u003e\u003ccode\u003e8d47ca1\u003c/code\u003e\u003c/a\u003e pre-commit: Autoupdate\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kevin1024/vcrpy/compare/v8.1.0...v8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.0 to 7.13.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.2 — 2026-01-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: when Python is installed via symlinks, for example with Homebrew, the\nstandard library files could be incorrectly included in coverage reports.\nThis is now fixed, closing \u003ccode\u003eissue 2115\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: if a data file is created with no read permissions, the combine step\nwould fail completely. Now a warning is issued and the file is skipped.\nCloses \u003ccode\u003eissue 2117\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2115: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2115\"\u003ecoveragepy/coveragepy#2115\u003c/a\u003e\n.. _issue 2117: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2117\"\u003ecoveragepy/coveragepy#2117\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\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/coveragepy/coveragepy/commit/513e97162536cb94aeb94ed3cbe487ca64d13e07\"\u003e\u003ccode\u003e513e971\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/27a8230cf0ef73abca824d2a8622235d9ad8ab96\"\u003e\u003ccode\u003e27a8230\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/27d8daac216ffef80276515b22cf679f9fabc422\"\u003e\u003ccode\u003e27d8daa\u003c/code\u003e\u003c/a\u003e refactor: plural does more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2f248cf095fc49d3599c39befdea6a5552ccd23\"\u003e\u003ccode\u003ea2f248c\u003c/code\u003e\u003c/a\u003e fix: stdlib might be through a symlink. \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2115\"\u003e#2115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/bc52a22953759f71c291d31e7d17faf9903c0667\"\u003e\u003ccode\u003ebc52a22\u003c/code\u003e\u003c/a\u003e debug: re-organize Matchers to show more of what they do\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/f338d816ba7fcd23934a9397d15450593f0f20d9\"\u003e\u003ccode\u003ef338d81\u003c/code\u003e\u003c/a\u003e debug: build is a tuple, don't show it on two lines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/92020e469ab6c80cbe24786d0250a571d5f569cf\"\u003e\u003ccode\u003e92020e4\u003c/code\u003e\u003c/a\u003e refactor(test): convert to parametrized\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/6387d0a60d80cb96231ad32fe81be47cddfe1c78\"\u003e\u003ccode\u003e6387d0a\u003c/code\u003e\u003c/a\u003e test: let (most) tests run with no network\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1d31e33cfe0ccef7d87c1f0c6219f55a3d9b5eee\"\u003e\u003ccode\u003e1d31e33\u003c/code\u003e\u003c/a\u003e build: workflows sometimes need more than 10 min\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/62949782b7810d8ffc228ba0e00f81c2ab81cda7\"\u003e\u003ccode\u003e6294978\u003c/code\u003e\u003c/a\u003e refactor: an error message is now uniform across versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.0...7.13.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.14.8 to 0.14.14\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.14.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-22.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve required parentheses in lambda bodies (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22747\"\u003e#22747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCombine range suppression code diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22613\"\u003e#22613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Second positional argument to \u003ccode\u003eAsset\u003c/code\u003e/\u003ccode\u003eDataset\u003c/code\u003e should not be a dictionary (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22453\"\u003e#22453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Detect duplicate entries in \u003ccode\u003e__all__\u003c/code\u003e (\u003ccode\u003eRUF068\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22114\"\u003e#22114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Allow shadowing non-builtin bindings (\u003ccode\u003eUP029\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22749\"\u003e#22749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pie\u003c/code\u003e] Detect duplicated declared class fields in \u003ccode\u003ePIE794\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22717\"\u003e#22717\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-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e, \u003ccode\u003e__enter__\u003c/code\u003e, \u003ccode\u003e__aenter__\u003c/code\u003e in \u003ccode\u003ePYI034\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22798\"\u003e#22798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Support \u003ccode\u003echeck\u003c/code\u003e parameter in \u003ccode\u003ePT011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22725\"\u003e#22725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add exception for \u003ccode\u003ectypes.Structure._fields_\u003c/code\u003e (\u003ccode\u003eRUF012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22559\"\u003e#22559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMany fixes are now marked unsafe if they would remove comments:\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22656\"\u003e\u003ccode\u003eB009\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22657\"\u003e\u003ccode\u003eB010\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22658\"\u003e\u003ccode\u003eB013\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22659\"\u003e\u003ccode\u003eB014\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22632\"\u003e\u003ccode\u003eB033\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22662\"\u003e\u003ccode\u003eSIM910\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22661\"\u003e\u003ccode\u003eSIM911\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP007\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22774\"\u003e\u003ccode\u003eUP039\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22773\"\u003e\u003ccode\u003eUP041\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP045\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22767\"\u003e\u003ccode\u003eFURB105\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22681\"\u003e\u003ccode\u003eFURB116\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22680\"\u003e\u003ccode\u003eFURB136\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22679\"\u003e\u003ccode\u003eFURB140\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22670\"\u003e\u003ccode\u003eFURB145\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22669\"\u003e\u003ccode\u003eFURB154\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22668\"\u003e\u003ccode\u003eFURB157\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22667\"\u003e\u003ccode\u003eFURB164\u003c/code\u003e\u003c/a\u003e,\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22666\"\u003e\u003ccode\u003eFURB181\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22665\"\u003e\u003ccode\u003eFURB188\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22663\"\u003e\u003ccode\u003eRUF019\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22664\"\u003e\u003ccode\u003eRUF020\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--exit-non-zero-on-format\u003c/code\u003e to formatter exit codes section (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22761\"\u003e#22761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eFastAPI\u003c/code\u003e] Document fix safety for \u003ccode\u003eFAST001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22655\"\u003e#22655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Tweak explanation to focus on latency/efficiency tradeoff (\u003ccode\u003eASYNC110\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22715\"\u003e#22715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePD002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22561\"\u003e#22561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB101\u003c/code\u003e) (\u003ca href=...\n\n_Description has been truncated_","html_url":"https://github.com/MinBZK/amt/pull/659","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinBZK%2Famt/issues/659","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/659/packages"},{"uuid":"3810509873","node_id":"PR_kwDOLzgXB869BIrn","number":650,"state":"closed","title":"Bump the allpip group across 1 directory with 27 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-19T07:59:05.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-13T20:39:19.000Z","updated_at":"2026-01-19T07:59:08.000Z","time_to_close":472786,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"allpip","update_count":27,"packages":[{"name":"fastapi","old_version":"0.124.0","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"alembic","old_version":"1.17.2","new_version":"1.18.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sqlalchemy","old_version":"2.0.44","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"sqlalchemy-utils","old_version":"0.42.0","new_version":"0.42.1","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"},{"name":"aiosqlite","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"python-multipart","old_version":"0.0.20","new_version":"0.0.21","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"vcrpy","old_version":"8.1.0","new_version":"8.1.1","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"coverage","old_version":"7.13.0","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"ruff","old_version":"0.14.8","new_version":"0.14.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pre-commit","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pyright","old_version":"1.1.407","new_version":"1.1.408","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"anyio","old_version":"4.12.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"build","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pypa/build"},{"name":"certifi","old_version":"2025.11.12","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"filelock","old_version":"3.20.1","new_version":"3.20.3","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fsspec","old_version":"2025.12.0","new_version":"2026.1.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"identify","old_version":"2.6.15","new_version":"2.6.16","repository_url":"https://github.com/pre-commit/identify"},{"name":"jaraco-context","old_version":"6.0.1","new_version":"6.1.0","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"jaraco-functools","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/jaraco/jaraco.functools"},{"name":"json5","old_version":"0.12.1","new_version":"0.13.0","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"pathspec","old_version":"0.12.1","new_version":"1.0.3","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"pbs-installer","old_version":"2025.12.5","new_version":"2025.12.17","repository_url":"https://github.com/frostming/pbs-installer"},{"name":"tomlkit","old_version":"0.13.3","new_version":"0.14.0","repository_url":"https://github.com/sdispater/tomlkit"},{"name":"trove-classifiers","old_version":"2025.12.1.14","new_version":"2026.1.12.15","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"}],"path":null,"ecosystem":"pip"},"body":"Bumps the allpip group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.124.0` | `0.128.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.17.2` | `1.18.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.38.0` | `0.40.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.44` | `2.0.45` |\n| [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) | `0.42.0` | `0.42.1` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.21.0` | `0.22.1` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.20` | `0.0.21` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `8.1.0` | `8.1.1` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.0` | `7.13.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.14.11` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.0` | `4.5.1` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.407` | `1.1.408` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.0` | `4.12.1` |\n| [build](https://github.com/pypa/build) | `1.3.0` | `1.4.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.11.12` | `2026.1.4` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.20.1` | `3.20.3` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.12.0` | `2026.1.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.15` | `2.6.16` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.0.1` | `6.1.0` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) | `4.3.0` | `4.4.0` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.1` | `0.13.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `0.12.1` | `1.0.3` |\n| [pbs-installer](https://github.com/frostming/pbs-installer) | `2025.12.5` | `2025.12.17` |\n| [tomlkit](https://github.com/sdispater/tomlkit) | `0.13.3` | `0.14.0` |\n| [trove-classifiers](https://github.com/pypa/trove-classifiers) | `2025.12.1.14` | `2026.1.12.15` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n\n\nUpdates `fastapi` from 0.124.0 to 0.128.0\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.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\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✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\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\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\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\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\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🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\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 missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\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👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\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👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\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👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\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 scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\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\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\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 LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\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⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\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\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\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\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/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.124.0...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.17.2 to 1.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.0\u003c/h1\u003e\n\u003cp\u003eReleased: January 9, 2026\u003c/p\u003e\n\u003ch2\u003efeature\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [operations]\u003c/strong\u003e When alembic is run in \u0026quot;verbose\u0026quot; mode, alembic now logs a message to\nindicate from which file is used to load the configuration.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1737\"\u003e#1737\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Autogenerate reflection sweeps now use the \u0026quot;bulk\u0026quot; inspector methods\nintroduced in SQLAlchemy 2.0, which for selected dialects including\nPostgreSQL and Oracle use batched queries to reflect whole collections of\ntables using O(1) queries rather than O(N).\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Release 1.18.0 introduces a plugin system that allows for automatic\nloading of third-party extensions as well as configurable autogenerate\ncompare functionality on a per-environment basis.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003ePlugin\u003c/code\u003e class provides a common interface for extensions that\nregister handlers among Alembic's existing extension points such as\n\u003ccode\u003eOperations.register_operation()\u003c/code\u003e and\n\u003ccode\u003eOperations.implementation_for()\u003c/code\u003e. A new interface for registering\nautogenerate comparison handlers,\n\u003ccode\u003ePlugin.add_autogenerate_comparator()\u003c/code\u003e, provides for autogenerate\ncompare functionality that may be custom-configured on a per-environment\nbasis using the new\n\u003ccode\u003eEnvironmentContext.configure.autogenerate_plugins\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eThe change does not impact well known Alembic add-ons such as\n\u003ccode\u003ealembic-utils\u003c/code\u003e, which continue to work as before; however, such add-ons\nhave the option to provide plugin entrypoints going forward.\u003c/p\u003e\n\u003cp\u003eAs part of this change, Alembic's autogenerate compare functionality is\nreorganized into a series of internal plugins under the\n\u003ccode\u003ealembic.autogenerate\u003c/code\u003e namespace, which may be individually or\ncollectively identified for inclusion and/or exclusion within the\n\u003ccode\u003eEnvironmentContext.configure()\u003c/code\u003e call using a new parameter\n\u003ccode\u003eEnvironmentContext.configure.autogenerate_plugins\u003c/code\u003e. This\nparameter is also where third party comparison plugins may also be\nindicated.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003ealembic.plugins.toplevel\u003c/code\u003e for complete documentation on\nthe new \u003ccode\u003ePlugin\u003c/code\u003e class as well as autogenerate-specific usage\ninstructions.\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.38.0 to 0.40.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.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 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/2772\"\u003eKludex/uvicorn#2772\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.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return 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/2769\"\u003eKludex/uvicorn#2769\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/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\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.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.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/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.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\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/Kludex/uvicorn/commit/9ff60042a53cd1bbfd5580ab0a91ea2d1d8f2f8c\"\u003e\u003ccode\u003e9ff6004\u003c/code\u003e\u003c/a\u003e Version 0.40.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2773\"\u003e#2773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/19df042c54c1562f058daf021d6f7bd1d5ed621c\"\u003e\u003ccode\u003e19df042\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/865ce7c0b4329a384273a6628eceb8d597989521\"\u003e\u003ccode\u003e865ce7c\u003c/code\u003e\u003c/a\u003e Run strict mypy on test suite (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2771\"\u003e#2771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4f40b8495772eb3a1ab3613ffd7be5156f8e1389\"\u003e\u003ccode\u003e4f40b84\u003c/code\u003e\u003c/a\u003e Version 0.39.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2770\"\u003e#2770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5692dfc416f9e65aee5028e55d119313d8d3ab0f\"\u003e\u003ccode\u003e5692dfc\u003c/code\u003e\u003c/a\u003e fix(websockets): Send close frame on ASGI return (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4194764a26824e5d8ddd1fa673df78dff82966e0\"\u003e\u003ccode\u003e4194764\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2763\"\u003e#2763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d94bf28743de545d2d4b150f022203a5178cb705\"\u003e\u003ccode\u003ed94bf28\u003c/code\u003e\u003c/a\u003e explicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8ae0bcbecb0a655789abf0c2dd4200848fc68a30\"\u003e\u003ccode\u003e8ae0bcb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4744ff9a1a4888c76ea160328cc9dcc2680c2c71\"\u003e\u003ccode\u003e4744ff9\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0391372376c264604a0475b0864bcbf3a8705352\"\u003e\u003ccode\u003e0391372\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.8.0 to 7.1.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2746\"\u003e#2746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.44 to 2.0.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.45\u003c/h1\u003e\n\u003cp\u003eReleased: December 9, 2025\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where calling \u003ccode\u003eMapper.add_property()\u003c/code\u003e within mapper event\nhooks such as \u003ccode\u003eMapperEvents.instrument_class()\u003c/code\u003e,\n\u003ccode\u003eMapperEvents.after_mapper_constructed()\u003c/code\u003e, or\n\u003ccode\u003eMapperEvents.before_mapper_configured()\u003c/code\u003e would raise an\n\u003ccode\u003eAttributeError\u003c/code\u003e because the mapper's internal property collections were\nnot yet initialized. The \u003ccode\u003eMapper.add_property()\u003c/code\u003e method now handles\nearly-stage property additions correctly, allowing properties including\ncolumn properties, deferred columns, and relationships to be added during\nmapper initialization events.  Pull request courtesy G Allajmi.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12858\"\u003e#12858\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue in Python 3.14 where dataclass transformation would fail when\na mapped class using \u003ccode\u003eMappedAsDataclass\u003c/code\u003e included a\n\u003ccode\u003erelationship()\u003c/code\u003e referencing a class that was not available at\nruntime (e.g., within a \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e block). This occurred when using\nPython 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e deferred annotations feature, which is the\ndefault behavior without a \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e\ndirective.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12952\"\u003e#12952\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eexamples\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[examples] [bug]\u003c/strong\u003e Fixed the \u0026quot;short_selects\u0026quot; performance example where the cache was being\nused in all the examples, making it impossible to compare performance with\nand without the cache.   Less important comparisons like \u0026quot;lambdas\u0026quot; and\n\u0026quot;baked queries\u0026quot; have been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Some improvements to the \u003ccode\u003e_sql.ClauseElement.params()\u003c/code\u003e method to\nreplace bound parameters in a query were made, however the ultimate issue\nin \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e involving ORM \u003ccode\u003e_orm.aliased()\u003c/code\u003e cannot be fixed fully\nuntil 2.1, where the method is being rewritten to work without relying on\nCore cloned traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003eColumnOperators.in_()\u003c/code\u003e operator with a\nnested \u003ccode\u003eCompoundSelect\u003c/code\u003e statement (e.g. an \u003ccode\u003eINTERSECT\u003c/code\u003e of\n\u003ccode\u003eUNION\u003c/code\u003e queries) would raise a \u003ccode\u003eNotImplementedError\u003c/code\u003e when the\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy-utils` from 0.42.0 to 0.42.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError with Sequence defaults in instant_defaults_listener by \u003ca href=\"https://github.com/wadinj\"\u003e\u003ccode\u003e@​wadinj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/pull/793\"\u003ekvesteri/sqlalchemy-utils#793\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.1 (2025-12-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/793\"\u003e#793\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/kvesteri/sqlalchemy-utils/commit/ed0cc46f96d3065331ff34c0713da23ee90920a0\"\u003e\u003ccode\u003eed0cc46\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/11cf519375af877839d025c2d4ce402db035b81f\"\u003e\u003ccode\u003e11cf519\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.5.0 to 2.6.0 in /requirements/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/881fed424d9e2b360c82e4318a4842a85514981b\"\u003e\u003ccode\u003e881fed4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/797\"\u003e#797\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/81a5f82b2d1b104a9a377103262d3c0b64ad60d6\"\u003e\u003ccode\u003e81a5f82\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e8b12f849325fd910c89e14017a572b1bd4066a4\"\u003e\u003ccode\u003ee8b12f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/794\"\u003e#794\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/19570dcae67c84e50cb37ea06db717429fc188e7\"\u003e\u003ccode\u003e19570dc\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/4a7d764a4f490614cf1e597f1101bd7153573141\"\u003e\u003ccode\u003e4a7d764\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9645938138e998190d20bbd6c955eeca6a024d4d\"\u003e\u003ccode\u003e9645938\u003c/code\u003e\u003c/a\u003e Fix AttributeError with Sequence defaults in instant_defaults_listener\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e4b9f72230fde81e00ee4f9e34839f6d635fd2f3\"\u003e\u003ccode\u003ee4b9f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/792\"\u003e#792\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/755064d8add7496fb5002c0eaa309542fab7a301\"\u003e\u003ccode\u003e755064d\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.42.0...0.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiosqlite` from 0.21.0 to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.1\u003c/h2\u003e\n\u003cp\u003eBug fix release\u003c/p\u003e\n\u003cp\u003eNOTE: Starting with \u003ccode\u003ev0.22.0\u003c/code\u003e, the \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e object no longer\ninherits from \u003ccode\u003ethreading.Thread\u003c/code\u003e. If not using aiosqlite as a context manager,\nclients must \u003ccode\u003eawait connection.close()\u003c/code\u003e or call \u003ccode\u003econnection.stop()\u003c/code\u003e to ensure\nthe helper thread is completed and terminated correctly. A \u003ccode\u003eResourceWarning\u003c/code\u003e\nwill be emitted for any connection that is garbage collected without being\nclosed or stopped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded synchronous \u003ccode\u003estop()\u003c/code\u003e method to \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e to enable safe\ncleanup and termination of the background thread without dependence\non having an active event loop (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.22.0...v0.22.1\n     2\tAmethyst Reese\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cp\u003eFeature release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eset_authorizer\u003c/code\u003e query access controls (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWait for transaction queue to complete when closing connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit warning when connection goes out of scope without being closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on \u003ccode\u003etyping_extensions\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.21.0...v0.22.0\n     1\tAlec Berryman\n     1\tAmethyst Reese\n     1\tDavid Andreoletti\n     1\tMarkus Heidelberg\n     1\tbeerpsi\n    19\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/9b127cecc7de843bf4f343b6da63b641866533fb\"\u003e\u003ccode\u003e9b127ce\u003c/code\u003e\u003c/a\u003e Version bump v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/5c3f61c1ea49401f2716d8f58d494e76ca766921\"\u003e\u003ccode\u003e5c3f61c\u003c/code\u003e\u003c/a\u003e Improve stop semantics for connections (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/a869d73678adbc14472e4ac2c31f4e706efe8ef3\"\u003e\u003ccode\u003ea869d73\u003c/code\u003e\u003c/a\u003e Version bump v0.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/1cd60adcab12347577150a6fa6c7d92b7b86d989\"\u003e\u003ccode\u003e1cd60ad\u003c/code\u003e\u003c/a\u003e Emit warning if connection is deleted before it is closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/611d7b4f29fc3d7df6c173b2e79b0892e9d249aa\"\u003e\u003ccode\u003e611d7b4\u003c/code\u003e\u003c/a\u003e Add set_authorizer support for fine-grained access control (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/81d00c8f1676851c8634ca98f99e0973083ea75f\"\u003e\u003ccode\u003e81d00c8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/7a26722f7e6da6a1ae0febf515b4624794173fcc\"\u003e\u003ccode\u003e7a26722\u003c/code\u003e\u003c/a\u003e Bump coverage[toml] from 7.8.0 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/445754087ec452f888cc152debf79590d8a25d86\"\u003e\u003ccode\u003e4457540\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.2.0 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/b650dad318ad72e582b7ba1143cc05f270f8ab6b\"\u003e\u003ccode\u003eb650dad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/065ffdd1291693c5e69d2f3efff17e351d9a0163\"\u003e\u003ccode\u003e065ffdd\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.15.0 to 1.19.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.21.0...v0.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.20 to 0.0.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003eKludex/python-multipart#216\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/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/203\"\u003eKludex/python-multipart#203\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/python-multipart/compare/0.0.20...0.0.21\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21\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/Kludex/python-multipart/blob/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.21 (2025-12-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003e#216\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/Kludex/python-multipart/commit/1f72955602445706b5517a6f58a720796ad3d96a\"\u003e\u003ccode\u003e1f72955\u003c/code\u003e\u003c/a\u003e Version 0.0.21 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/47ecfed3533ed8dcafd800508dbf594438fd0949\"\u003e\u003ccode\u003e47ecfed\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop EOL 3.8 and 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/216\"\u003e#216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/f18b70941b727c947f7e6b17e1c3321f5ad3afb6\"\u003e\u003ccode\u003ef18b709\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 4 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/214\"\u003e#214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b388e9a7a82605cc8613798926afe8f6074cb372\"\u003e\u003ccode\u003eb388e9a\u003c/code\u003e\u003c/a\u003e chore: use depedency-groups in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6113e750971918a51f79c3bb2585e95ed1c53245\"\u003e\u003ccode\u003e6113e75\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/7aa8d9932b6b20c0a1969e672433044e27a3fbc1\"\u003e\u003ccode\u003e7aa8d99\u003c/code\u003e\u003c/a\u003e Bump ruff from 0.8.0 to 0.11.7 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/203\"\u003e#203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3e909f52a774365b8817a52d4312db4ba8061d07\"\u003e\u003ccode\u003e3e909f5\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/198\"\u003e#198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `vcrpy` from 8.1.0 to 8.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kevin1024/vcrpy/releases\"\u003evcrpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix sync requests in async contexts for HTTPX (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/965\"\u003e#965\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/seowalex\"\u003e\u003ccode\u003e@​seowalex\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: bump peter-evans/create-pull-request from 7 to 8 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/969\"\u003e#969\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/kevin1024/vcrpy/blob/master/docs/changelog.rst\"\u003evcrpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cp\u003eFor a full list of triaged issues, bugs and PRs and what release they are targeted for please see the following link.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eROADMAP MILESTONES \u0026lt;https://github.com/kevin1024/vcrpy/milestones\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cp\u003eAll help in providing PRs to close out bug issues is appreciated. Even if that is providing a repo that fully replicates issues. We have very generous contributors that have added these to bug issues which meant another contributor picked up the bug and closed it out.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e8.1.1\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix sync requests in async contexts for HTTPX (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/965\"\u003e#965\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/seowalex\"\u003e\u003ccode\u003e@​seowalex\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: bump peter-evans/create-pull-request from 7 to 8 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e8.1.0\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable brotli decompression if available (via \u003ccode\u003ebrotli\u003c/code\u003e, \u003ccode\u003ebrotlipy\u003c/code\u003e or \u003ccode\u003ebrotlicffi\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/620\"\u003e#620\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/immerrr\"\u003e\u003ccode\u003e@​immerrr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aiohttp allowing both \u003ccode\u003edata\u003c/code\u003e and \u003ccode\u003ejson\u003c/code\u003e arguments when one is None (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/624\"\u003e#624\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/leorochael\"\u003e\u003ccode\u003e@​leorochael\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix usage of io-like interface with VCR.py (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/906\"\u003e#906\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/tito\"\u003e\u003ccode\u003e@​tito\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/kevdevg\"\u003e\u003ccode\u003e@​kevdevg\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate to declarative Python package config (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/767\"\u003e#767\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/deronnax\"\u003e\u003ccode\u003e@​deronnax\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious linting fixes - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/955\"\u003e#955\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e8.0.0\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBREAKING: Drop support for Python 3.9 (major version bump) - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBREAKING: Drop support for urllib3 \u0026lt; 2 - fixes CVE warnings from urllib3 1.x (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/926\"\u003e#926\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/880\"\u003e#880\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNew feature: \u003ccode\u003edrop_unused_requests\u003c/code\u003e option to remove unused interactions from cassettes (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/763\"\u003e#763\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/danielnsilva\"\u003e\u003ccode\u003e@​danielnsilva\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRewrite httpx support to patch httpcore instead of httpx (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/943\"\u003e#943\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/seowalex\"\u003e\u003ccode\u003e@​seowalex\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eFixes \u003ccode\u003ehttpx.ResponseNotRead\u003c/code\u003e exceptions (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/832\"\u003e#832\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/834\"\u003e#834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixes \u003ccode\u003eKeyError: 'follow_redirects'\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdds support for custom httpx transports\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix HTTPS proxy handling - proxy address no longer ends up in cassette URIs (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/809\"\u003e#809\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/914\"\u003e#914\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/alga\"\u003e\u003ccode\u003e@​alga\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eiscoroutinefunction\u003c/code\u003e deprecation warning on Python 3.14 - thanks \u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly log message if response is appended - thanks \u003ca href=\"https://github.com/talfus-laddus\"\u003e\u003ccode\u003e@​talfus-laddus\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize urllib.parse calls - thanks \u003ca href=\"https://github.com/Martin-Brunthaler\"\u003e\u003ccode\u003e@​Martin-Brunthaler\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI for Ubuntu 24.04 - thanks \u003ca href=\"https://github.com/hartwork\"\u003e\u003ccode\u003e@​hartwork\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious CI improvements: migrate to uv, update GitHub Actions - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious linting and test improvements - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/hartwork\"\u003e\u003ccode\u003e@​hartwork\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e7.0.0\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for python 3.8 (major version bump) - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious linting and test fixes - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix for urllib2\u0026gt;=2.3.0 - missing version_string (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/888\"\u003e#888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix for asyncio.run - thanks \u003ca href=\"https://github.com/alekeik1\"\u003e\u003ccode\u003e@​alekeik1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e6.0.2\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure body is consumed only once (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/846\"\u003e#846\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/sathieu\"\u003e\u003ccode\u003e@​sathieu\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePermit urllib3 2.x for non-PyPy Python \u0026gt;=3.10\u003c/li\u003e\n\u003cli\u003eFix typos in test commands - thanks \u003ca href=\"https://github.com/chuckwondo\"\u003e\u003ccode\u003e@​chuckwondo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral test and workflow improvements - thanks \u003ca href=\"https://github.com/hartwork\"\u003e\u003ccode\u003e@​hartwork\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e6.0.1\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix with to Tornado cassette generator (thanks \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e6.0.0\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/kevin1024/vcrpy/commit/9b586631e4131fce906207c40eeb71e41df6c23a\"\u003e\u003ccode\u003e9b58663\u003c/code\u003e\u003c/a\u003e Release v8.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/3780f580409a437d98a257a0455d4a01b2664dce\"\u003e\u003ccode\u003e3780f58\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/create-pull-request from 7 to 8 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/1b70394f3592d51f6ac88c86ee05e5915064c9ea\"\u003e\u003ccode\u003e1b70394\u003c/code\u003e\u003c/a\u003e Split sync and async HTTPX handlers (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/ca4b1e19c2e9259690987e18587f70362fe98858\"\u003e\u003ccode\u003eca4b1e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/960\"\u003e#960\u003c/a\u003e from kevin1024/precommit-autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/8d47ca10d086c88fb755560d1dca3b2132cf20d7\"\u003e\u003ccode\u003e8d47ca1\u003c/code\u003e\u003c/a\u003e pre-commit: Autoupdate\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kevin1024/vcrpy/compare/v8.1.0...v8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.0 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.0...7.13.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.14.8 to 0.14.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.14.11\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-08.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsolidate diagnostics for matched disable/enable suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22099\"\u003e#22099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReport diagnostics for invalid/unmatched range suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21908\"\u003e#21908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Passing positional argument into \u003ccode\u003eairflow.lineage.hook.HookLineageCollector.create_asset\u003c/code\u003e is not allowed (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22046\"\u003e#22046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003eFURB192\u003c/code\u003e fix as always unsafe (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22210\"\u003e#22210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003enon-empty-init-module\u003c/code\u003e (\u003ccode\u003eRUF067\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22143\"\u003e#22143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix GitHub format for multi-line diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22108\"\u003e#22108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-unused-arguments\u003c/code\u003e] Mark \u003ccode\u003e**kwargs\u003c/code\u003e in \u003ccode\u003eTypeVar\u003c/code\u003e as used (\u003ccode\u003eARG001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22214\"\u003e#22214\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehelp:\u003c/code\u003e subdiagnostics for several Ruff rules that can sometimes appear to disagree with \u003ccode\u003ety\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22331\"\u003e#22331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Demote \u003ccode\u003ePLW1510\u003c/code\u003e fix to display-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22318\"\u003e#22318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Ignore identical members (\u003ccode\u003ePLR1714\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22220\"\u003e#22220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve diagnostic range for \u003ccode\u003ePLC0206\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22312\"\u003e#22312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Improve fix title for \u003ccode\u003eRUF102\u003c/code\u003e invalid rule code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22100\"\u003e#22100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e]: Avoid unnecessary builtins import for \u003ccode\u003eSIM105\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22358\"\u003e#22358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Python 3.15 as valid \u003ccode\u003etarget-version\u003c/code\u003e value in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22419\"\u003e#22419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCheck \u003ccode\u003erequired-version\u003c/code\u003e before parsing rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22410\"\u003e#22410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude configured \u003ccode\u003esrc\u003c/code\u003e directories when resolving graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22451\"\u003e#22451\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003eT201\u003c/code\u003e suggestion to not use root logger to satisfy \u003ccode\u003eLOG015\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22059\"\u003e#22059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eiter\u003c/code\u003e example in unsafe fixes doc (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22118\"\u003e#22118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8_print\u003c/code\u003e] better suggestion for \u003ccode\u003ebasicConfig\u003c/code\u003e in \u003ccode\u003eT201\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22101\"\u003e#22101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Restore the fix safety docs for \u003ccode\u003ePLW0133\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22211\"\u003e#22211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Jupyter notebook discovery info for editors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22447\"\u003e#22447\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/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\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/cenviity\"\u003e\u003ccode\u003e@​cenviity\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/njhearp\"\u003e\u003ccode\u003e@​njhearp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cbachhuber\"\u003e\u003ccode\u003e@​cbachhuber\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelle-openai\"\u003e\u003ccode\u003e@​jelle-openai\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\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.14.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-08.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsolidate diagnostics for matched disable/enable suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22099\"\u003e#22099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReport diagnostics for invalid/unmatched range suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21908\"\u003e#21908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Passing positional argument into \u003ccode\u003eairflow.lineage.hook.HookLineageCollector.create_asset\u003c/code\u003e is not allowed (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22046\"\u003e#22046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003eFURB192\u003c/code\u003e fix as always unsafe (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22210\"\u003e#22210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003enon-empty-init-module\u003c/code\u003e (\u003ccode\u003eRUF067\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22143\"\u003e#22143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix GitHub format for multi-line diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22108\"\u003e#22108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-unused-arguments\u003c/code\u003e] Mark \u003ccode\u003e**kwargs\u003c/code\u003e in \u003ccode\u003eTypeVar\u003c/code\u003e as used (\u003ccode\u003eARG001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22214\"\u003e#22214\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehelp:\u003c/code\u003e subdiagnostics for several Ruff rules that can sometimes appear to disagree with \u003ccode\u003ety\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22331\"\u003e#22331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Demote \u003ccode\u003ePLW1510\u003c/code\u003e fix to display-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22318\"\u003e#22318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Ignore identical members (\u003ccode\u003ePLR1714\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22220\"\u003e#22220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve diagnostic range for \u003ccode\u003ePLC0206\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22312\"\u003e#22312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Improve fix title for \u003ccode\u003eRUF102\u003c/code\u003e invalid rule code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22100\"\u003e#22100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e]: Avoid unnecessary builtins import for \u003ccode\u003eSIM105\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22358\"\u003e#22358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Python 3.15 as valid \u003ccode\u003etarget-version\u003c/code\u003e value in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22419\"\u003e#22419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCheck \u003ccode\u003erequired-version\u003c/code\u003e before parsing rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22410\"\u003e#22410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude configured \u003ccode\u003esrc\u003c/code\u003e directories when resolving graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22451\"\u003e#22451\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003eT201\u003c/code\u003e suggestion to not use root logger to satisfy \u003ccode\u003eLOG015\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22059\"\u003e#22059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eiter\u003c/code\u003e example in unsafe fixes doc (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22118\"\u003e#22118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8_print\u003c/code\u003e] better suggestion for \u003ccode\u003ebasicConfig\u003c/code\u003e in \u003ccode\u003eT201\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22101\"\u003e#22101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Restore the fix safety docs for \u003ccode\u003ePLW0133\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22211\"\u003e#22211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Jupyter notebook discovery info for editors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22447\"\u003e#22447\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/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\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/cenviity\"\u003e\u003ccode\u003e@​cenviity\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/njhearp\"\u003e\u003ccode\u003e@​njhearp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cbachhuber\"\u003e\u003ccode\u003e@​cbachhuber\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelle-openai\"\u003e\u003ccode\u003e@​jelle-openai\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/ValdonVitija\"\u003e\u003ccode\u003e@​ValdonVitija\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/astral-sh/ruff/commit/c920cf8cdb247a9fd8e15a4c9d2efa838f7a78a3\"\u003e\u003ccode\u003ec920cf8\u003c/code\u003e\u003c/a\u003e Bump 0.14.11 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22462\"\u003e#22462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb757b5a79888f28264f629b5667a0514071f7d6\"\u003e\u003ccode\u003ebb757b5\u003c/code\u003e\u003c/a\u003e [ty] Don't show diagnostics for excluded files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22455\"\u003e#22455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1f49e8ef518b75207e155595aba57acd48205078\"\u003e\u003ccode\u003e1f49e8e\u003c/code\u003e\u003c/a\u003e Include configured \u003ccode\u003esrc\u003c/code\u003e directories when resolving graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22451\"\u003e#22451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/701f5134ab7c1a860145dccc8abb3716a3f89fe7\"\u003e\u003ccode\u003e701f513\u003c/code\u003e\u003c/a\u003e [ty] Only consider fully static pivots when deriving transitive constraints (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eea9ad83528a7f492662f6427cdbb6fc2f655bb5\"\u003e\u003ccode\u003eeea9ad8\u003c/code\u003e\u003c/a\u003e Pin maturin version (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22454\"\u003e#22454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eeac2bd3eed2f4b8f4a71e0c945721481b25efc0\"\u003e\u003ccode\u003eeeac2bd\u003c/code\u003e\u003c/a\u003e [ty] Optimize union building for unions with many enum-literal members (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22363\"\u003e#22363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7319c37f4eb063e9590e1f09c8e92d7dabc63403\"\u003e\u003ccode\u003e7319c37\u003c/code\u003e\u003c/a\u003e docs: fix jupyter notebook discovery info for editors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22447\"\u003e#22447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/805503c19a6b74c5803e10123077997e29a0da37\"\u003e\u003ccode\u003e805503c\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eruff\u003c/code\u003e] Improve fix title for \u003ccode\u003eRUF102\u003c/code\u003e invalid rule code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22100\"\u003e#22100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/68a2f6c57d70052d0805b46b0e3a2538598b856f\"\u003e\u003ccode\u003e68a2f6c\u003c/code\u003e\u003c/a\u003e [ty] Fix \u003ccode\u003esuper()\u003c/code\u003e with TypeVar-annotated \u003ccode\u003eself\u003c/code\u003e and \u003ccode\u003ecls\u003c/code\u003e parameter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22208\"\u003e#22208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/abaa735e1d027cf458a2ab83d8a422d74111580c\"\u003e\u003ccode\u003eabaa735\u003c/code\u003e\u003c/a\u003e [ty] Improve \u003ccode\u003eUnionBuilder\u003c/code\u003e performance by changing \u003ccode\u003eType::is_subtype_of\u003c/code\u003e cal...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.8...0.14.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\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/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\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/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` from 1.1.407 to 1.1.408\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/81b795a41ddcc3c77218d8c8e406983e39852285\"\u003e\u003ccode\u003e81b795a\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.408 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.407...v1.1.408\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.12.0 to 4.12.1\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.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\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/a0dccbd78d75886247ae7846b460fd390cc94fbd\"\u003e\u003ccode\u003ea0dccbd\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e1121a735c977c00c18b3a581d28daf83a279833\"\u003e\u003ccode\u003ee1121a7\u003c/code\u003e\u003c/a\u003e Enabled tests for the 4.12.x branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/69ab43e549517ce554f84365fed9da90e806c303\"\u003e\u003ccode\u003e69ab43e\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4f4b33ed56edd1bc4785a368a103ad8138730d91\"\u003e\u003ccode\u003e4f4b33e\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eBlockingPortal.__new__\u003c/code\u003e hack (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/af17d89b80ebbd526215e2dbd025b284730aaa3f\"\u003e\u003ccode\u003eaf17d89\u003c/code\u003e\u003c/a\u003e Replaced the NoCurrentAsyncBackend exception with NoEventLoopError (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1049\"\u003e#1049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4310264312a2e86e792481bdb05bdb381678a6b5\"\u003e\u003ccode\u003e4310264\u003c/code\u003e\u003c/a\u003e Updated pre-commit modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0cc6723ba5a2fdaa98a24852d3681c4ed99b8863\"\u003e\u003ccode\u003e0cc6723\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1051\"\u003e#1051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.12.0...4.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `build` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/releases\"\u003ebuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--quiet\u003c/code\u003e flag (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to dump PEP 517 metadata with \u003ccode\u003e--metadata\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/940\"\u003e#940\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/943\"\u003e#943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eUV\u003c/code\u003e environment variable (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove a workaround for 3.14b1 (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/960\"\u003e#960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn 3.14 final release, \u003ccode\u003ecolor\u003c/code\u003e defaults to \u003ccode\u003eTrue\u003c/code\u003e already (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/962\"\u003e#962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass sp-repo-review (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn pytest configuration, \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/950\"\u003e#950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSplit up typing and mypy (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/944\"\u003e#944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etypes-colorama\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn docs, first argument for \u003ccode\u003e_has_dependency\u003c/code\u003e is a name (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/970\"\u003e#970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix test failure when \u003ccode\u003eflit-core\u003c/code\u003e is installed (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/921\"\u003e#921\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/pypa/build/blob/main/CHANGELOG.rst\"\u003ebuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2026-01-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--quiet\u003c/code\u003e flag\n(:pr:\u003ccode\u003e947\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to dump PEP 517 metadata with \u003ccode\u003e--metadata\u003c/code\u003e\n(:pr:\u003ccode\u003e940\u003c/code\u003e, :pr:\u003ccode\u003e943\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eUV\u003c/code\u003e environment variable\n(:pr:\u003ccode\u003e971\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRemove a workaround for 3.14b1\n(:pr:\u003ccode\u003e960\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn 3.14 final release, \u003ccode\u003ecolor\u003c/code\u003e defaults to \u003ccode\u003eTrue\u003c/code\u003e already\n(:pr:\u003ccode\u003e962\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePass sp-repo-review\n(:pr:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn pytest configuration, \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e\n(:pr:\u003ccode\u003e950\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSplit up typing and mypy\n(:pr:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etypes-colorama\u003c/code\u003e\n(:pr:\u003ccode\u003e945\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn docs, first argument for \u003ccode\u003e_has_dependency\u003c/code\u003e is a name\n(PR :pr:\u003ccode\u003e970\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix test failure when \u003ccode\u003eflit-core\u003c/code\u003e is installed\n(PR :pr:\u003ccode\u003e921\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/pypa/build/commit/54f238d1664124e06a68c6c22fd5b1418fa5feb2\"\u003e\u003ccode\u003e54f238d\u003c/code\u003e\u003c/a\u003e chore: prepare for 1.4.0 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/972\"\u003e#972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/f219276a6e2c6c8222780ba518ce52444a91deaa\"\u003e\u003ccode\u003ef219276\u003c/code\u003e\u003c/a\u003e docs: first argument for _has_dependency is a name (\u003ca href=\"https://redirect.github.com/pypa/build/issues/970\"\u003e#970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http...\n\n_Description has been truncated_","html_url":"https://github.com/MinBZK/amt/pull/650","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinBZK%2Famt/issues/650","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/650/packages"},{"uuid":"3791650391","node_id":"PR_kwDOLzgXB868DtZr","number":642,"state":"closed","title":"Bump the allpip group across 1 directory with 21 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-08T23:43:13.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-08T07:06:32.000Z","updated_at":"2026-01-08T23:43:14.000Z","time_to_close":59801,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"allpip","update_count":21,"packages":[{"name":"fastapi","old_version":"0.124.0","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sqlalchemy","old_version":"2.0.44","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"sqlalchemy-utils","old_version":"0.42.0","new_version":"0.42.1","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"},{"name":"authlib","old_version":"1.6.5","new_version":"1.6.6","repository_url":"https://github.com/authlib/authlib"},{"name":"aiosqlite","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"python-multipart","old_version":"0.0.20","new_version":"0.0.21","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"vcrpy","old_version":"8.1.0","new_version":"8.1.1","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"coverage","old_version":"7.13.0","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"ruff","old_version":"0.14.8","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pre-commit","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"anyio","old_version":"4.12.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2025.11.12","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"filelock","old_version":"3.20.1","new_version":"3.20.2","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jaraco-context","old_version":"6.0.1","new_version":"6.0.2","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"jaraco-functools","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/jaraco/jaraco.functools"},{"name":"json5","old_version":"0.12.1","new_version":"0.13.0","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"pathspec","old_version":"0.12.1","new_version":"1.0.2","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"pbs-installer","old_version":"2025.12.5","new_version":"2025.12.17","repository_url":"https://github.com/frostming/pbs-installer"},{"name":"virtualenv","old_version":"20.35.4","new_version":"20.36.0","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the allpip group with 21 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.124.0` | `0.128.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.38.0` | `0.40.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.44` | `2.0.45` |\n| [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) | `0.42.0` | `0.42.1` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.5` | `1.6.6` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.21.0` | `0.22.1` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.20` | `0.0.21` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `8.1.0` | `8.1.1` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.0` | `7.13.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.14.10` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.0` | `4.5.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.0` | `4.12.1` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.11.12` | `2026.1.4` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.20.1` | `3.20.2` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.0.1` | `6.0.2` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) | `4.3.0` | `4.4.0` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.1` | `0.13.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `0.12.1` | `1.0.2` |\n| [pbs-installer](https://github.com/frostming/pbs-installer) | `2025.12.5` | `2025.12.17` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.35.4` | `20.36.0` |\n\n\nUpdates `fastapi` from 0.124.0 to 0.128.0\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.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\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✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\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\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\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\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\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🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\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 missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\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👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\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👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\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👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\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 scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\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\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\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 LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\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⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\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\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\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\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/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.124.0...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.38.0 to 0.40.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.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 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/2772\"\u003eKludex/uvicorn#2772\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.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return 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/2769\"\u003eKludex/uvicorn#2769\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/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\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.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.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/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.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\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/Kludex/uvicorn/commit/9ff60042a53cd1bbfd5580ab0a91ea2d1d8f2f8c\"\u003e\u003ccode\u003e9ff6004\u003c/code\u003e\u003c/a\u003e Version 0.40.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2773\"\u003e#2773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/19df042c54c1562f058daf021d6f7bd1d5ed621c\"\u003e\u003ccode\u003e19df042\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/865ce7c0b4329a384273a6628eceb8d597989521\"\u003e\u003ccode\u003e865ce7c\u003c/code\u003e\u003c/a\u003e Run strict mypy on test suite (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2771\"\u003e#2771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4f40b8495772eb3a1ab3613ffd7be5156f8e1389\"\u003e\u003ccode\u003e4f40b84\u003c/code\u003e\u003c/a\u003e Version 0.39.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2770\"\u003e#2770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5692dfc416f9e65aee5028e55d119313d8d3ab0f\"\u003e\u003ccode\u003e5692dfc\u003c/code\u003e\u003c/a\u003e fix(websockets): Send close frame on ASGI return (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4194764a26824e5d8ddd1fa673df78dff82966e0\"\u003e\u003ccode\u003e4194764\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2763\"\u003e#2763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d94bf28743de545d2d4b150f022203a5178cb705\"\u003e\u003ccode\u003ed94bf28\u003c/code\u003e\u003c/a\u003e explicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8ae0bcbecb0a655789abf0c2dd4200848fc68a30\"\u003e\u003ccode\u003e8ae0bcb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4744ff9a1a4888c76ea160328cc9dcc2680c2c71\"\u003e\u003ccode\u003e4744ff9\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0391372376c264604a0475b0864bcbf3a8705352\"\u003e\u003ccode\u003e0391372\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.8.0 to 7.1.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2746\"\u003e#2746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.44 to 2.0.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.45\u003c/h1\u003e\n\u003cp\u003eReleased: December 9, 2025\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where calling \u003ccode\u003eMapper.add_property()\u003c/code\u003e within mapper event\nhooks such as \u003ccode\u003eMapperEvents.instrument_class()\u003c/code\u003e,\n\u003ccode\u003eMapperEvents.after_mapper_constructed()\u003c/code\u003e, or\n\u003ccode\u003eMapperEvents.before_mapper_configured()\u003c/code\u003e would raise an\n\u003ccode\u003eAttributeError\u003c/code\u003e because the mapper's internal property collections were\nnot yet initialized. The \u003ccode\u003eMapper.add_property()\u003c/code\u003e method now handles\nearly-stage property additions correctly, allowing properties including\ncolumn properties, deferred columns, and relationships to be added during\nmapper initialization events.  Pull request courtesy G Allajmi.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12858\"\u003e#12858\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue in Python 3.14 where dataclass transformation would fail when\na mapped class using \u003ccode\u003eMappedAsDataclass\u003c/code\u003e included a\n\u003ccode\u003erelationship()\u003c/code\u003e referencing a class that was not available at\nruntime (e.g., within a \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e block). This occurred when using\nPython 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e deferred annotations feature, which is the\ndefault behavior without a \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e\ndirective.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12952\"\u003e#12952\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eexamples\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[examples] [bug]\u003c/strong\u003e Fixed the \u0026quot;short_selects\u0026quot; performance example where the cache was being\nused in all the examples, making it impossible to compare performance with\nand without the cache.   Less important comparisons like \u0026quot;lambdas\u0026quot; and\n\u0026quot;baked queries\u0026quot; have been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Some improvements to the \u003ccode\u003e_sql.ClauseElement.params()\u003c/code\u003e method to\nreplace bound parameters in a query were made, however the ultimate issue\nin \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e involving ORM \u003ccode\u003e_orm.aliased()\u003c/code\u003e cannot be fixed fully\nuntil 2.1, where the method is being rewritten to work without relying on\nCore cloned traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003eColumnOperators.in_()\u003c/code\u003e operator with a\nnested \u003ccode\u003eCompoundSelect\u003c/code\u003e statement (e.g. an \u003ccode\u003eINTERSECT\u003c/code\u003e of\n\u003ccode\u003eUNION\u003c/code\u003e queries) would raise a \u003ccode\u003eNotImplementedError\u003c/code\u003e when the\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy-utils` from 0.42.0 to 0.42.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError with Sequence defaults in instant_defaults_listener by \u003ca href=\"https://github.com/wadinj\"\u003e\u003ccode\u003e@​wadinj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/pull/793\"\u003ekvesteri/sqlalchemy-utils#793\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.1 (2025-12-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/793\"\u003e#793\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/kvesteri/sqlalchemy-utils/commit/ed0cc46f96d3065331ff34c0713da23ee90920a0\"\u003e\u003ccode\u003eed0cc46\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/11cf519375af877839d025c2d4ce402db035b81f\"\u003e\u003ccode\u003e11cf519\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.5.0 to 2.6.0 in /requirements/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/881fed424d9e2b360c82e4318a4842a85514981b\"\u003e\u003ccode\u003e881fed4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/797\"\u003e#797\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/81a5f82b2d1b104a9a377103262d3c0b64ad60d6\"\u003e\u003ccode\u003e81a5f82\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e8b12f849325fd910c89e14017a572b1bd4066a4\"\u003e\u003ccode\u003ee8b12f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/794\"\u003e#794\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/19570dcae67c84e50cb37ea06db717429fc188e7\"\u003e\u003ccode\u003e19570dc\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/4a7d764a4f490614cf1e597f1101bd7153573141\"\u003e\u003ccode\u003e4a7d764\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9645938138e998190d20bbd6c955eeca6a024d4d\"\u003e\u003ccode\u003e9645938\u003c/code\u003e\u003c/a\u003e Fix AttributeError with Sequence defaults in instant_defaults_listener\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e4b9f72230fde81e00ee4f9e34839f6d635fd2f3\"\u003e\u003ccode\u003ee4b9f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/792\"\u003e#792\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/755064d8add7496fb5002c0eaa309542fab7a301\"\u003e\u003ccode\u003e755064d\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.42.0...0.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `authlib` from 1.6.5 to 1.6.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/authlib/blob/main/docs/changelog.rst\"\u003eauthlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.6\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on Dec 12, 2025\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_jwt_config\u003c/code\u003e takes a \u003ccode\u003eclient\u003c/code\u003e parameter, :pr:\u003ccode\u003e844\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix incorrect signature when \u003ccode\u003eContent-Type\u003c/code\u003e is x-www-form-urlencoded for OAuth 1.0 Client, :pr:\u003ccode\u003e778\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eexpires_in\u003c/code\u003e in \u003ccode\u003eOAuth2Token\u003c/code\u003e when \u003ccode\u003eexpires_at\u003c/code\u003e is unparsable, :pr:\u003ccode\u003e842\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAlways track \u003ccode\u003estate\u003c/code\u003e in session for OAuth client integrations.\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/authlib/authlib/commit/bb7a315befbad333faf9a23ef574d6e3134a6774\"\u003e\u003ccode\u003ebb7a315\u003c/code\u003e\u003c/a\u003e chore: release 1.6.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/0a423d4638bed1c0fe4597b2296a85c5bb59fba2\"\u003e\u003ccode\u003e0a423d4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/844\"\u003e#844\u003c/a\u003e from azmeuk/806-get-jwt-config-client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/2808378611dd6fb2532b189a9087877d8f0c0489\"\u003e\u003ccode\u003e2808378\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/714502a4738bc29f26eb245b0c66718d8536cdda\"\u003e\u003ccode\u003e714502a\u003c/code\u003e\u003c/a\u003e feat: get_jwt_config takes a client parameter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/260d04edee23d8470057ea659c16fb8a2c7b0dc2\"\u003e\u003ccode\u003e260d04e\u003c/code\u003e\u003c/a\u003e Fix: Use \u003ccode\u003eexpires_in\u003c/code\u003e when \u003ccode\u003eexpires_at\u003c/code\u003e is unparsable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/eb37124bbbec6ccbfba3699d8960f9710d330ad8\"\u003e\u003ccode\u003eeb37124\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/778\"\u003e#778\u003c/a\u003e from shc261392/fix-httpx-oauth1-form-data-incorrect-s...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/0ba9ec4feeb8e19f572c454e2d1dbbdc1d30ae62\"\u003e\u003ccode\u003e0ba9ec4\u003c/code\u003e\u003c/a\u003e docs: fix guide on requests self signed certificate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/a2e9943815bb5161863b1fa144ac0aaa50d97e91\"\u003e\u003ccode\u003ea2e9943\u003c/code\u003e\u003c/a\u003e docs: indicate that \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/743\"\u003e#743\u003c/a\u003e needs a migration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/06015d20652a23eff8350b6ad71b32fe41dae4ba\"\u003e\u003ccode\u003e06015d2\u003c/code\u003e\u003c/a\u003e test: factorize the token fixture\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.5...v1.6.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiosqlite` from 0.21.0 to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.1\u003c/h2\u003e\n\u003cp\u003eBug fix release\u003c/p\u003e\n\u003cp\u003eNOTE: Starting with \u003ccode\u003ev0.22.0\u003c/code\u003e, the \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e object no longer\ninherits from \u003ccode\u003ethreading.Thread\u003c/code\u003e. If not using aiosqlite as a context manager,\nclients must \u003ccode\u003eawait connection.close()\u003c/code\u003e or call \u003ccode\u003econnection.stop()\u003c/code\u003e to ensure\nthe helper thread is completed and terminated correctly. A \u003ccode\u003eResourceWarning\u003c/code\u003e\nwill be emitted for any connection that is garbage collected without being\nclosed or stopped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded synchronous \u003ccode\u003estop()\u003c/code\u003e method to \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e to enable safe\ncleanup and termination of the background thread without dependence\non having an active event loop (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.22.0...v0.22.1\n     2\tAmethyst Reese\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cp\u003eFeature release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eset_authorizer\u003c/code\u003e query access controls (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWait for transaction queue to complete when closing connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit warning when connection goes out of scope without being closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on \u003ccode\u003etyping_extensions\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.21.0...v0.22.0\n     1\tAlec Berryman\n     1\tAmethyst Reese\n     1\tDavid Andreoletti\n     1\tMarkus Heidelberg\n     1\tbeerpsi\n    19\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/9b127cecc7de843bf4f343b6da63b641866533fb\"\u003e\u003ccode\u003e9b127ce\u003c/code\u003e\u003c/a\u003e Version bump v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/5c3f61c1ea49401f2716d8f58d494e76ca766921\"\u003e\u003ccode\u003e5c3f61c\u003c/code\u003e\u003c/a\u003e Improve stop semantics for connections (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/a869d73678adbc14472e4ac2c31f4e706efe8ef3\"\u003e\u003ccode\u003ea869d73\u003c/code\u003e\u003c/a\u003e Version bump v0.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/1cd60adcab12347577150a6fa6c7d92b7b86d989\"\u003e\u003ccode\u003e1cd60ad\u003c/code\u003e\u003c/a\u003e Emit warning if connection is deleted before it is closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/611d7b4f29fc3d7df6c173b2e79b0892e9d249aa\"\u003e\u003ccode\u003e611d7b4\u003c/code\u003e\u003c/a\u003e Add set_authorizer support for fine-grained access control (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/81d00c8f1676851c8634ca98f99e0973083ea75f\"\u003e\u003ccode\u003e81d00c8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/7a26722f7e6da6a1ae0febf515b4624794173fcc\"\u003e\u003ccode\u003e7a26722\u003c/code\u003e\u003c/a\u003e Bump coverage[toml] from 7.8.0 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/445754087ec452f888cc152debf79590d8a25d86\"\u003e\u003ccode\u003e4457540\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.2.0 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/b650dad318ad72e582b7ba1143cc05f270f8ab6b\"\u003e\u003ccode\u003eb650dad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/065ffdd1291693c5e69d2f3efff17e351d9a0163\"\u003e\u003ccode\u003e065ffdd\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.15.0 to 1.19.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.21.0...v0.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.20 to 0.0.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003eKludex/python-multipart#216\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/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/203\"\u003eKludex/python-multipart#203\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/python-multipart/compare/0.0.20...0.0.21\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21\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/Kludex/python-multipart/blob/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.21 (2025-12-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003e#216\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/Kludex/python-multipart/commit/1f72955602445706b5517a6f58a720796ad3d96a\"\u003e\u003ccode\u003e1f72955\u003c/code\u003e\u003c/a\u003e Version 0.0.21 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/47ecfed3533ed8dcafd800508dbf594438fd0949\"\u003e\u003ccode\u003e47ecfed\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop EOL 3.8 and 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/216\"\u003e#216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/f18b70941b727c947f7e6b17e1c3321f5ad3afb6\"\u003e\u003ccode\u003ef18b709\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 4 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/214\"\u003e#214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b388e9a7a82605cc8613798926afe8f6074cb372\"\u003e\u003ccode\u003eb388e9a\u003c/code\u003e\u003c/a\u003e chore: use depedency-groups in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6113e750971918a51f79c3bb2585e95ed1c53245\"\u003e\u003ccode\u003e6113e75\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/7aa8d9932b6b20c0a1969e672433044e27a3fbc1\"\u003e\u003ccode\u003e7aa8d99\u003c/code\u003e\u003c/a\u003e Bump ruff from 0.8.0 to 0.11.7 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/203\"\u003e#203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3e909f52a774365b8817a52d4312db4ba8061d07\"\u003e\u003ccode\u003e3e909f5\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/198\"\u003e#198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `vcrpy` from 8.1.0 to 8.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kevin1024/vcrpy/releases\"\u003evcrpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix sync requests in async contexts for HTTPX (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/965\"\u003e#965\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/seowalex\"\u003e\u003ccode\u003e@​seowalex\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: bump peter-evans/create-pull-request from 7 to 8 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/969\"\u003e#969\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/kevin1024/vcrpy/blob/master/docs/changelog.rst\"\u003evcrpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cp\u003eFor a full list of triaged issues, bugs and PRs and what release they are targeted for please see the following link.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eROADMAP MILESTONES \u0026lt;https://github.com/kevin1024/vcrpy/milestones\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cp\u003eAll help in providing PRs to close out bug issues is appreciated. Even if that is providing a repo that fully replicates issues. We have very generous contributors that have added these to bug issues which meant another contributor picked up the bug and closed it out.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e8.1.1\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix sync requests in async contexts for HTTPX (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/965\"\u003e#965\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/seowalex\"\u003e\u003ccode\u003e@​seowalex\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: bump peter-evans/create-pull-request from 7 to 8 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e8.1.0\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable brotli decompression if available (via \u003ccode\u003ebrotli\u003c/code\u003e, \u003ccode\u003ebrotlipy\u003c/code\u003e or \u003ccode\u003ebrotlicffi\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/620\"\u003e#620\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/immerrr\"\u003e\u003ccode\u003e@​immerrr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aiohttp allowing both \u003ccode\u003edata\u003c/code\u003e and \u003ccode\u003ejson\u003c/code\u003e arguments when one is None (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/624\"\u003e#624\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/leorochael\"\u003e\u003ccode\u003e@​leorochael\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix usage of io-like interface with VCR.py (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/906\"\u003e#906\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/tito\"\u003e\u003ccode\u003e@​tito\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/kevdevg\"\u003e\u003ccode\u003e@​kevdevg\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate to declarative Python package config (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/767\"\u003e#767\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/deronnax\"\u003e\u003ccode\u003e@​deronnax\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious linting fixes - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/955\"\u003e#955\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e8.0.0\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBREAKING: Drop support for Python 3.9 (major version bump) - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBREAKING: Drop support for urllib3 \u0026lt; 2 - fixes CVE warnings from urllib3 1.x (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/926\"\u003e#926\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/880\"\u003e#880\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNew feature: \u003ccode\u003edrop_unused_requests\u003c/code\u003e option to remove unused interactions from cassettes (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/763\"\u003e#763\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/danielnsilva\"\u003e\u003ccode\u003e@​danielnsilva\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRewrite httpx support to patch httpcore instead of httpx (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/943\"\u003e#943\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/seowalex\"\u003e\u003ccode\u003e@​seowalex\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eFixes \u003ccode\u003ehttpx.ResponseNotRead\u003c/code\u003e exceptions (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/832\"\u003e#832\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/834\"\u003e#834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixes \u003ccode\u003eKeyError: 'follow_redirects'\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdds support for custom httpx transports\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix HTTPS proxy handling - proxy address no longer ends up in cassette URIs (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/809\"\u003e#809\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/914\"\u003e#914\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/alga\"\u003e\u003ccode\u003e@​alga\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eiscoroutinefunction\u003c/code\u003e deprecation warning on Python 3.14 - thanks \u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly log message if response is appended - thanks \u003ca href=\"https://github.com/talfus-laddus\"\u003e\u003ccode\u003e@​talfus-laddus\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize urllib.parse calls - thanks \u003ca href=\"https://github.com/Martin-Brunthaler\"\u003e\u003ccode\u003e@​Martin-Brunthaler\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI for Ubuntu 24.04 - thanks \u003ca href=\"https://github.com/hartwork\"\u003e\u003ccode\u003e@​hartwork\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious CI improvements: migrate to uv, update GitHub Actions - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious linting and test improvements - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/hartwork\"\u003e\u003ccode\u003e@​hartwork\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e7.0.0\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for python 3.8 (major version bump) - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious linting and test fixes - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix for urllib2\u0026gt;=2.3.0 - missing version_string (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/888\"\u003e#888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix for asyncio.run - thanks \u003ca href=\"https://github.com/alekeik1\"\u003e\u003ccode\u003e@​alekeik1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e6.0.2\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure body is consumed only once (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/846\"\u003e#846\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/sathieu\"\u003e\u003ccode\u003e@​sathieu\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePermit urllib3 2.x for non-PyPy Python \u0026gt;=3.10\u003c/li\u003e\n\u003cli\u003eFix typos in test commands - thanks \u003ca href=\"https://github.com/chuckwondo\"\u003e\u003ccode\u003e@​chuckwondo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral test and workflow improvements - thanks \u003ca href=\"https://github.com/hartwork\"\u003e\u003ccode\u003e@​hartwork\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e6.0.1\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix with to Tornado cassette generator (thanks \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e6.0.0\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/kevin1024/vcrpy/commit/9b586631e4131fce906207c40eeb71e41df6c23a\"\u003e\u003ccode\u003e9b58663\u003c/code\u003e\u003c/a\u003e Release v8.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/3780f580409a437d98a257a0455d4a01b2664dce\"\u003e\u003ccode\u003e3780f58\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/create-pull-request from 7 to 8 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/1b70394f3592d51f6ac88c86ee05e5915064c9ea\"\u003e\u003ccode\u003e1b70394\u003c/code\u003e\u003c/a\u003e Split sync and async HTTPX handlers (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/ca4b1e19c2e9259690987e18587f70362fe98858\"\u003e\u003ccode\u003eca4b1e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/960\"\u003e#960\u003c/a\u003e from kevin1024/precommit-autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/8d47ca10d086c88fb755560d1dca3b2132cf20d7\"\u003e\u003ccode\u003e8d47ca1\u003c/code\u003e\u003c/a\u003e pre-commit: Autoupdate\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kevin1024/vcrpy/compare/v8.1.0...v8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.0 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.0...7.13.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.14.8 to 0.14.10\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.14.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\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/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\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/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\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/zanieb\"\u003e\u003ccode\u003e@​zanieb\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/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\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/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\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.14.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\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/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\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/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\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/zanieb\"\u003e\u003ccode\u003e@​zanieb\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/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\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/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.9\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/45bbb4cbffe73cf925d4579c2e3eb413e0539390\"\u003e\u003ccode\u003e45bbb4c\u003c/code\u003e\u003c/a\u003e Bump 0.14.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22058\"\u003e#22058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42b972753aa9737140d3c715dc1fa2a4d20eba02\"\u003e\u003ccode\u003e42b9727\u003c/code\u003e\u003c/a\u003e [ty] Use datatest instead of dirtest (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21937\"\u003e#21937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f7ec1784005ba8659203155dc0c195f746f8b45b\"\u003e\u003ccode\u003ef7ec178\u003c/code\u003e\u003c/a\u003e [ty] Gracefully handle client requests that can't be deserialized (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22051\"\u003e#22051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c31516473296a8b745af946b827d3342ef81060f\"\u003e\u003ccode\u003ec315164\u003c/code\u003e\u003c/a\u003e [ty] Don't suggest keyword statements when only expressions are valid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb1955e98c5bd35a322f58fcab5d68aab255a7a4\"\u003e\u003ccode\u003ebb1955e\u003c/code\u003e\u003c/a\u003e [ty] Use cursor context in a few more places...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/070e08a043f47845f60632b528ef27cc37078405\"\u003e\u003ccode\u003e070e08a\u003c/code\u003e\u003c/a\u003e [ty] Move \u003ccode\u003ecompletion\u003c/code\u003e function to the top\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bab3924833c9f432776f93d4ed83b6cfbafc20e3\"\u003e\u003ccode\u003ebab3924\u003c/code\u003e\u003c/a\u003e [ty] Refactor completion generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10748b2fdb021e4d8e548f09e8e182c69d7c1f5a\"\u003e\u003ccode\u003e10748b2\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/56539db5206c519d80446d96155ef832689c5a6e\"\u003e\u003ccode\u003e56539db\u003c/code\u003e\u003c/a\u003e [ty] Fix some configuration panics in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22040\"\u003e#22040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8d32ad1cab7b78675e8fe56740013d61e315142c\"\u003e\u003ccode\u003e8d32ad1\u003c/code\u003e\u003c/a\u003e [ty] Add support for attribute docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22036\"\u003e#22036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.8...0.14.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\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/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\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/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.0...v4.5.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.12.0 to 4.12.1\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.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\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/a0dccbd78d75886247ae7846b460fd390cc94fbd\"\u003e\u003ccode\u003ea0dccbd\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e1121a735c977c00c18b3a581d28daf83a279833\"\u003e\u003ccode\u003ee1121a7\u003c/code\u003e\u003c/a\u003e Enabled tests for the 4.12.x branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/69ab43e549517ce554f84365fed9da90e806c303\"\u003e\u003ccode\u003e69ab43e\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4f4b33ed56edd1bc4785a368a103ad8138730d91\"\u003e\u003ccode\u003e4f4b33e\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eBlockingPortal.__new__\u003c/code\u003e hack (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/af17d89b80ebbd526215e2dbd025b284730aaa3f\"\u003e\u003ccode\u003eaf17d89\u003c/code\u003e\u003c/a\u003e Replaced the NoCurrentAsyncBackend exception with NoEventLoopError (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1049\"\u003e#1049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4310264312a2e86e792481bdb05bdb381678a6b5\"\u003e\u003ccode\u003e4310264\u003c/code\u003e\u003c/a\u003e Updated pre-commit modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0cc6723ba5a2fdaa98a24852d3681c4ed99b8863\"\u003e\u003ccode\u003e0cc6723\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1051\"\u003e#1051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.12.0...4.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.11.12 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.11.12...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.20.1 to 3.20.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.20.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Unix systems without O_NOFOLLOW by \u003ca href=\"https://github.com/mwilliamson\"\u003e\u003ccode\u003e@​mwilliamson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/463\"\u003etox-dev/filelock#463\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/464\"\u003etox-dev/filelock#464\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/mwilliamson\"\u003e\u003ccode\u003e@​mwilliamson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/463\"\u003etox-dev/filelock#463\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/filelock/compare/3.20.1...3.20.2\"\u003ehttps://github.com/tox-dev/filelock/compare/3.20.1...3.20.2\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/filelock/commit/f2e7d4046b6a2b375a573bcfbad21827b99f8939\"\u003e\u003ccode\u003ef2e7d40\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/50888548eb2f008d372e71f2835a47851ab83836\"\u003e\u003ccode\u003e5088854\u003c/code\u003e\u003c/a\u003e Support Unix systems without O_NOFOLLOW (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/463\"\u003e#463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.20.1...3.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jaraco-context` from 6.0.1 to 6.0.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jaraco/jaraco.context/blob/main/NEWS.rst\"\u003ejaraco-context's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.0.2\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\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/jaraco/jaraco.context/commit/1fe5de1e450556cc68d1d33198f8c7b8791af42d\"\u003e\u003ccode\u003e1fe5de1\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/601623562d30a635a553e06766bcdeb4ee967247\"\u003e\u003ccode\u003e6016235\u003c/code\u003e\u003c/a\u003e Add fixtures to skip tests for repo_context.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/2b251ee0a70796ae19a2971fecbd26812055d106\"\u003e\u003ccode\u003e2b251ee\u003c/code\u003e\u003c/a\u003e Merge \u003ca href=\"https://github.com/jaraco/skeleton\"\u003ehttps://github.com/jaraco/skeleton\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/0bc3e96a1859666a135be88ddbcd071e92abea89\"\u003e\u003ccode\u003e0bc3e96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jaraco/jaraco.context/issues/17\"\u003e#17\u003c/a\u003e from Avasam/Re-run-checkers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/8f3d95e7db0114e26e57dd95932b141ead74f7c5\"\u003e\u003ccode\u003e8f3d95e\u003c/code\u003e\u003c/a\u003e Pin mypy on PyPy.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/d47a969ed4567bbdee26034ccaaa8b8169f44fcf\"\u003e\u003ccode\u003ed47a969\u003c/code\u003e\u003c/a\u003e Specify the directory for...\n\n_Description has been truncated_","html_url":"https://github.com/MinBZK/amt/pull/642","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinBZK%2Famt/issues/642","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/642/packages"},{"uuid":"3730721751","node_id":"PR_kwDONRyVrs648G88","number":68,"state":"closed","title":"deps(deps): bump the python group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-22T14:29:23.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-15T14:32:19.000Z","updated_at":"2025-12-22T14:29:25.000Z","time_to_close":604624,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"python","update_count":16,"packages":[{"name":"certifi","old_version":"2025.8.3","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.3","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.0","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"greenlet","old_version":"3.2.4","new_version":"3.3.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"mariadb","old_version":"1.1.13","new_version":"1.1.14","repository_url":"https://github.com/mariadb-corporation/mariadb-connector-python"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"marshmallow","old_version":"4.0.1","new_version":"4.1.1","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"platformdirs","old_version":"4.4.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"python-dotenv","old_version":"1.1.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"sqlalchemy","old_version":"2.0.43","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"sqlalchemy-utils","old_version":"0.42.0","new_version":"0.42.1","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"},{"name":"tomli","old_version":"2.2.1","new_version":"2.3.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.4","repository_url":"https://github.com/pallets/werkzeug"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `2025.11.12` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.3` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.4` | `3.3.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [mariadb](https://github.com/mariadb-corporation/mariadb-connector-python) | `1.1.13` | `1.1.14` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `4.0.1` | `4.1.1` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.4.0` | `4.5.1` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.1` | `1.2.1` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.43` | `2.0.45` |\n| [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) | `0.42.0` | `0.42.1` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.3.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.4` |\n\n\nUpdates `certifi` from 2025.8.3 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"\u003e\u003ccode\u003e37ea150\u003c/code\u003e\u003c/a\u003e 2025.11.12 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"\u003e\u003ccode\u003e2fa50bb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.2 to 5.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"\u003e\u003ccode\u003e6cadb53\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fb14ac49a976b1695d84b1ac1307276a20b3aac9\"\u003e\u003ccode\u003efb14ac4\u003c/code\u003e\u003c/a\u003e 2025.10.05 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2c7c7ee6b76a118191b685a4cc028d4241f22eb7\"\u003e\u003ccode\u003e2c7c7ee\u003c/code\u003e\u003c/a\u003e Add Python 3.14 classifier in setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1a5cb7b3771bba256755f88b3dcf3ac13f064622\"\u003e\u003ccode\u003e1a5cb7b\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/dea59605ef2b266c2e0e67938e8c8535a04b1211\"\u003e\u003ccode\u003edea5960\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/83566b7c993eef772facdaff59c7bba105675329\"\u003e\u003ccode\u003e83566b7\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ca2e121bdb304fd01f802d3b1ee6a65684f569f2\"\u003e\u003ccode\u003eca2e121\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.3.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.08.03...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.3 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\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.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\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/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.3...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.3.0 to 8.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.1/\"\u003ehttps://pypi.org/project/click/8.3.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/28\"\u003ehttps://github.com/pallets/click/milestone/28\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3039\"\u003e#3039\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3055\"\u003e#3055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through the \u003ccode\u003eContext.invoke()\u003c/code\u003e method. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3066\"\u003e#3066\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3068\"\u003e#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect behavior for multiple parameters using the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3071\"\u003e#3071\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3079\"\u003e#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is empty. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3019\"\u003e#3019\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3021\"\u003e#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to \u003ccode\u003etype_cast_value\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3069\"\u003e#3069\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3090\"\u003e#3090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters through the context inside parameter callbacks. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-11-15\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. :issue:\u003ccode\u003e3039\u003c/code\u003e\n:pr:\u003ccode\u003e3055\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through\nthe \u003ccode\u003eContext.invoke()\u003c/code\u003e method. :issue:\u003ccode\u003e3066\u003c/code\u003e :issue:\u003ccode\u003e3065\u003c/code\u003e :pr:\u003ccode\u003e3068\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect\nbehavior for multiple parameters using the same name. :issue:\u003ccode\u003e3071\u003c/code\u003e :pr:\u003ccode\u003e3079\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters\nthrough the context inside parameter callbacks. :issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3137\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is\nempty. :issue:\u003ccode\u003e3019\u003c/code\u003e :pr:\u003ccode\u003e3021\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to\n\u003ccode\u003etype_cast_value\u003c/code\u003e. :issue:\u003ccode\u003e3069\u003c/code\u003e :pr:\u003ccode\u003e3090\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1d038f270701498433cb432f54db89f95f07a845\"\u003e\u003ccode\u003e1d038f2\u003c/code\u003e\u003c/a\u003e release version 8.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/03f3889f505d0c9ca4f9d6810f9e4ba2799f2a66\"\u003e\u003ccode\u003e03f3889\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3141\"\u003e#3141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3867781222cb63693ca67df94352d29d8e6e2770\"\u003e\u003ccode\u003e3867781\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b91bb9548a5617b1197add95e084d569f57149c3\"\u003e\u003ccode\u003eb91bb95\u003c/code\u003e\u003c/a\u003e Provide altered context to callbacks to hide \u003ccode\u003eUNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/437e1e3295c7ec979fc1bf285bb402ca20d847e7\"\u003e\u003ccode\u003e437e1e3\u003c/code\u003e\u003c/a\u003e Temporarily provide a fake context to the callback to hide \u003ccode\u003eUNSET\u003c/code\u003e values as ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ea70da487b05d6bb758d472a3a9ffab4a5b7fcd5\"\u003e\u003ccode\u003eea70da4\u003c/code\u003e\u003c/a\u003e Don't test using a file in docs/ (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e27b307462b725722f620c69dd1d5509c032d18a\"\u003e\u003ccode\u003ee27b307\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003euv run --all-extras pyright --verifytypes click\u003c/code\u003e pass (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a92c573f3195c9da3058eadf1735d38af186d22c\"\u003e\u003ccode\u003ea92c573\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.3.0...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `greenlet` from 3.2.4 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst\"\u003egreenlet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.3.0 (2025-12-04)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.9.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitch to distributing manylinux_2_28 wheels instead of\nmanylinux2014 wheels. Likewise, switch from musllinux_1_1 to 1_2.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd initial support for free-threaded builds of CPython 3.14. Due to\nlimitations, we do not distribute binary wheels for free-threaded\nCPython on Windows. (Free-threaded CPython 3.13 may work, but is\nuntested and unsupported.)\u003c/p\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cp\u003eUnder some rare scenarios with free-threaded 3.14, the\ninterpreter may crash on accessing a variable or attribute or\nwhen shutting down. If this happens, try disabling the\nthread-local bytecode cache. See the greenlet documentation for\nmore details. See \u003ccode\u003ePR 472 by T. Wouters \u0026lt;https://github.com/python-greenlet/greenlet/pull/472\u0026gt;\u003c/code\u003e_ for the\ninitial free-threaded support and a discussion of the current\nknown issues.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/0f904314e2fe11835bdff9d928f9f039116aebff\"\u003e\u003ccode\u003e0f90431\u003c/code\u003e\u003c/a\u003e Preparing release 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/296058a43da5a76c2406a91aa998413b93537940\"\u003e\u003ccode\u003e296058a\u003c/code\u003e\u003c/a\u003e Tweak changelog. [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/d4392ab171036bf73cc64ed47109e0d2e1f41275\"\u003e\u003ccode\u003ed4392ab\u003c/code\u003e\u003c/a\u003e fixup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/e6fead23d967fd6194c5a1eaa48d55a07b4bda40\"\u003e\u003ccode\u003ee6fead2\u003c/code\u003e\u003c/a\u003e Update docs regarding free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/d5b134610187f94a641e0cf40be56992c8e9f667\"\u003e\u003ccode\u003ed5b1346\u003c/code\u003e\u003c/a\u003e 3.14: Save/restore PyInterpreterFrame.stackpointer.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/b54c4bdaaade13139d54005df51a9d21df5db7c4\"\u003e\u003ccode\u003eb54c4bd\u003c/code\u003e\u003c/a\u003e Fix some crashes with CPython assertions enabled, pointing to things we were ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/47e99259263968560422c9b69bc8c50f9068cf87\"\u003e\u003ccode\u003e47e9925\u003c/code\u003e\u003c/a\u003e Add a test that we're not enabling the GIL.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/0778d50792888afa043c8a368085358c3fea0146\"\u003e\u003ccode\u003e0778d50\u003c/code\u003e\u003c/a\u003e Use our Python allocator on free-threaded builds, but do it correctly with Py...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/5f661f4f5a023438e944d36e4f255c7a706ae998\"\u003e\u003ccode\u003e5f661f4\u003c/code\u003e\u003c/a\u003e Add free-threaded CI builds and manylinux builds; update manylinux away from ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/5331b0ad33a7380b91d8a9849f61aa61b7b1ade2\"\u003e\u003ccode\u003e5331b0a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/475\"\u003e#475\u003c/a\u003e from clin1234/capi\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-greenlet/greenlet/compare/3.2.4...3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.10 to 3.11\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.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\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/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mariadb` from 1.1.13 to 1.1.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/releases\"\u003emariadb's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eMariaDB Connector/Python 1.1.14\u003c/h2\u003e\n\u003cp\u003eDetails on this release can be found in the \u003ca href=\"https://mariadb.com/docs/release-notes/connectors/python/1.1/1.1.14\"\u003eRelease Notes\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/mariadb-corporation/mariadb-connector-python/blob/1.1/CHANGELOG.md\"\u003emariadb's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease history\u003c/h1\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/mariadb-corporation/mariadb-connector-python/commit/0e766904b5612d15b826c55b5a4be44b1f009982\"\u003e\u003ccode\u003e0e76690\u003c/code\u003e\u003c/a\u003e Added Python 3.14 to the list of supported versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/commit/6cb5f2d0450b50b8b2cdde04f254c1c18a81a90d\"\u003e\u003ccode\u003e6cb5f2d\u003c/code\u003e\u003c/a\u003e Fixed previous commit (github actions)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/commit/bda1932c852d568107f5ccc3977c38df25a8ab34\"\u003e\u003ccode\u003ebda1932\u003c/code\u003e\u003c/a\u003e Added windows + 3.14 to additional matrix (github actions)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/commit/5fc86bd2dc037f252be931b0bfcdddecb372d8aa\"\u003e\u003ccode\u003e5fc86bd\u003c/code\u003e\u003c/a\u003e Added Python 3.14 (currently rc)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/commit/92d58ff286543da199b2341e5edfd479182c870c\"\u003e\u003ccode\u003e92d58ff\u003c/code\u003e\u003c/a\u003e Matrix and test setup have moved to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/commit/2aed472f8b479634a4c76cb8c1e6849e567349e7\"\u003e\u003ccode\u003e2aed472\u003c/code\u003e\u003c/a\u003e bumped version (1.1.14)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/commit/ecc09ed0b582373c0aa88ae5f7a5192eaa3c417b\"\u003e\u003ccode\u003eecc09ed\u003c/code\u003e\u003c/a\u003e CONPY-321: Fixed index error in pool initialization\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/commit/9dc46c255de1eea0f72065e4398aa31ed14be30e\"\u003e\u003ccode\u003e9dc46c2\u003c/code\u003e\u003c/a\u003e - Added Python 3.13 to the matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/commit/8198419446f06187133c961bf3dca145d8410769\"\u003e\u003ccode\u003e8198419\u003c/code\u003e\u003c/a\u003e Follow up of a290f25581500fe19cdc8394a9d539384e2da848:\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/commit/a290f25581500fe19cdc8394a9d539384e2da848\"\u003e\u003ccode\u003ea290f25\u003c/code\u003e\u003c/a\u003e CONPY-318: Fixed segmentation fault\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/compare/v1.1.13...v1.1.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `marshmallow` from 4.0.1 to 4.1.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/marshmallow-code/marshmallow/blob/dev/CHANGELOG.rst\"\u003emarshmallow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e4.1.1 (2025-11-05)\n++++++++++++++++++\u003c/p\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003eURL\u003c/code\u003e validator is case-insensitive when using custom schemes (:pr:\u003ccode\u003e2874\u003c/code\u003e).\nThanks :user:\u003ccode\u003eT90REAL\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e4.1.0 (2025-11-01)\n++++++++++++++++++\u003c/p\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e__len__\u003c/code\u003e implementation to \u003ccode\u003emissing\u003c/code\u003e so that it can be used with\n\u003ccode\u003evalidate.Length \u0026lt;marshmallow.validate.Length\u0026gt;\u003c/code\u003e (:pr:\u003ccode\u003e2861\u003c/code\u003e).\nThanks :user:\u003ccode\u003eagentgodzilla\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (:pr:\u003ccode\u003e2363\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eTest against Python 3.14 (:pr:\u003ccode\u003e2864\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/marshmallow-code/marshmallow/commit/80f1110746a202e59ceedcbc78399feb1f48c257\"\u003e\u003ccode\u003e80f1110\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/10fe10be814a77765a76334e00bc6f69cd18409b\"\u003e\u003ccode\u003e10fe10b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2874\"\u003e#2874\u003c/a\u003e from T90REAL/fix_case_sensitivity\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/bc06327b3de6186e76961d984630ea1b9aaab894\"\u003e\u003ccode\u003ebc06327\u003c/code\u003e\u003c/a\u003e add name in AUTHORS.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/a45329dfde2f46bcea67b384912b21ca39fcfbd6\"\u003e\u003ccode\u003ea45329d\u003c/code\u003e\u003c/a\u003e Fix case sensitivity in validator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/880d87f6acc389aa80c223dae4013f7eed05ab13\"\u003e\u003ccode\u003e880d87f\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/5d3b1cccedd2d45c0674f52d0188d4d0fd36b334\"\u003e\u003ccode\u003e5d3b1cc\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/ba8058a0d475dfc41c524e636b57ceea6cdcd6b4\"\u003e\u003ccode\u003eba8058a\u003c/code\u003e\u003c/a\u003e Minor docstring fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/c034a78151471173ce8c35514ee2cae230637c3c\"\u003e\u003ccode\u003ec034a78\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/4f59df052b824c7fd7ee14eb22de15fc5be5dc6a\"\u003e\u003ccode\u003e4f59df0\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2865\"\u003e#2865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/d206a707a43fd6d509b7128dc5700b27a440aedf\"\u003e\u003ccode\u003ed206a70\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2866\"\u003e#2866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/marshmallow-code/marshmallow/compare/4.0.1...4.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\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.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\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\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\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/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.4.0 to 4.5.1\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.5.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix no-ctypes fallback on windows by \u003ca href=\"https://github.com/youknowone\"\u003e\u003ccode\u003e@​youknowone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/403\"\u003etox-dev/platformdirs#403\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.5.0...4.5.1\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.5.0...4.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.5.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/376\"\u003etox-dev/platformdirs#376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in the all 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/tox-dev/platformdirs/pull/378\"\u003etox-dev/platformdirs#378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows 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/tox-dev/platformdirs/pull/379\"\u003etox-dev/platformdirs#379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/381\"\u003etox-dev/platformdirs#381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/382\"\u003etox-dev/platformdirs#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/383\"\u003etox-dev/platformdirs#383\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Windows file paths in README by \u003ca href=\"https://github.com/ParadaCarleton\"\u003e\u003ccode\u003e@​ParadaCarleton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/385\"\u003etox-dev/platformdirs#385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/384\"\u003etox-dev/platformdirs#384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/387\"\u003etox-dev/platformdirs#387\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6 to 7 in the all 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/tox-dev/platformdirs/pull/388\"\u003etox-dev/platformdirs#388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop 3.9 support 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/389\"\u003etox-dev/platformdirs#389\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/ParadaCarleton\"\u003e\u003ccode\u003e@​ParadaCarleton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/385\"\u003etox-dev/platformdirs#385\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.4.0...4.5.0\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.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/tox-dev/platformdirs/commit/e4dbdb8c8ed8e448b7cdbbdce4a4ff5c54c5d685\"\u003e\u003ccode\u003ee4dbdb8\u003c/code\u003e\u003c/a\u003e Fix no-ctypes fallback on windows (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/4cc78aa59bbfa63a993213794f218dac327cf625\"\u003e\u003ccode\u003e4cc78aa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/b624d78851775551b6285c2759cb49325548459b\"\u003e\u003ccode\u003eb624d78\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/400\"\u003e#400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/eb06e7ed58b52ef3876a24393c6235e3928443ec\"\u003e\u003ccode\u003eeb06e7e\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/399\"\u003e#399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/85efbe91422e0b0df64f646dbfe9adb0dff07ed1\"\u003e\u003ccode\u003e85efbe9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/704c603bd3299283b2132f6b4d27daaa4fa2acbf\"\u003e\u003ccode\u003e704c603\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a01817810d92510cfa9cb9e51e7f38094e2fd9b9\"\u003e\u003ccode\u003ea018178\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/393\"\u003e#393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/9920b9bd6b1752d4b1420a3237385dcd3a6ea840\"\u003e\u003ccode\u003e9920b9b\u003c/code\u003e\u003c/a\u003e Bump the all group with 2 updates (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/c80472486f4939b795f8552f6b4e629c3db1f538\"\u003e\u003ccode\u003ec804724\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a6a24895db89fe81d8863ca25d1ebeb101fce80b\"\u003e\u003ccode\u003ea6a2489\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.1.1 to 1.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport reading .env from FIFOs (Unix) by \u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI to use trusted publishing on PyPI\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/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: upgrade to use ruff by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/567\"\u003etheskumar/python-dotenv#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.exit() instead of exit() by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/568\"\u003etheskumar/python-dotenv#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:  add \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e flag to disable load_dotenv (fixes \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/510\"\u003e#510\u003c/a\u003e) by \u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python@3.14: Github CI \u0026amp; tox.ini by \u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eocs: clarify what load_dotenv() does in README by \u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory 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/theskumar/python-dotenv/pull/577\"\u003etheskumar/python-dotenv#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove project metadata and config to pyproject.toml by \u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\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/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.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/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\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/theskumar/python-dotenv/commit/eaf2a9129ccec6febda0f741eb3bb852c3f947bd\"\u003e\u003ccode\u003eeaf2a91\u003c/code\u003e\u003c/a\u003e Do not remove .coverage file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8716196891532eeb67d24a513e8d975437f5e8b7\"\u003e\u003ccode\u003e8716196\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.0 → 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/b87807fcad6e74332c3c63a75c92ce5814fa7a55\"\u003e\u003ccode\u003eb87807f\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/3af77d3029eb717aeec0a3c25f751b6a614a6d3c\"\u003e\u003ccode\u003e3af77d3\u003c/code\u003e\u003c/a\u003e Support reading .env from FIFOs (Unix) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/467ee22fccb2fb7ccda71a0d9e37c6ea3cb8d993\"\u003e\u003ccode\u003e467ee22\u003c/code\u003e\u003c/a\u003e Fix test failures after moving config to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/76999e741d87e958ebd74e3ae9834c0514e77a59\"\u003e\u003ccode\u003e76999e7\u003c/code\u003e\u003c/a\u003e Move more config pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/222ce2cc58ebc82ba78da8781269267b9f585932\"\u003e\u003ccode\u003e222ce2c\u003c/code\u003e\u003c/a\u003e Update to use trusted publisher on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ed4f79d202eba582b44bdf1f5deb726dd68783d\"\u003e\u003ccode\u003e8ed4f79\u003c/code\u003e\u003c/a\u003e Update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/5bf882241c607445bf02cf5b241535d62e2b99c1\"\u003e\u003ccode\u003e5bf8822\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.1 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1fe11cc737ee4399e9c51d1b69b0dd858f6b4669\"\u003e\u003ccode\u003e1fe11cc\u003c/code\u003e\u003c/a\u003e upadate changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.43 to 2.0.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.45\u003c/h1\u003e\n\u003cp\u003eReleased: December 9, 2025\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where calling \u003ccode\u003eMapper.add_property()\u003c/code\u003e within mapper event\nhooks such as \u003ccode\u003eMapperEvents.instrument_class()\u003c/code\u003e,\n\u003ccode\u003eMapperEvents.after_mapper_constructed()\u003c/code\u003e, or\n\u003ccode\u003eMapperEvents.before_mapper_configured()\u003c/code\u003e would raise an\n\u003ccode\u003eAttributeError\u003c/code\u003e because the mapper's internal property collections were\nnot yet initialized. The \u003ccode\u003eMapper.add_property()\u003c/code\u003e method now handles\nearly-stage property additions correctly, allowing properties including\ncolumn properties, deferred columns, and relationships to be added during\nmapper initialization events.  Pull request courtesy G Allajmi.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12858\"\u003e#12858\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue in Python 3.14 where dataclass transformation would fail when\na mapped class using \u003ccode\u003eMappedAsDataclass\u003c/code\u003e included a\n\u003ccode\u003erelationship()\u003c/code\u003e referencing a class that was not available at\nruntime (e.g., within a \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e block). This occurred when using\nPython 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e deferred annotations feature, which is the\ndefault behavior without a \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e\ndirective.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12952\"\u003e#12952\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eexamples\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[examples] [bug]\u003c/strong\u003e Fixed the \u0026quot;short_selects\u0026quot; performance example where the cache was being\nused in all the examples, making it impossible to compare performance with\nand without the cache.   Less important comparisons like \u0026quot;lambdas\u0026quot; and\n\u0026quot;baked queries\u0026quot; have been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Some improvements to the \u003ccode\u003e_sql.ClauseElement.params()\u003c/code\u003e method to\nreplace bound parameters in a query were made, however the ultimate issue\nin \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e involving ORM \u003ccode\u003e_orm.aliased()\u003c/code\u003e cannot be fixed fully\nuntil 2.1, where the method is being rewritten to work without relying on\nCore cloned traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003eColumnOperators.in_()\u003c/code\u003e operator with a\nnested \u003ccode\u003eCompoundSelect\u003c/code\u003e statement (e.g. an \u003ccode\u003eINTERSECT\u003c/code\u003e of\n\u003ccode\u003eUNION\u003c/code\u003e queries) would raise a \u003ccode\u003eNotImplementedError\u003c/code\u003e when the\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy-utils` from 0.42.0 to 0.42.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError with Sequence defaults in instant_defaults_listener by \u003ca href=\"https://github.com/wadinj\"\u003e\u003ccode\u003e@​wadinj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/pull/793\"\u003ekvesteri/sqlalchemy-utils#793\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.1 (2025-12-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/793\"\u003e#793\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/kvesteri/sqlalchemy-utils/commit/ed0cc46f96d3065331ff34c0713da23ee90920a0\"\u003e\u003ccode\u003eed0cc46\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/11cf519375af877839d025c2d4ce402db035b81f\"\u003e\u003ccode\u003e11cf519\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.5.0 to 2.6.0 in /requirements/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/881fed424d9e2b360c82e4318a4842a85514981b\"\u003e\u003ccode\u003e881fed4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/797\"\u003e#797\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/81a5f82b2d1b104a9a377103262d3c0b64ad60d6\"\u003e\u003ccode\u003e81a5f82\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e8b12f849325fd910c89e14017a572b1bd4066a4\"\u003e\u003ccode\u003ee8b12f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/794\"\u003e#794\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/19570dcae67c84e50cb37ea06db717429fc188e7\"\u003e\u003ccode\u003e19570dc\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/4a7d764a4f490614cf1e597f1101bd7153573141\"\u003e\u003ccode\u003e4a7d764\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9645938138e998190d20bbd6c955eeca6a024d4d\"\u003e\u003ccode\u003e9645938\u003c/code\u003e\u003c/a\u003e Fix AttributeError with Sequence defaults in instant_defaults_listener\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e4b9f72230fde81e00ee4f9e34839f6d635fd2f3\"\u003e\u003ccode\u003ee4b9f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/792\"\u003e#792\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/755064d8add7496fb5002c0eaa309542fab7a301\"\u003e\u003ccode\u003e755064d\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.42.0...0.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tomli` from 2.2.1 to 2.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hukkin/tomli/blob/master/CHANGELOG.md\"\u003etomli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eBinary wheels for Python 3.14 (also free-threaded)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePerformance\n\u003cul\u003e\n\u003cli\u003eReduced import time\u003c/li\u003e\n\u003c/ul\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/hukkin/tomli/commit/3fccd16450d0f1d87c042473d95a07f60955206e\"\u003e\u003ccode\u003e3fccd16\u003c/code\u003e\u003c/a\u003e Bump version: 2.2.1 → 2.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/65040163ea9b528b2d37a1bb5df886472c310930\"\u003e\u003ccode\u003e6504016\u003c/code\u003e\u003c/a\u003e Add 2.3.0 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/0bc66fcab1f766fe410ffeebfe9ec1ec646f1681\"\u003e\u003ccode\u003e0bc66fc\u003c/code\u003e\u003c/a\u003e Remove now off-by-default PyPy from cibuildwheel skip list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/0aa242f3188f4b892e434f1b4d23818fcd978615\"\u003e\u003ccode\u003e0aa242f\u003c/code\u003e\u003c/a\u003e Update license metadata to appease PEP 639\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/a18221eb5c3f4592285f533d48e68432132bc37b\"\u003e\u003ccode\u003ea18221e\u003c/code\u003e\u003c/a\u003e Bump GitHub CI actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/6fa4d90aa9bb1693b327c72fd18a6c925d1dd5d7\"\u003e\u003ccode\u003e6fa4d90\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/260\"\u003e#260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/b974fa13a96503546e47a895ac123d5c8425bc9a\"\u003e\u003ccode\u003eb974fa1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/f574f366d40b2fa0672177f06df4d6dfc4188356\"\u003e\u003ccode\u003ef574f36\u003c/code\u003e\u003c/a\u003e Update mypy to 1.15 and use \u003ccode\u003e--strict\u003c/code\u003e mode (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/257\"\u003e#257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/1da01ef78fee9f491f55feb5e2d9fcf24d4977f0\"\u003e\u003ccode\u003e1da01ef\u003c/code\u003e\u003c/a\u003e Reduce import time by removing \u003ccode\u003etyping\u003c/code\u003e import (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/251\"\u003e#251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/41881885a360e9f6526badafc1c5b2eec4133393\"\u003e\u003ccode\u003e4188188\u003c/code\u003e\u003c/a\u003e Reduce import time by removing \u003ccode\u003estring\u003c/code\u003e and \u003ccode\u003etomli._types\u003c/code\u003e imports\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hukkin/tomli/compare/2.2.1...2.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-2xpw-w6gg-jr37)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by \u003ca href=\"https://github.com/illia-v\"\u003e\u003ccode\u003e@​illia-v\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-gm62-xv2j-4w53)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to  benefit from the security fixes and avoid warnings. Prefer using  \u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/li\u003e\n\u003cli\u003eIf you use custom decompressors, please make sure to update them to  respect the changed API of \u003ccode\u003eurllib3.response.ContentDecoder\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnabled retrieval, deletion, and membership testing in \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e using bytes keys. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3653\"\u003e#3653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded host and port information to string representations of \u003ccode\u003eHTTPConnection\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3666\"\u003e#3666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for Python 3.14 free-threading builds explicitly. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3696\"\u003e#3696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRemovals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e method in favor of \u003ccode\u003eHTTPResponse.headers\u003c/code\u003e. Removed the \u003ccode\u003eHTTPResponse.getheader(name, default)\u003c/code\u003e method in favor of \u003ccode\u003eHTTPResponse.headers.get(name, default)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3622\"\u003e#3622\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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.2 (2025-12-11)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in\nthe decoder's buffer when reading compressed chunked responses.\n(\u003ccode\u003e[#3734](https://github.com/urllib3/urllib3/issues/3734) \u0026lt;https://github.com/urllib3/urllib3/issues/3734\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.1 (2025-12-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods.\n(\u003ccode\u003e[#3731](https://github.com/urllib3/urllib3/issues/3731) \u0026lt;https://github.com/urllib3/urllib3/issues/3731\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.0 (2025-12-05)\u003c/h1\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly\ncompressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource\nconsumption even when a small amount of data was requested. Reading small\nchunks of compressed data is safer and much more efficient now.\n(\u003ccode\u003eGHSA-2xpw-w6gg-jr37 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-2xpw-w6gg-jr37\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with\nvirtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially\nleading to a denial of service (DoS) attack by exhausting system resources\nduring decoding. The number of allowed chained encodings is now limited to 5.\n(\u003ccode\u003eGHSA-gm62-xv2j-4w53 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-gm62-xv2j-4w53\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but\nyour environment contains a Brotli/brotlicffi/brotlipy package anyway, make\nsure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to\nbenefit from the security fixes and avoid warnings. Prefer using\n\u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf you use custom decompressors, please make sure to update them to\nrespect the changed API of \u003ccode\u003eurllib3.response.ContentDecode...\n\n_Description has been truncated_","html_url":"https://github.com/WRLC/azure-web-app-vfs/pull/68","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/WRLC%2Fazure-web-app-vfs/issues/68","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/68/packages"},{"uuid":"3728937158","node_id":"PR_kwDOQPxdbc642Bjs","number":553,"state":"open","title":"chore(deps)(deps): bump sqlalchemy-utils from 0.42.0 to 0.42.1 in /services/backend","user":"dependabot[bot]","labels":["automated","dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-15T06:26:11.000Z","updated_at":"2025-12-15T06:27:39.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps)","packages":[{"name":"sqlalchemy-utils","old_version":"0.42.0","new_version":"0.42.1","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":"/services/backend","ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.42.0 to 0.42.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError with Sequence defaults in instant_defaults_listener by \u003ca href=\"https://github.com/wadinj\"\u003e\u003ccode\u003e@​wadinj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/pull/793\"\u003ekvesteri/sqlalchemy-utils#793\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.1 (2025-12-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/793\"\u003e#793\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/kvesteri/sqlalchemy-utils/commit/ed0cc46f96d3065331ff34c0713da23ee90920a0\"\u003e\u003ccode\u003eed0cc46\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/11cf519375af877839d025c2d4ce402db035b81f\"\u003e\u003ccode\u003e11cf519\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.5.0 to 2.6.0 in /requirements/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/881fed424d9e2b360c82e4318a4842a85514981b\"\u003e\u003ccode\u003e881fed4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/797\"\u003e#797\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/81a5f82b2d1b104a9a377103262d3c0b64ad60d6\"\u003e\u003ccode\u003e81a5f82\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e8b12f849325fd910c89e14017a572b1bd4066a4\"\u003e\u003ccode\u003ee8b12f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/794\"\u003e#794\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/19570dcae67c84e50cb37ea06db717429fc188e7\"\u003e\u003ccode\u003e19570dc\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/4a7d764a4f490614cf1e597f1101bd7153573141\"\u003e\u003ccode\u003e4a7d764\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9645938138e998190d20bbd6c955eeca6a024d4d\"\u003e\u003ccode\u003e9645938\u003c/code\u003e\u003c/a\u003e Fix AttributeError with Sequence defaults in instant_defaults_listener\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e4b9f72230fde81e00ee4f9e34839f6d635fd2f3\"\u003e\u003ccode\u003ee4b9f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/792\"\u003e#792\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/755064d8add7496fb5002c0eaa309542fab7a301\"\u003e\u003ccode\u003e755064d\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.42.0...0.42.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=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.42.0\u0026new-version=0.42.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/asbor/HoppyBrew/pull/553","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asbor%2FHoppyBrew/issues/553","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/553/packages"},{"uuid":"3728928263","node_id":"PR_kwDOKeAh68641_j9","number":1657,"state":"closed","title":"build(deps-dev): bump sqlalchemy-utils from 0.42.0 to 0.42.1 in /services/catalog","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-16T09:14:42.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-15T06:23:22.000Z","updated_at":"2025-12-16T09:14:43.000Z","time_to_close":96680,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"sqlalchemy-utils","old_version":"0.42.0","new_version":"0.42.1","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":"/services/catalog","ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.42.0 to 0.42.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError with Sequence defaults in instant_defaults_listener by \u003ca href=\"https://github.com/wadinj\"\u003e\u003ccode\u003e@​wadinj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/pull/793\"\u003ekvesteri/sqlalchemy-utils#793\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.1 (2025-12-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/793\"\u003e#793\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/kvesteri/sqlalchemy-utils/commit/ed0cc46f96d3065331ff34c0713da23ee90920a0\"\u003e\u003ccode\u003eed0cc46\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/11cf519375af877839d025c2d4ce402db035b81f\"\u003e\u003ccode\u003e11cf519\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.5.0 to 2.6.0 in /requirements/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/881fed424d9e2b360c82e4318a4842a85514981b\"\u003e\u003ccode\u003e881fed4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/797\"\u003e#797\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/81a5f82b2d1b104a9a377103262d3c0b64ad60d6\"\u003e\u003ccode\u003e81a5f82\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e8b12f849325fd910c89e14017a572b1bd4066a4\"\u003e\u003ccode\u003ee8b12f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/794\"\u003e#794\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/19570dcae67c84e50cb37ea06db717429fc188e7\"\u003e\u003ccode\u003e19570dc\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/4a7d764a4f490614cf1e597f1101bd7153573141\"\u003e\u003ccode\u003e4a7d764\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9645938138e998190d20bbd6c955eeca6a024d4d\"\u003e\u003ccode\u003e9645938\u003c/code\u003e\u003c/a\u003e Fix AttributeError with Sequence defaults in instant_defaults_listener\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e4b9f72230fde81e00ee4f9e34839f6d635fd2f3\"\u003e\u003ccode\u003ee4b9f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/792\"\u003e#792\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/755064d8add7496fb5002c0eaa309542fab7a301\"\u003e\u003ccode\u003e755064d\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.42.0...0.42.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=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.42.0\u0026new-version=0.42.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/RS-PYTHON/rs-server/pull/1657","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/RS-PYTHON%2Frs-server/issues/1657","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1657/packages"},{"uuid":"3728616604","node_id":"PR_kwDOOEfyqc6408sW","number":57,"state":"open","title":"Bump sqlalchemy-utils from 0.41.1 to 0.42.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":"2025-12-15T04:13:52.000Z","updated_at":"2025-12-15T04:13:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"sqlalchemy-utils","old_version":"0.41.1","new_version":"0.42.1","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.41.1 to 0.42.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError with Sequence defaults in instant_defaults_listener by \u003ca href=\"https://github.com/wadinj\"\u003e\u003ccode\u003e@​wadinj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/pull/793\"\u003ekvesteri/sqlalchemy-utils#793\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.41.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix breaking change introduced on SQLAlchemy 2.0.22 changes to \u003ccode\u003eattributes.AttributeImpl\u003c/code\u003e constructor (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/733\"\u003e#733\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.1 (2025-12-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/793\"\u003e#793\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.41.2 (2024-03-22)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix breaking change introduced on SQLAlchemy 2.0.22 changes to \u003ccode\u003eattributes.AttributeImpl\u003c/code\u003e constructor (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/733\"\u003e#733\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/kvesteri/sqlalchemy-utils/commit/ed0cc46f96d3065331ff34c0713da23ee90920a0\"\u003e\u003ccode\u003eed0cc46\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/11cf519375af877839d025c2d4ce402db035b81f\"\u003e\u003ccode\u003e11cf519\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.5.0 to 2.6.0 in /requirements/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/881fed424d9e2b360c82e4318a4842a85514981b\"\u003e\u003ccode\u003e881fed4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/797\"\u003e#797\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/81a5f82b2d1b104a9a377103262d3c0b64ad60d6\"\u003e\u003ccode\u003e81a5f82\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e8b12f849325fd910c89e14017a572b1bd4066a4\"\u003e\u003ccode\u003ee8b12f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/794\"\u003e#794\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/19570dcae67c84e50cb37ea06db717429fc188e7\"\u003e\u003ccode\u003e19570dc\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/4a7d764a4f490614cf1e597f1101bd7153573141\"\u003e\u003ccode\u003e4a7d764\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9645938138e998190d20bbd6c955eeca6a024d4d\"\u003e\u003ccode\u003e9645938\u003c/code\u003e\u003c/a\u003e Fix AttributeError with Sequence defaults in instant_defaults_listener\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e4b9f72230fde81e00ee4f9e34839f6d635fd2f3\"\u003e\u003ccode\u003ee4b9f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/792\"\u003e#792\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/755064d8add7496fb5002c0eaa309542fab7a301\"\u003e\u003ccode\u003e755064d\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.1...0.42.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=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.41.1\u0026new-version=0.42.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/L11yz126/seal/pull/57","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/L11yz126%2Fseal/issues/57","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/57/packages"},{"uuid":"3622988870","node_id":"PR_kwDOArfEPs6zUiBn","number":1233,"state":"open","title":"chore(deps): bump sqlalchemy-utils from 0.41.2 to 0.42.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-13T22:04:27.000Z","updated_at":"2025-11-13T22:08:24.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"sqlalchemy-utils","old_version":"0.41.2","new_version":"0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.41.2 to 0.42.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.2...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.41.2\u0026new-version=0.42.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/jazzband/website/pull/1233","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jazzband%2Fwebsite/issues/1233","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1233/packages"},{"uuid":"3523249433","node_id":"PR_kwDODVn7ys6uKLXl","number":822,"state":"closed","title":"Bump the minor-updates group with 6 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-20T20:50:43.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-16T19:35:56.000Z","updated_at":"2025-10-20T20:50:45.000Z","time_to_close":350087,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-updates","update_count":6,"packages":[{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"sqlalchemy","old_version":"2.0.41","new_version":"2.0.44","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"sqlalchemy-utils","old_version":"0.41.2","new_version":"0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"},{"name":"pymysql","old_version":"1.1.1","new_version":"1.1.2","repository_url":"https://github.com/PyMySQL/PyMySQL"},{"name":"zeep","old_version":"4.3.1","new_version":"4.3.2","repository_url":"https://github.com/mvantellingen/python-zeep"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.2"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-updates group with 6 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.41` | `2.0.44` |\n| [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) | `0.41.2` | `0.42.0` |\n| [pymysql](https://github.com/PyMySQL/PyMySQL) | `1.1.1` | `1.1.2` |\n| [zeep](https://github.com/mvantellingen/python-zeep) | `4.3.1` | `4.3.2` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.2` |\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.41 to 2.0.44\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.44\u003c/h1\u003e\n\u003cp\u003eReleased: October 10, 2025\u003c/p\u003e\n\u003ch2\u003eplatform\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[platform] [bug]\u003c/strong\u003e Unblocked automatic greenlet installation for Python 3.14 now that\nthere are greenlet wheels on pypi for python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [usecase]\u003c/strong\u003e The way ORM Annotated Declarative interprets Python \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type aliases\nin \u003ccode\u003eMapped[]\u003c/code\u003e annotations has been refined to expand the lookup scheme. A\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type can now be resolved based on either its direct presence in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e or its immediate resolved\nvalue, as long as a recursive lookup across multiple \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types is\nnot required for it to resolve. This change reverses part of the\nrestrictions introduced in 2.0.37 as part of \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/11955\"\u003e#11955\u003c/a\u003e, which\ndeprecated (and disallowed in 2.1) the ability to resolve any \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e\ntype that was not explicitly present in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e. Recursive lookups of\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types remains deprecated in 2.0 and disallowed in version 2.1,\nas do implicit lookups of \u003ccode\u003eNewType\u003c/code\u003e types without an entry in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eAdditionally, new support has been added for generic \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e aliases that\nrefer to \u003ca href=\"https://peps.python.org/pep-0593\"\u003ePEP 593\u003c/a\u003e \u003ccode\u003eAnnotated\u003c/code\u003e constructs containing\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e configurations. See the sections below for\nexamples.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12829\"\u003e#12829\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed a caching issue where \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e would\nincorrectly reuse cached bound parameter values when used with\n\u003ccode\u003e_sql.CompoundSelect\u003c/code\u003e constructs such as \u003ccode\u003e_sql.union()\u003c/code\u003e. The\nissue was caused by the cache key for compound selects not including the\nexecution options that are part of the \u003ccode\u003e_sql.Executable\u003c/code\u003e base class,\nwhich \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e uses to apply its criteria\ndynamically. The fix ensures that compound selects and other executable\nconstructs properly include execution options in their cache key traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12905\"\u003e#12905\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[engine] [bug]\u003c/strong\u003e Implemented initial support for free-threaded Python by adding new tests\nand reworking the test harness to include Python 3.13t and Python 3.14t in\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy-utils` from 0.41.2 to 0.42.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.2...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymysql` from 1.1.1 to 1.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyMySQL/PyMySQL/releases\"\u003epymysql's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent UnboundLocalError on MySQLResult initialization during SystemExit by \u003ca href=\"https://github.com/palm002\"\u003e\u003ccode\u003e@​palm002\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1174\"\u003ePyMySQL/PyMySQL#1174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove mention of runtests.py by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1182\"\u003ePyMySQL/PyMySQL#1182\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emake sure to also close \u003ccode\u003econnection._rfile\u003c/code\u003e in \u003ccode\u003eConnection._force_close\u003c/code\u003e by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1184\"\u003ePyMySQL/PyMySQL#1184\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded MariaDB in readme description (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1180\"\u003e#1180\u003c/a\u003e) by \u003ca href=\"https://github.com/theneuralcraftsman\"\u003e\u003ccode\u003e@​theneuralcraftsman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1186\"\u003ePyMySQL/PyMySQL#1186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency sphinx-rtd-theme to v3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1189\"\u003ePyMySQL/PyMySQL#1189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency sphinx to v8 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1179\"\u003ePyMySQL/PyMySQL#1179\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1190\"\u003ePyMySQL/PyMySQL#1190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve UTF8 charset case-insensitively by \u003ca href=\"https://github.com/ek247\"\u003e\u003ccode\u003e@​ek247\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1195\"\u003ePyMySQL/PyMySQL#1195\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate ci versions by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1196\"\u003ePyMySQL/PyMySQL#1196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003euse KILL instead of COM_KILL for MySQL 8.4 support by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1197\"\u003ePyMySQL/PyMySQL#1197\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edisable VERIFY_X509_STRICT for Python 3.13 support by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1198\"\u003ePyMySQL/PyMySQL#1198\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update codecov/codecov-action action to v5 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1191\"\u003ePyMySQL/PyMySQL#1191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd MariaDB to README.md by \u003ca href=\"https://github.com/robertsilen\"\u003e\u003ccode\u003e@​robertsilen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1181\"\u003ePyMySQL/PyMySQL#1181\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: use defer_connect instead of mock by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1199\"\u003ePyMySQL/PyMySQL#1199\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: use astral-sh/ruff-action by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1201\"\u003ePyMySQL/PyMySQL#1201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix auth_switch_request handling by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1200\"\u003ePyMySQL/PyMySQL#1200\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: update test matrix by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1215\"\u003ePyMySQL/PyMySQL#1215\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: do not drop MySQL 5.7 test for now by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1216\"\u003ePyMySQL/PyMySQL#1216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate README by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1217\"\u003ePyMySQL/PyMySQL#1217\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eprepare v1.1.2 by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1218\"\u003ePyMySQL/PyMySQL#1218\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/palm002\"\u003e\u003ccode\u003e@​palm002\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1174\"\u003ePyMySQL/PyMySQL#1174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1182\"\u003ePyMySQL/PyMySQL#1182\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theneuralcraftsman\"\u003e\u003ccode\u003e@​theneuralcraftsman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1186\"\u003ePyMySQL/PyMySQL#1186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1190\"\u003ePyMySQL/PyMySQL#1190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ek247\"\u003e\u003ccode\u003e@​ek247\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1195\"\u003ePyMySQL/PyMySQL#1195\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robertsilen\"\u003e\u003ccode\u003e@​robertsilen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1181\"\u003ePyMySQL/PyMySQL#1181\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyMySQL/PyMySQL/compare/v1.1.1...v1.1.2\"\u003ehttps://github.com/PyMySQL/PyMySQL/compare/v1.1.1...v1.1.2\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/PyMySQL/PyMySQL/blob/main/CHANGELOG.md\"\u003epymysql's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.2\u003c/h2\u003e\n\u003cp\u003eRelease date: 2025-08-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent UnboundLocalError in very rare situation. \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1174\"\u003ePyMySQL/PyMySQL#1174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClose underlying \u003ccode\u003eSocketIO\u003c/code\u003e soon when Connection is closed for PyPy. \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1183\"\u003ePyMySQL/PyMySQL#1183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix importing PyMySQL fail on CPython 3.13 when \u003ccode\u003egetpass.getuser()\u003c/code\u003e raises OSEError. \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1190\"\u003ePyMySQL/PyMySQL#1190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake charset name \u0026quot;utf8\u0026quot; case insensitive. \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1195\"\u003ePyMySQL/PyMySQL#1195\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.kill()\u003c/code\u003e uses \u003ccode\u003eKILL\u003c/code\u003e query instead of \u003ccode\u003eCOM_KILL\u003c/code\u003ecommand to support MySQL 8.4. \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1197\"\u003ePyMySQL/PyMySQL#1197\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix SSL error on CPython 3.13 caused by strict TLS default setting. \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1198\"\u003ePyMySQL/PyMySQL#1198\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix auth switch request handling. \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1200\"\u003ePyMySQL/PyMySQL#1200\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/PyMySQL/PyMySQL/commit/d7bb777e503d82bf2496113f07dd4ab249615efc\"\u003e\u003ccode\u003ed7bb777\u003c/code\u003e\u003c/a\u003e release v1.1.2 (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/2559de5a6b01917622fc8986cd3dd8479d7d6e95\"\u003e\u003ccode\u003e2559de5\u003c/code\u003e\u003c/a\u003e update README (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1217\"\u003e#1217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/a388c3a5e274c3b8c03e5f1dcb442b4bb2f9bafd\"\u003e\u003ccode\u003ea388c3a\u003c/code\u003e\u003c/a\u003e ci: do not drop MySQL 5.7 test for now (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1216\"\u003e#1216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/9a3fe442edaca9db6da1809c82dbb6f4192440ee\"\u003e\u003ccode\u003e9a3fe44\u003c/code\u003e\u003c/a\u003e ci: update test matrix (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1215\"\u003e#1215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/bed601f04fb982c7c42c6ff7e56b7f749ac64cc9\"\u003e\u003ccode\u003ebed601f\u003c/code\u003e\u003c/a\u003e Add DeepWiki badge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/01af30fea0880c3b72e6c7b3b05d66a8c28ced7a\"\u003e\u003ccode\u003e01af30f\u003c/code\u003e\u003c/a\u003e fix auth_switch_request handling (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1200\"\u003e#1200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/53efd1ec7f0e854abc62eb875b944f56bca29dd2\"\u003e\u003ccode\u003e53efd1e\u003c/code\u003e\u003c/a\u003e ci: use astral-sh/ruff-action (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1201\"\u003e#1201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/e88b729f8f1ddcf0851e0153188b016d0e9ec00c\"\u003e\u003ccode\u003ee88b729\u003c/code\u003e\u003c/a\u003e remove codeql and codesee actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/5f6533f883535b76c2d3a776c4746027027106f8\"\u003e\u003ccode\u003e5f6533f\u003c/code\u003e\u003c/a\u003e refactor: use defer_connect instead of mock (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1199\"\u003e#1199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/66ad1eaa47cfde19dfe01900ceb5f6ea51483e95\"\u003e\u003ccode\u003e66ad1ea\u003c/code\u003e\u003c/a\u003e add MariaDB to README.md (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1181\"\u003e#1181\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyMySQL/PyMySQL/compare/v1.1.1...v1.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zeep` from 4.3.1 to 4.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mvantellingen/python-zeep/releases\"\u003ezeep's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate proxy argument in httpx Client/AsyncClient by \u003ca href=\"https://github.com/aschollmeier-gcmlp\"\u003e\u003ccode\u003e@​aschollmeier-gcmlp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mvantellingen/python-zeep/pull/1447\"\u003emvantellingen/python-zeep#1447\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReformat using newer version of black. by \u003ca href=\"https://github.com/iksteen\"\u003e\u003ccode\u003e@​iksteen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mvantellingen/python-zeep/pull/1470\"\u003emvantellingen/python-zeep#1470\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/aschollmeier-gcmlp\"\u003e\u003ccode\u003e@​aschollmeier-gcmlp\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/mvantellingen/python-zeep/pull/1447\"\u003emvantellingen/python-zeep#1447\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/iksteen\"\u003e\u003ccode\u003e@​iksteen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/mvantellingen/python-zeep/pull/1470\"\u003emvantellingen/python-zeep#1470\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/mvantellingen/python-zeep/compare/4.3.1...4.3.2\"\u003ehttps://github.com/mvantellingen/python-zeep/compare/4.3.1...4.3.2\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/mvantellingen/python-zeep/blob/main/CHANGES\"\u003ezeep's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.2 (2025-09-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport newer versions of httpx (\u003ca href=\"https://redirect.github.com/mvantellingen/python-zeep/issues/1447\"\u003e#1447\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/mvantellingen/python-zeep/commit/a345e0207db4ed22b811841dbc264c1afb5165ff\"\u003e\u003ccode\u003ea345e02\u003c/code\u003e\u003c/a\u003e Bump version: 4.3.1 → 4.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvantellingen/python-zeep/commit/add5b00c3f93f88deaa7189f4ed0f75298566035\"\u003e\u003ccode\u003eadd5b00\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvantellingen/python-zeep/commit/db66342260d548ab4eceda3238a4681de76dee22\"\u003e\u003ccode\u003edb66342\u003c/code\u003e\u003c/a\u003e Reformat using newer version of black.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvantellingen/python-zeep/commit/f90dc509cabd7bc04ddab37849ea08929a2b26ef\"\u003e\u003ccode\u003ef90dc50\u003c/code\u003e\u003c/a\u003e Avoid potential AttributeError in httpx version check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvantellingen/python-zeep/commit/dc0b3181ea9ad1612f235d36e9d0ec1512a6ed5c\"\u003e\u003ccode\u003edc0b318\u003c/code\u003e\u003c/a\u003e Correct httpx version comparison\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvantellingen/python-zeep/commit/7ebe1fae5fc15393afb15a76406af3fac3661e1d\"\u003e\u003ccode\u003e7ebe1fa\u003c/code\u003e\u003c/a\u003e Update proxy argument in httpx Client/AsyncClient\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mvantellingen/python-zeep/compare/4.3.1...4.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.13.4 to 4.14.2\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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/Club-Alpin-Annecy/collectives/pull/822","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Club-Alpin-Annecy%2Fcollectives/issues/822","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/822/packages"},{"uuid":"2842040895","node_id":"PR_kwDOKyz0J86pZho_","number":20,"state":"closed","title":"chore(deps): update sqlalchemy-utils requirement from \u003c0.35,\u003e=0.34 to \u003e=0.34,\u003c0.43 in /app","user":"dependabot[bot]","labels":[],"assignees":["jmessiass"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-19T19:41:26.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-19T01:33:04.000Z","updated_at":"2025-09-19T19:41:26.000Z","time_to_close":65302,"merged_at":"2025-09-19T19:41:26.000Z","merged_by":"jmessiass","closed_by":null,"dependency_metadata":{"prefix":"chore(deps): update","packages":[{"name":"sqlalchemy-utils","old_version":"\u003c0.35,\u003e=0.34","new_version":"\u003e=0.34,\u003c0.43","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":"/app","ecosystem":"pip"},"body":"Updates the requirements on [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) 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/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.41.2 (2024-03-22)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix breaking change introduced on SQLAlchemy 2.0.22 changes to \u003ccode\u003eattributes.AttributeImpl\u003c/code\u003e constructor (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/733\"\u003e#733\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.41.1 (2023-04-27)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse a custom SQL construct for refreshing materialized views in\n\u003ccode\u003erefresh_materialized_view\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/703\"\u003e#703\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.41.0 (2023-04-13)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport psycopg3 for \u003ccode\u003ecreate_database()\u003c/code\u003e and \u003ccode\u003edelete_database()\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/701\"\u003e#701\u003c/a\u003e, pull request by LerikP)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.40.0 (2023-02-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove Python 3.6 support\u003c/li\u003e\n\u003cli\u003eAdd SQLAlchemy 2 support\u003c/li\u003e\n\u003cli\u003eAdd comparison operator support for LTree type (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/668\"\u003e#668\u003c/a\u003e, pull request by salimfadhley)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.39.0 (2022-12-23)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.11.\u003c/li\u003e\n\u003cli\u003eAdd pre-commit hooks for uniform text checks, isort, flake8, and pyupgrade.\u003c/li\u003e\n\u003cli\u003eFix a crash that occurs if the \u003ccode\u003ecolour-science\u003c/code\u003e package is installed,\nwhich shares the same import name as the \u003ccode\u003ecolour\u003c/code\u003e package that sqlalchemy-utils supports.\n(\u003ccode\u003e[#637](https://github.com/kvesteri/sqlalchemy-utils/issues/637) \u0026lt;https://github.com/kvesteri/sqlalchemy-utils/pull/637\u0026gt;\u003c/code\u003e_, courtesy of JayPalm)\u003c/li\u003e\n\u003cli\u003eFix a crash that occurs if the installed sqlalchemy version is a beta (like \u003ccode\u003e\u0026quot;2.0.0b3\u0026quot;\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.34.0...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/jmessiass/devsecops/pull/20","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmessiass%2Fdevsecops/issues/20","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20/packages"},{"uuid":"2829415676","node_id":"PR_kwDOJUdrNc6opXT8","number":60,"state":"open","title":"poetry prod(deps): update sqlalchemy-utils requirement from ^0.41.2 to ^0.42.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["mariofix"],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-15T14:04:45.000Z","updated_at":"2025-09-15T14:04:46.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"poetry prod(deps): update","packages":[{"name":"sqlalchemy-utils","old_version":"^0.41.2","new_version":"^0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) 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/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.41.2 (2024-03-22)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix breaking change introduced on SQLAlchemy 2.0.22 changes to \u003ccode\u003eattributes.AttributeImpl\u003c/code\u003e constructor (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/733\"\u003e#733\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.41.1 (2023-04-27)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse a custom SQL construct for refreshing materialized views in\n\u003ccode\u003erefresh_materialized_view\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/703\"\u003e#703\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.41.0 (2023-04-13)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport psycopg3 for \u003ccode\u003ecreate_database()\u003c/code\u003e and \u003ccode\u003edelete_database()\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/701\"\u003e#701\u003c/a\u003e, pull request by LerikP)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.40.0 (2023-02-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove Python 3.6 support\u003c/li\u003e\n\u003cli\u003eAdd SQLAlchemy 2 support\u003c/li\u003e\n\u003cli\u003eAdd comparison operator support for LTree type (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/668\"\u003e#668\u003c/a\u003e, pull request by salimfadhley)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.39.0 (2022-12-23)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.11.\u003c/li\u003e\n\u003cli\u003eAdd pre-commit hooks for uniform text checks, isort, flake8, and pyupgrade.\u003c/li\u003e\n\u003cli\u003eFix a crash that occurs if the \u003ccode\u003ecolour-science\u003c/code\u003e package is installed,\nwhich shares the same import name as the \u003ccode\u003ecolour\u003c/code\u003e package that sqlalchemy-utils supports.\n(\u003ccode\u003e[#637](https://github.com/kvesteri/sqlalchemy-utils/issues/637) \u0026lt;https://github.com/kvesteri/sqlalchemy-utils/pull/637\u0026gt;\u003c/code\u003e_, courtesy of JayPalm)\u003c/li\u003e\n\u003cli\u003eFix a crash that occurs if the installed sqlalchemy version is a beta (like \u003ccode\u003e\u0026quot;2.0.0b3\u0026quot;\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.2...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/mariofix/merchants/pull/60","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariofix%2Fmerchants/issues/60","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/60/packages"},{"uuid":"2828018229","node_id":"PR_kwDOLzgXB86okCI1","number":602,"state":"closed","title":"Bump the allpip group across 1 directory with 14 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-22T06:21:25.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-15T06:46:37.000Z","updated_at":"2025-09-22T06:21:25.000Z","time_to_close":603288,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"allpip","update_count":14,"packages":[{"name":"alembic","old_version":"1.16.4","new_version":"1.16.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"pydantic","old_version":"2.11.7","new_version":"2.11.9","repository_url":"https://github.com/pydantic/pydantic"},{"name":"sqlalchemy-utils","old_version":"0.41.2","new_version":"0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"},{"name":"authlib","old_version":"1.6.2","new_version":"1.6.3","repository_url":"https://github.com/authlib/authlib"},{"name":"poetry","old_version":"2.1.4","new_version":"2.2.0","repository_url":"https://github.com/python-poetry/poetry"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-mock","old_version":"3.14.1","new_version":"3.15.0","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"coverage","old_version":"7.10.5","new_version":"7.10.6","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"playwright","old_version":"1.54.0","new_version":"1.55.0","repository_url":"https://github.com/microsoft/playwright-python"},{"name":"pytest-playwright","old_version":"0.7.0","new_version":"0.7.1","repository_url":"https://github.com/microsoft/playwright-pytest"},{"name":"ruff","old_version":"0.12.10","new_version":"0.13.0","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pyright","old_version":"1.1.404","new_version":"1.1.405","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"types-pyyaml","old_version":"6.0.12.20250822","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"pip"},"body":"Bumps the allpip group with 14 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.16.5` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.7` | `2.11.9` |\n| [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) | `0.41.2` | `0.42.0` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.2` | `1.6.3` |\n| [poetry](https://github.com/python-poetry/poetry) | `2.1.4` | `2.2.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.1.0` | `1.2.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.1` | `3.15.0` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.5` | `7.10.6` |\n| [playwright](https://github.com/microsoft/playwright-python) | `1.54.0` | `1.55.0` |\n| [pytest-playwright](https://github.com/microsoft/playwright-pytest) | `0.7.0` | `0.7.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.10` | `0.13.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.404` | `1.1.405` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20250822` | `6.0.12.20250915` |\n\n\nUpdates `alembic` from 1.16.4 to 1.16.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.16.5\u003c/h1\u003e\n\u003cp\u003eReleased: August 27, 2025\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [mysql]\u003c/strong\u003e Fixed Python-side autogenerate rendering of index expressions in MySQL\ndialect by aligning it with SQLAlchemy's MySQL index expression rules. Pull\nrequest courtesy david-fed.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1492\"\u003e#1492\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [config]\u003c/strong\u003e Fixed issue where new pyproject.toml config would fail to parse the integer\nvalue used for the \u003ccode\u003etruncate_slug_length\u003c/code\u003e parameter.  Pull request\ncourtesy Luís Henrique Allebrandt Schunemann.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1709\"\u003e#1709\u003c/a\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/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.11.7 to 2.11.9\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.11.9 2025-09-13\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBackport v1.10.23 changes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\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/pydantic/pydantic/compare/v2.11.8...v2.11.9\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.8...v2.11.9\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.8 2025-09-13\u003c/h2\u003e\n\u003ch2\u003ev2.11.8 (2025-09-13)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix mypy plugin for mypy 1.18 by \u003ca href=\"https://github.com/cdce8p\"\u003e\u003ccode\u003e@​cdce8p\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12209\"\u003e#12209\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.11.7...v2.11.8\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.8\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/pydantic/pydantic/blob/v2.11.9/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.9 (2025-09-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.9\"\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\u003eBackport v1.10.23 changes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.8 (2025-09-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.8\"\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 mypy plugin for mypy 1.18 by \u003ca href=\"https://github.com/cdce8p\"\u003e\u003ccode\u003e@​cdce8p\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12209\"\u003e#12209\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/pydantic/pydantic/commit/92310953c146a2ac668a0141be820c083e325f5d\"\u003e\u003ccode\u003e9231095\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f003a89eeaff35ee18f220a2c790d20536e3d0ab\"\u003e\u003ccode\u003ef003a89\u003c/code\u003e\u003c/a\u003e Backport v1.10.23 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/96b81ddaf93a1f2e19ff1609080c33de10b8d931\"\u003e\u003ccode\u003e96b81dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/966f377692194b3f1d6d5155ac78052bec0a751d\"\u003e\u003ccode\u003e966f377\u003c/code\u003e\u003c/a\u003e Fix mypy v2 plugin for upcoming \u003ccode\u003e1.18\u003c/code\u003e mypy release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy-utils` from 0.41.2 to 0.42.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.2...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `authlib` from 1.6.2 to 1.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/authlib/releases\"\u003eauthlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd diff-cover check in GHA by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/803\"\u003eauthlib/authlib#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun GHA unit tests with uv by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/805\"\u003eauthlib/authlib#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove from pre-commit to prek by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/804\"\u003eauthlib/authlib#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSign OIDC id_token  according to \u003ccode\u003eid_token_signed_response_alg\u003c/code\u003e client metadata by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/802\"\u003eauthlib/authlib#802\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.2...v1.6.3\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.2...v1.6.3\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/authlib/authlib/blob/main/docs/changelog.rst\"\u003eauthlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.3\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on Aug 26, 2025\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOIDC \u003ccode\u003eid_token\u003c/code\u003e are signed according to \u003ccode\u003eid_token_signed_response_alg\u003c/code\u003e\nclient metadata. :issue:\u003ccode\u003e755\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/authlib/authlib/commit/dbbfa9abcfe725001b452cf08d9e48be0ebfdce9\"\u003e\u003ccode\u003edbbfa9a\u003c/code\u003e\u003c/a\u003e chore: bump to 1.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/bc71165f79024efde3193a040e46f6fb01135ddf\"\u003e\u003ccode\u003ebc71165\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/802\"\u003e#802\u003c/a\u003e from azmeuk/755-idtoken-metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/40cfb4ea4cc8a4025b87ccf0a1549ed49134eebd\"\u003e\u003ccode\u003e40cfb4e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/804\"\u003e#804\u003c/a\u003e from azmeuk/prek\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/d99c771a8a81507a4a7f1792a905aa6ed977ed93\"\u003e\u003ccode\u003ed99c771\u003c/code\u003e\u003c/a\u003e chore: move from pre-commit to prek\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/83de6183e1c1cfa908167cc5f2eed6c50f0e348e\"\u003e\u003ccode\u003e83de618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/805\"\u003e#805\u003c/a\u003e from azmeuk/gha-uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/b72ee3fcdc293af22f0ffc4f7489d220f06ac93c\"\u003e\u003ccode\u003eb72ee3f\u003c/code\u003e\u003c/a\u003e chore: run GHA unit tests with uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/799fb2a3642f7ffb2620ba1ea87c6719ea356e83\"\u003e\u003ccode\u003e799fb2a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/803\"\u003e#803\u003c/a\u003e from azmeuk/diff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/2ce4c7e3ae8cd7c9bf951a3d1373fc34bd8496e7\"\u003e\u003ccode\u003e2ce4c7e\u003c/code\u003e\u003c/a\u003e chore: add diff-cover check in GHA\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/86b1b7877741e345793dbce5b45bff2e52ccfab3\"\u003e\u003ccode\u003e86b1b78\u003c/code\u003e\u003c/a\u003e fix: OIDC id_token is signed according to id_token_signed_response_alg client...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/0d03ee9dd758f95853356fa1eea3fbce37109eb0\"\u003e\u003ccode\u003e0d03ee9\u003c/code\u003e\u003c/a\u003e test: configure DJANGO_SETTINGS_MODULE with pytest-env\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.2...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `poetry` from 2.1.4 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-poetry/poetry/releases\"\u003epoetry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd support for nesting dependency groups\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10166\"\u003e#10166\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAdd support for PEP 735 dependency groups\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10130\"\u003e#10130\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAdd support for PEP 639 license clarity\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10413\"\u003e#10413\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003e--format\u003c/code\u003e option to \u003ccode\u003epoetry show\u003c/code\u003e to alternatively output json format (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10487\"\u003e#10487\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd official support for Python 3.14 (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10514\"\u003e#10514\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNormalize dependency group names\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10387\"\u003e#10387\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003einstaller.no-binary\u003c/code\u003e and \u003ccode\u003einstaller.only-binary\u003c/code\u003e so that explicit package names will take precedence over \u003ccode\u003e:all:\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10278\"\u003e#10278\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImprove log output during \u003ccode\u003epoetry install\u003c/code\u003e when a wheel is built from source (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10404\"\u003e#10404\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImprove error message in case a file lock could not be acquired while cloning a git repository (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10535\"\u003e#10535\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRequire \u003ccode\u003edulwich\u0026gt;=0.24.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10492\"\u003e#10492\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003evirtualenv\u0026gt;=20.33\u003c/code\u003e again (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10506\"\u003e#10506\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003efindpython\u0026gt;=0.7\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10510\"\u003e#10510\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eimportlib-metadata\u0026gt;=8.7\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10511\"\u003e#10511\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry new\u003c/code\u003e did not create the project structure in an existing empty directory (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10431\"\u003e#10431\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a dependency that was required for a specific Python version was not installed into an environment of a pre-release Python version (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10516\"\u003e#10516\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003epoetry-core (\u003ca href=\"https://github.com/python-poetry/poetry-core/releases/tag/2.2.0\"\u003e\u003ccode\u003e2.2.0\u003c/code\u003e\u003c/a\u003e)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate table values and values that are not valid SPDX expressions for \u003ccode\u003e[project.license]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry-core/pull/870\"\u003e#870\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where explicitly included files that are in \u003ccode\u003e.gitignore\u003c/code\u003e were not included in the distribution (\u003ca href=\"https://redirect.github.com/python-poetry/poetry-core/pull/874\"\u003e#874\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where marker operations could result in invalid markers (\u003ca href=\"https://redirect.github.com/python-poetry/poetry-core/pull/875\"\u003e#875\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/python-poetry/poetry/blob/main/CHANGELOG.md\"\u003epoetry's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.0] - 2025-09-14\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd support for nesting dependency groups\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10166\"\u003e#10166\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAdd support for PEP 735 dependency groups\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10130\"\u003e#10130\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAdd support for PEP 639 license clarity\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10413\"\u003e#10413\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003e--format\u003c/code\u003e option to \u003ccode\u003epoetry show\u003c/code\u003e to alternatively output json format (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10487\"\u003e#10487\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd official support for Python 3.14 (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10514\"\u003e#10514\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNormalize dependency group names\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10387\"\u003e#10387\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003einstaller.no-binary\u003c/code\u003e and \u003ccode\u003einstaller.only-binary\u003c/code\u003e so that explicit package names will take precedence over \u003ccode\u003e:all:\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10278\"\u003e#10278\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImprove log output during \u003ccode\u003epoetry install\u003c/code\u003e when a wheel is built from source (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10404\"\u003e#10404\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImprove error message in case a file lock could not be acquired while cloning a git repository (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10535\"\u003e#10535\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRequire \u003ccode\u003edulwich\u0026gt;=0.24.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10492\"\u003e#10492\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003evirtualenv\u0026gt;=20.33\u003c/code\u003e again (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10506\"\u003e#10506\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003efindpython\u0026gt;=0.7\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10510\"\u003e#10510\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eimportlib-metadata\u0026gt;=8.7\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10511\"\u003e#10511\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry new\u003c/code\u003e did not create the project structure in an existing empty directory (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10431\"\u003e#10431\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a dependency that was required for a specific Python version was not installed into an environment of a pre-release Python version (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10516\"\u003e#10516\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003epoetry-core (\u003ca href=\"https://github.com/python-poetry/poetry-core/releases/tag/2.2.0\"\u003e\u003ccode\u003e2.2.0\u003c/code\u003e\u003c/a\u003e)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate table values and values that are not valid SPDX expressions for \u003ccode\u003e[project.license]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry-core/pull/870\"\u003e#870\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where explicitly included files that are in \u003ccode\u003e.gitignore\u003c/code\u003e were not included in the distribution (\u003ca href=\"https://redirect.github.com/python-poetry/poetry-core/pull/874\"\u003e#874\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where marker operations could result in invalid markers (\u003ca href=\"https://redirect.github.com/python-poetry/poetry-core/pull/875\"\u003e#875\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-poetry/poetry/commit/4dba0e1b041366b3f05bec89dca82e902e6386e8\"\u003e\u003ccode\u003e4dba0e1\u003c/code\u003e\u003c/a\u003e release: bump version to 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/057539958200133670a73d7e265f9eb5e9f52bc6\"\u003e\u003ccode\u003e0575399\u003c/code\u003e\u003c/a\u003e ensure Python 3.14 compatibility (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10514\"\u003e#10514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/651a8c0367b27ca38ea2bac8511866cf1a8f06d7\"\u003e\u003ccode\u003e651a8c0\u003c/code\u003e\u003c/a\u003e tests: make tests independent of currently available Python versions (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10547\"\u003e#10547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/19146aaac37974ca5a0554598243c6afce0e818b\"\u003e\u003ccode\u003e19146aa\u003c/code\u003e\u003c/a\u003e tests: fix deprecation warning (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10545\"\u003e#10545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/c0670950403ff9a2b30f08f1aabe52d88943e325\"\u003e\u003ccode\u003ec067095\u003c/code\u003e\u003c/a\u003e keep deprecation a little longer since it does not really hurt (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10544\"\u003e#10544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/251633510a75d4abc7db59f4e4c1f13d9b8388fc\"\u003e\u003ccode\u003e2516335\u003c/code\u003e\u003c/a\u003e docs: add \u003ccode\u003edependency-groups\u003c/code\u003e example with \u003ccode\u003einclude-group\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10543\"\u003e#10543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/985449a7e8af94d9ccd4b4e6290098eacf192daa\"\u003e\u003ccode\u003e985449a\u003c/code\u003e\u003c/a\u003e chore: update actions (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10542\"\u003e#10542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/bc536be5118ec4490bc76448c71a4fb900945668\"\u003e\u003ccode\u003ebc536be\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10377\"\u003e#10377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/74b645d68c8b86988f0e8711bd2a13dc9cf11536\"\u003e\u003ccode\u003e74b645d\u003c/code\u003e\u003c/a\u003e add: do not create empty [tool.poetry.group] sections when adding a dependenc...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/41a7d220b8d2a31ae03072c0395464c4937e936c\"\u003e\u003ccode\u003e41a7d22\u003c/code\u003e\u003c/a\u003e fix remove if standard and poetry section is used (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10130\"\u003e#10130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-poetry/poetry/compare/2.1.4...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 8.4.2\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\u003e8.4.2\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.2 (2025-09-03)\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/13478\"\u003e#13478\u003c/a\u003e: Fixed a crash when using \u003ccode\u003econsole_output_style\u003c/code\u003e{.interpreted-text role=\u0026quot;confval\u0026quot;} with \u003ccode\u003etimes\u003c/code\u003e and a module is skipped.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13530\"\u003e#13530\u003c/a\u003e: Fixed a crash when using \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and \u003ccode\u003edecimal.Decimal\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} instances with the \u003ccode\u003edecimal.FloatOperation\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} trap set.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13549\"\u003e#13549\u003c/a\u003e: No longer evaluate type annotations in Python \u003ccode\u003e3.14\u003c/code\u003e when inspecting function signatures.\u003c/p\u003e\n\u003cp\u003eThis prevents crashes during module collection when modules do not explicitly use \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e and import types for annotations within a \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13559\"\u003e#13559\u003c/a\u003e: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in \u003ccode\u003epytest.Parser.addini\u003c/code\u003e{.interpreted-text role=\u0026quot;meth\u0026quot;}.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13563\"\u003e#13563\u003c/a\u003e: \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now only imports \u003ccode\u003enumpy\u003c/code\u003e if NumPy is already in \u003ccode\u003esys.modules\u003c/code\u003e. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.\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/13577\"\u003e#13577\u003c/a\u003e: Clarify that \u003ccode\u003epytest_generate_tests\u003c/code\u003e is discovered in test modules/classes; other hooks must be in \u003ccode\u003econftest.py\u003c/code\u003e or plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13480\"\u003e#13480\u003c/a\u003e: Self-testing: fixed a few test failures when run with \u003ccode\u003e-Wdefault\u003c/code\u003e or a similar override.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13547\"\u003e#13547\u003c/a\u003e: Self-testing: corrected expected message for \u003ccode\u003etest_doctest_unexpected_exception\u003c/code\u003e in Python \u003ccode\u003e3.14\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13684\"\u003e#13684\u003c/a\u003e: Make pytest's own testsuite insensitive to the presence of the \u003ccode\u003eCI\u003c/code\u003e environment variable -- by \u003ccode\u003eogrisel\u003c/code\u003e{.interpreted-text role=\u0026quot;user\u0026quot;}.\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/bfae4224fd554d3d7f2c277a4cc092b6ec6af3ae\"\u003e\u003ccode\u003ebfae422\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/89905381a163be30ae87d62e5f750e902d750c5f\"\u003e\u003ccode\u003e8990538\u003c/code\u003e\u003c/a\u003e Fix passenv CI in tox ini and make tests insensitive to the presence of the C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ca676bfe005aebcb12f4146d1b0f1d2772e2cd5d\"\u003e\u003ccode\u003eca676bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13687\"\u003e#13687\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/e63f6e51c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/975a60a63ce385a44655596e254c1899feaa53e4\"\u003e\u003ccode\u003e975a60a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13686\"\u003e#13686\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/12bde8af6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7723ce84b87ab08f86ddafcb342acc28ba5ec99d\"\u003e\u003ccode\u003e7723ce8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13683\"\u003e#13683\u003c/a\u003e from even-even/fix_Exeption_to_Exception_in_errorMe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7f05680d1301e0969b30bcb3c4b27433c9ee2b7\"\u003e\u003ccode\u003eb7f0568\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13685\"\u003e#13685\u003c/a\u003e from CoretexShadow/fix/docs-pytest-generate-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2c94c4a6948ba53440818389298157fa5d5f94cd\"\u003e\u003ccode\u003e2c94c4a\u003c/code\u003e\u003c/a\u003e add missing colon (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13640\"\u003e#13640\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13641\"\u003e#13641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c3d7684bc01c8c48d05145a30c5211ca8656c68c\"\u003e\u003ccode\u003ec3d7684\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13606\"\u003e#13606\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/5f9938563...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/dc6e3be2ddc75a149b6d102d9b7c82ee47a00cfa\"\u003e\u003ccode\u003edc6e3be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13605\"\u003e#13605\u003c/a\u003e from The-Compiler/training-update-2025-07\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f87289c36c8dbe7740e3020f5546b6f8b0861ff0\"\u003e\u003ccode\u003ef87289c\u003c/code\u003e\u003c/a\u003e Fix crash with \u003ccode\u003etimes\u003c/code\u003e output style and skipped module (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13573\"\u003e#13573\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13579\"\u003e#13579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio 1.2.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.2.0\"\u003e1.2.0\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--asyncio-debug\u003c/code\u003e CLI option and \u003ccode\u003easyncio_debug\u003c/code\u003e configuration option to enable asyncio debug mode for the default event loop. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003epytest.UsageError\u003c/code\u003e for invalid configuration values of \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e and \u003ccode\u003easyncio_default_test_loop_scope\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1189\"\u003e#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCompatibility with the Pyright type checker (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRuntimeError: There is no current event loop in thread 'MainThread'\u003c/code\u003e when any test unsets the event loop (such as when using \u003ccode\u003easyncio.run\u003c/code\u003e and \u003ccode\u003easyncio.Runner\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1177\"\u003e#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning when decorating an asynchronous fixture with \u003ccode\u003e@pytest.fixture\u003c/code\u003e in [strict]{.title-ref} mode. The warning message now refers to the correct package. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the minimum required version of tox to v4.28. This change is only relevant if you use the \u003ccode\u003etox.ini\u003c/code\u003e file provided by pytest-asyncio to run tests.\u003c/li\u003e\n\u003cli\u003eExtend dependency on typing-extensions\u0026gt;=4.12 from Python\u0026lt;3.10 to Python\u0026lt;3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.1.1\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/v1.1.1\"\u003ev1.1.1\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cp\u003e- Addresses a build problem with setuptoos-scm \u0026gt;= 9 caused by invalid setuptools-scm configuration in pytest-asyncio. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1192\"\u003e#1192\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/pytest-dev/pytest-asyncio/commit/0d3988f5adc16e8b364266c9ecda42a36d5892ff\"\u003e\u003ccode\u003e0d3988f\u003c/code\u003e\u003c/a\u003e ci: Create GitHub release before publishing to PyPI.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/07c5a0b3e0bb99c7592ab87ed17a4bb2966fdf6a\"\u003e\u003ccode\u003e07c5a0b\u003c/code\u003e\u003c/a\u003e docs: Include orphaned news fragment in changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/be24582b86375b761534639be6c2941d0b3f116c\"\u003e\u003ccode\u003ebe24582\u003c/code\u003e\u003c/a\u003e chore: Prepare release of v1.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/7aeb296b9f95e57c371734dcb1d3ece3f7c81727\"\u003e\u003ccode\u003e7aeb296\u003c/code\u003e\u003c/a\u003e docs: Streamline news fragments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/7b8311cf1d2f67931f4fd9bbbe6d9f3b09572ebb\"\u003e\u003ccode\u003e7b8311c\u003c/code\u003e\u003c/a\u003e ci: Fixes a bug that prevented SSH signature from being stripped from release...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/9d4c2bd8770d4073e015213373975f217d3ac8f5\"\u003e\u003ccode\u003e9d4c2bd\u003c/code\u003e\u003c/a\u003e docs: Add changelog entry for Pyright compatibility.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/94f6106ea0c7ee716d7cf85377c653baa9cb7cd9\"\u003e\u003ccode\u003e94f6106\u003c/code\u003e\u003c/a\u003e test: Added tests which assert that the event loop is reinstated if unset by ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/df61991f1805f45ab31ae2d2fb73a54ff25ccd0c\"\u003e\u003ccode\u003edf61991\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/f1f7941691ff506ab553dfd6d00b09e8213eeff7\"\u003e\u003ccode\u003ef1f7941\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.1 to 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/c77d3d38f7adb41f5f6ea7b002da4e0f480c5c24\"\u003e\u003ccode\u003ec77d3d3\u003c/code\u003e\u003c/a\u003e Build(deps): Bump twine from 6.1.0 to 6.2.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v1.1.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-mock` from 3.14.1 to 3.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-mock/releases\"\u003epytest-mock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.15.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-04\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 (EOL) is no longer supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/pull/524\"\u003e#524\u003c/a\u003e: Added \u003ccode\u003espy_return_iter\u003c/code\u003e to \u003ccode\u003emocker.spy\u003c/code\u003e, which contains a duplicate of the return value of the spied method if it is an \u003ccode\u003eIterator\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst\"\u003epytest-mock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.15.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-04\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 (EOL) is no longer supported.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#524](https://github.com/pytest-dev/pytest-mock/issues/524) \u0026lt;https://github.com/pytest-dev/pytest-mock/pull/524\u0026gt;\u003c/code\u003e_: Added \u003ccode\u003espy_return_iter\u003c/code\u003e to \u003ccode\u003emocker.spy\u003c/code\u003e, which contains a duplicate of the return value of the spied method if it is an \u003ccode\u003eIterator\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/pytest-dev/pytest-mock/commit/90b29f89e2086c139a7b4fea89202faa192ee5a9\"\u003e\u003ccode\u003e90b29f8\u003c/code\u003e\u003c/a\u003e Update CHANGELOG for 3.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/53a6190b9c793f0b1801cd8b08afd58d3436bad6\"\u003e\u003ccode\u003e53a6190\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/5aa9e9cd7e0d25403c8d9d478bc3480bb5ca2456\"\u003e\u003ccode\u003e5aa9e9c\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003espy_return_iter\u003c/code\u003e attribute to \u003ccode\u003espy\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/dc6df75a91aad4980af1a711e42a2ade19960f36\"\u003e\u003ccode\u003edc6df75\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish in /.github/workflows (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/526\"\u003e#526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/b977d83d051390c5efd91b02884236ea5eba8ae4\"\u003e\u003ccode\u003eb977d83\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/bd66c9cb8b1ffc59b4d9e42a1b413bafa3a16eac\"\u003e\u003ccode\u003ebd66c9c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/f9e47b6e1685169972488391d8c2ba1d10e0901d\"\u003e\u003ccode\u003ef9e47b6\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/3aec7677f47f6c4b89dbdee9e4a32a8fe047943f\"\u003e\u003ccode\u003e3aec767\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/e09e5be3fcaa54102006b7c01add91ac33ebf9ed\"\u003e\u003ccode\u003ee09e5be\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/ba83a70ff9c15c0b8534e7f1a7c6ba5321aea046\"\u003e\u003ccode\u003eba83a70\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-mock/compare/v3.14.1...v3.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.5 to 7.10.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.6 — 2025-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003esource\u003c/code\u003e directories were not properly communicated to subprocesses\nthat ran in different directories, as reported in \u003ccode\u003eissue 1499\u003c/code\u003e_.  This is now\nfixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: \u003ccode\u003eAlex Gaynor continues fine-tuning \u0026lt;pull 2038_\u0026gt;\u003c/code\u003e_ the speed of\ncombination, especially with many contexts.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1499: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003enedbat/coveragepy#1499\u003c/a\u003e\n.. _pull 2038: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2038\"\u003enedbat/coveragepy#2038\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-5:\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/nedbat/coveragepy/commit/88c55ff87437f7e59b42d131d0e2b6ce413546bf\"\u003e\u003ccode\u003e88c55ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/01d89959bfa825f661121e0f8d173f3ae1ecedac\"\u003e\u003ccode\u003e01d8995\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9b0c24ffc17840464c2343b702a6ee44e10fcadf\"\u003e\u003ccode\u003e9b0c24f\u003c/code\u003e\u003c/a\u003e docs: thanks Alex \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/66d69108654f6fc1de916a37fc06ac898091aa2d\"\u003e\u003ccode\u003e66d6910\u003c/code\u003e\u003c/a\u003e fix: make \u003ccode\u003esource\u003c/code\u003e paths absolute where they exist. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bb3382f50f2b91aebb046d665334a5d361e5ddc5\"\u003e\u003ccode\u003ebb3382f\u003c/code\u003e\u003c/a\u003e build: no need for the combine/html times now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ea349a164527832a49faa3eeec628d59ef75c7c\"\u003e\u003ccode\u003e9ea349a\u003c/code\u003e\u003c/a\u003e lab: warn_executed.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/808c9b48af3ad7b567182d383eb31451615664e0\"\u003e\u003ccode\u003e808c9b4\u003c/code\u003e\u003c/a\u003e build: changing metacov.ini should trigger metacov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/384f5f22bd1ef52000d80922de03922a58ff936c\"\u003e\u003ccode\u003e384f5f2\u003c/code\u003e\u003c/a\u003e build: oops, some 'if's are really line pragmas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a7224af73365ba2d217f0e0966c7873c5bac3a67\"\u003e\u003ccode\u003ea7224af\u003c/code\u003e\u003c/a\u003e perf: pre-compute the mapping between other_db.context and main.context (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5c00c5ba4bcd4f7da6a9f0ccd0797e0944415e8a\"\u003e\u003ccode\u003e5c00c5b\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.10.5...7.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `playwright` from 1.54.0 to 1.55.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.55.0\u003c/h2\u003e\n\u003ch2\u003eCodegen\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatic \u003ccode\u003eto_be_visible()\u003c/code\u003e assertions: Codegen can now generate automatic \u003ccode\u003eto_be_visible()\u003c/code\u003e assertions for common UI interactions. This feature can be enabled in the Codegen settings UI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ Dropped support for Chromium extension manifest v2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Debian 13 \u0026quot;Trixie\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBrowser Versions\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChromium 140.0.7339.16\u003c/li\u003e\n\u003cli\u003eMozilla Firefox 141.0\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 139\u003c/li\u003e\n\u003cli\u003eMicrosoft Edge 139\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/microsoft/playwright-python/commit/4a03d717fa82f1daed6d5f1dab505e8cd06aa8f2\"\u003e\u003ccode\u003e4a03d71\u003c/code\u003e\u003c/a\u003e chore(roll): roll Playwright to 1.55.0-beta-1756314050000 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2960\"\u003e#2960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/3cbe13e58a4a20b4b3aaa1afbdc69747a7c37933\"\u003e\u003ccode\u003e3cbe13e\u003c/code\u003e\u003c/a\u003e chore: roll to 1.55.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2956\"\u003e#2956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/254aabddf3a68c9385cc9e363d2b61fa4bba777d\"\u003e\u003ccode\u003e254aabd\u003c/code\u003e\u003c/a\u003e fix: screenshot type inferred from path file extension (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/1be34f206e1b57cf94cbb295158f75860f744e9c\"\u003e\u003ccode\u003e1be34f2\u003c/code\u003e\u003c/a\u003e fix: timeout option support with fetch api (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2947\"\u003e#2947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/6e9ff7a80f02db4e0ccdb87efadbf543a0c3ceb9\"\u003e\u003ccode\u003e6e9ff7a\u003c/code\u003e\u003c/a\u003e test: unflake cr tracing test (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2942\"\u003e#2942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/e49496e7a803b2fd05e5a7e814db4c0af8962743\"\u003e\u003ccode\u003ee49496e\u003c/code\u003e\u003c/a\u003e build(deps): bump types-requests from 2.32.4.20250611 to 2.32.4.20250809 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2941\"\u003e#2941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/d33a807492c0a944186bc37dd5d71d57e1c36901\"\u003e\u003ccode\u003ed33a807\u003c/code\u003e\u003c/a\u003e build(deps): bump greenlet from 3.2.3 to 3.2.4 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/5cc395e9214b5ebb32ca8629d6905e53824978b5\"\u003e\u003ccode\u003e5cc395e\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5 in the actions group (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/8963460fffe065bfeb58a162f6e35fc8e3e65d4d\"\u003e\u003ccode\u003e8963460\u003c/code\u003e\u003c/a\u003e build(deps): bump build from 1.2.2.post1 to 1.3.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2937\"\u003e#2937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/3fea01e81a33f1ef31e271bdda78d398f18e87be\"\u003e\u003ccode\u003e3fea01e\u003c/code\u003e\u003c/a\u003e test: unflake test_context_add_cookies_should_work (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright-python/compare/v1.54.0...v1.55.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.7.0 to 0.7.1\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.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\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/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\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/364145f3b56749a72ffa57efc9804768d84291f8\"\u003e\u003ccode\u003e364145f\u003c/code\u003e\u003c/a\u003e chore(deps): bump django from 4.2.21 to 4.2.22 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/44fa0cdea251b240245fe776c214de16165b1bc4\"\u003e\u003ccode\u003e44fa0cd\u003c/code\u003e\u003c/a\u003e chore(deps): bump django from 4.2.20 to 4.2.21 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/277\"\u003e#277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/020d641995f5eea618e0e22ccddd696697c63ae3\"\u003e\u003ccode\u003e020d641\u003c/code\u003e\u003c/a\u003e chore: bump pytest-asyncio to v1.0.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/c9e392b90c8bffbbe398c3db30de6daa96972d96\"\u003e\u003ccode\u003ec9e392b\u003c/code\u003e\u003c/a\u003e test: fix Chromium tests on Windows (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/67f7ea36f3857e6ef42ada69a01d43ee2c109db2\"\u003e\u003ccode\u003e67f7ea3\u003c/code\u003e\u003c/a\u003e chore(deps): bump django from 4.2.18 to 4.2.20 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/274\"\u003e#274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright-pytest/compare/v0.7.0...v0.7.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.12.10 to 0.13.0\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.13.0\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eCheck out the \u003ca href=\"https://astral.sh/blog/ruff-v0.13.0\"\u003eblog post\u003c/a\u003e for a migration guide and overview of the changes!\u003c/p\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSeveral rules can now add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e automatically\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e, \u003ccode\u003eRUF013\u003c/code\u003e, and \u003ccode\u003eUP037\u003c/code\u003e now add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e as part of their fixes when the \u003ccode\u003elint.future-annotations\u003c/code\u003e setting is enabled. This allows the rules to move more imports into \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e blocks (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, and \u003ccode\u003eTC003\u003c/code\u003e), use PEP 604 union syntax on Python versions before 3.10 (\u003ccode\u003eRUF013\u003c/code\u003e), and unquote more annotations (\u003ccode\u003eUP037\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFull module paths are now used to verify first-party modules\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff now checks that the full path to a module exists on disk before categorizing it as a first-party import. This change makes first-party import detection more accurate, helping to avoid false positives on local directories with the same name as a third-party dependency, for example. See the \u003ca href=\"https://docs.astral.sh/ruff/faq/#how-does-ruff-determine-which-of-my-imports-are-first-party-third-party-etc\"\u003eFAQ section\u003c/a\u003e on import categorization for more details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecated rules must now be selected by exact rule code\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff will no longer activate deprecated rules selected by their group name or prefix. As noted below, the two remaining deprecated rules were also removed in this release, so this won't affect any current rules, but it will still affect any deprecations in the future.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eThe deprecated macOS configuration directory fallback has been removed\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff will no longer look for a user-level configuration file at \u003ccode\u003e~/Library/Application Support/ruff/ruff.toml\u003c/code\u003e on macOS. This feature was deprecated in v0.5 in favor of using the \u003ca href=\"https://specifications.freedesktop.org/basedir-spec/latest/\"\u003eXDG specification\u003c/a\u003e (usually resolving to \u003ccode\u003e~/.config/ruff/ruff.toml\u003c/code\u003e), like on Linux. The fallback and accompanying deprecation warning have now been removed.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved Rules\u003c/h3\u003e\n\u003cp\u003eThe following rules have been removed:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/pandas-df-variable-name\"\u003e\u003ccode\u003epandas-df-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePD901\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/non-pep604-isinstance\"\u003e\u003ccode\u003enon-pep604-isinstance\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eUP038\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStabilization\u003c/h3\u003e\n\u003cp\u003eThe following rules have been stabilized and are no longer in preview:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow-dag-no-schedule-argument\"\u003e\u003ccode\u003eairflow-dag-no-schedule-argument\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR002\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow3-removal\"\u003e\u003ccode\u003eairflow3-removal\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR301\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow3-moved-to-provider\"\u003e\u003ccode\u003eairflow3-moved-to-provider\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR302\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow3-suggested-update\"\u003e\u003ccode\u003eairflow3-suggested-update\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR311\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow3-suggested-to-move-to-provider\"\u003e\u003ccode\u003eairflow3-suggested-to-move-to-provider\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR312\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/long-sleep-not-forever\"\u003e\u003ccode\u003elong-sleep-not-forever\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eASYNC116\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/f-string-number-format\"\u003e\u003ccode\u003ef-string-number-format\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eFURB116\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/os-symlink\"\u003e\u003ccode\u003eos-symlink\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePTH211\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/generic-not-last-base-class\"\u003e\u003ccode\u003egeneric-not-last-base-class\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePYI059\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/redundant-none-literal\"\u003e\u003ccode\u003eredundant-none-literal\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePYI061\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/pytest-raises-ambiguous-pattern\"\u003e\u003ccode\u003epytest-raises-ambiguous-pattern\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eRUF043\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/unused-unpacked-variable\"\u003e\u003ccode\u003eunused-unpacked-variable\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eRUF059\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-class-metaclass-type\"\u003e\u003ccode\u003euseless-class-metaclass-type\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eUP050\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following behaviors have been stabilized:\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/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.13.0\u003c/h2\u003e\n\u003cp\u003eCheck out the \u003ca href=\"https://astral.sh/blog/ruff-v0.13.0\"\u003eblog post\u003c/a\u003e for a migration\nguide and overview of the changes!\u003c/p\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSeveral rules can now add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e automatically\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e, \u003ccode\u003eRUF013\u003c/code\u003e, and \u003ccode\u003eUP037\u003c/code\u003e now add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e as part of their fixes when the\n\u003ccode\u003elint.future-annotations\u003c/code\u003e setting is enabled. This allows the rules to move\nmore imports into \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e blocks (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, and \u003ccode\u003eTC003\u003c/code\u003e),\nuse PEP 604 union syntax on Python versions before 3.10 (\u003ccode\u003eRUF013\u003c/code\u003e), and\nunquote more annotations (\u003ccode\u003eUP037\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFull module paths are now used to verify first-party modules\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff now checks that the full path to a module exists on disk before\ncategorizing it as a first-party import. This change makes first-party\nimport detection more accurate, helping to avoid false positives on local\ndirectories with the same name as a third-party dependency, for example. See\nthe \u003ca href=\"https://docs.astral.sh/ruff/faq/#how-does-ruff-determine-which-of-my-imports-are-first-party-third-party-etc\"\u003eFAQ\nsection\u003c/a\u003e on import categorization for more details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecated rules must now be selected by exact rule code\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff will no longer activate deprecated rules selected by their group name\nor prefix. As noted below, the two remaining deprecated rules were also\nremoved in this release, so this won't affect any current rules, but it will\nstill affect any deprecations in the future.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eThe deprecated macOS configuration directory fallback has been removed\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff will no longer look for a user-level configuration file at\n\u003ccode\u003e~/Library/Application Support/ruff/ruff.toml\u003c/code\u003e on macOS. This feature was\ndeprecated in v0.5 in favor of using the \u003ca href=\"https://specifications.freedesktop.org/basedir-spec/latest/\"\u003eXDG\nspecification\u003c/a\u003e\n(usually resolving to \u003ccode\u003e~/.config/ruff/ruff.toml\u003c/code\u003e), like on Linux. The\nfallback and accompanying deprecation warning have now been removed.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved Rules\u003c/h3\u003e\n\u003cp\u003eThe following rules have been removed:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/pandas-df-variable-name\"\u003e\u003ccode\u003epandas-df-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePD901\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/non-pep604-isinstance\"\u003e\u003ccode\u003enon-pep604-isinstance\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eUP038\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStabilization\u003c/h3\u003e\n\u003cp\u003eThe following rules have been stabilized and are no longer in preview:\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/astral-sh/ruff/commit/a1fdd66f10a045a574efb20e422868b21decda40\"\u003e\u003ccode\u003ea1fdd66\u003c/code\u003e\u003c/a\u003e Bump 0.13.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20336\"\u003e#20336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8770b95509b7a5a3b23061d739e6260303613f55\"\u003e\u003ccode\u003e8770b95\u003c/code\u003e\u003c/a\u003e [ty] introduce \u003ccode\u003eDivergentType\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20312\"\u003e#20312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/65982a1e14a15449ea0ed5cf66b7f9dea6d3e82c\"\u003e\u003ccode\u003e65982a1\u003c/code\u003e\u003c/a\u003e [ty] Use 'unknown' specialization for upper bound on Self (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/57d1f7132dbac82e07f22560dbedba7cff1dadc4\"\u003e\u003ccode\u003e57d1f71\u003c/code\u003e\u003c/a\u003e [ty] Simplify unions of enum literals and subtypes thereof (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20324\"\u003e#20324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7a75702237e6f0bc605d3d8e9470c4ca9f37c69e\"\u003e\u003ccode\u003e7a75702\u003c/code\u003e\u003c/a\u003e Ignore deprecated rules unless selected by exact code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20167\"\u003e#20167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9ca632c84fef6ecb7fc810cacb0df801c7949c70\"\u003e\u003ccode\u003e9ca632c\u003c/code\u003e\u003c/a\u003e Stabilize adding future import via config option (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20277\"\u003e#20277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/64fe7d30a3ac9444eab1ed397c451b6c6e80bc6f\"\u003e\u003ccode\u003e64fe7d3\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-errmsg\u003c/code\u003e] Stabilize extending \u003ccode\u003eraw-string-in-exception\u003c/code\u003e (\u003ccode\u003eEM101\u003c/code\u003e) to ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/beeeb8d5c5c8dabea2b11b0b8ed0f3c12dbf22c7\"\u003e\u003ccode\u003ebeeeb8d\u003c/code\u003e\u003c/a\u003e Stabilize the remaining Airflow rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20250\"\u003e#20250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b6fca52855d01dd40904386f5b8a6d4a17caae11\"\u003e\u003ccode\u003eb6fca52\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Stabilize support for non-context-manager calls in `assert...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ac7f882c78db09700bf6bccefe0e9a27fb1696b9\"\u003e\u003ccode\u003eac7f882\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-commas\u003c/code\u003e] Stabilize support for trailing comma checks in type paramet...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.12.10...0.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` from 1.1.404 to 1.1.405\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/e211ec8df8d389a147af6d31bdb2bc812f04aa5a\"\u003e\u003ccode\u003ee211ec8\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.405 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.404...v1.1.405\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-pyyaml` from 6.0.12.20250822 to 6.0.12.20250915\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typeshed-internal/stub_uploader/commits\"\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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/MinBZK/amt/pull/602","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinBZK%2Famt/issues/602","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/602/packages"},{"uuid":"2811104876","node_id":"PR_kwDOIPi0HM6njg5s","number":366,"state":"open","title":"build(deps): bump sqlalchemy-utils from 0.41.2 to 0.42.0","user":"dependabot[bot]","labels":["dependencies","python","Changed"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-09T09:05:32.000Z","updated_at":"2025-09-09T09:05:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"sqlalchemy-utils","old_version":"0.41.2","new_version":"0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.41.2 to 0.42.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.2...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.41.2\u0026new-version=0.42.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Chia-Network/climate-token-driver/pull/366","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chia-Network%2Fclimate-token-driver/issues/366","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/366/packages"},{"uuid":"3394901846","node_id":"PR_kwDOMqijUM6na-7H","number":177,"state":"open","title":"Bump the action-deps group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","python","backend"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-08T16:34:51.000Z","updated_at":"2025-09-15T16:42:12.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"action-deps","update_count":5,"packages":[{"name":"flask","old_version":"3.1.1","new_version":"3.1.2","repository_url":"https://github.com/pallets/flask"},{"name":"sqlalchemy-utils","old_version":"0.41.2","new_version":"0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"},{"name":"redis","old_version":"6.2.0","new_version":"6.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"sqlalchemy","old_version":"2.0.41","new_version":"2.0.43","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the action-deps group with 5 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [flask](https://github.com/pallets/flask) | `3.1.1` | `3.1.2` |\n| [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) | `0.41.2` | `0.42.0` |\n| [redis](https://github.com/redis/redis-py) | `6.2.0` | `6.4.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.41` | `2.0.43` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n\n\nUpdates `flask` from 3.1.1 to 3.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.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/Flask/3.1.2/\"\u003ehttps://pypi.org/project/Flask/3.1.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-2\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/38?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/38?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5774\"\u003e#5774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state of \u003ccode\u003esession\u003c/code\u003e is correct. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5786\"\u003e#5786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5776\"\u003e#5776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-08-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. :issue:\u003ccode\u003e5774\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state\nof \u003ccode\u003esession\u003c/code\u003e is correct. :issue:\u003ccode\u003e5786\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. :issue:\u003ccode\u003e5776\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/2c1b30d0503cfb064f1cb252e6614a06915a362a\"\u003e\u003ccode\u003e2c1b30d\u003c/code\u003e\u003c/a\u003e release version 3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/1292419ddfc6a14fc7f85b5ed7efcc2d215f1ad3\"\u003e\u003ccode\u003e1292419\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5795\"\u003e#5795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4dd52ca9c768c9b6d04180f0547d6f4b6e34f211\"\u003e\u003ccode\u003e4dd52ca\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/55c62556571ee46a94da174643b50ece06edead4\"\u003e\u003ccode\u003e55c6255\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/d8259eb11900285af9b80b0fa47f841174c054e3\"\u003e\u003ccode\u003ed8259eb\u003c/code\u003e\u003c/a\u003e use Jinja name consistently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/38b4c1e19b50494cfcdc9332899e09b7fed34979\"\u003e\u003ccode\u003e38b4c1e\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5799\"\u003e#5799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/9822a0351574790cb66c652fcc396ad7aa2b09d8\"\u003e\u003ccode\u003e9822a03\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/49b7e7bc8fb69d605719991d1c0a99fcee689053\"\u003e\u003ccode\u003e49b7e7b\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5798\"\u003e#5798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/b228ca3d87745b746d904a2108429617a814ffda\"\u003e\u003ccode\u003eb228ca3\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ff64079a516c269f171ababf3d92b86886a62ffd\"\u003e\u003ccode\u003eff64079\u003c/code\u003e\u003c/a\u003e update flask-talisman link\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.1.1...3.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy-utils` from 0.41.2 to 0.42.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.2...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 6.2.0 to 6.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/htemelski-redis\"\u003e\u003ccode\u003e@​htemelski-redis\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/elena-kolevska\"\u003e\u003ccode\u003e@​elena-kolevska\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for new BITOP operations: DIFF, DIFF1, ANDOR, ONE (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3690\"\u003e#3690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport new VAMANA vector index type (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3702\"\u003e#3702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixing sentinel command execution to allow returning of actual responses when meaningful - behaviour controlled by 'return_responses' argument. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3191\"\u003e#3191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAnnotate deprecated_args decorator to preserve wrapped function type signature (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3701\"\u003e#3701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3560\"\u003e#3560\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3601\"\u003e#3601\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: avoid instantiating a connection on \u003cem\u003erepr\u003c/em\u003e_ (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3653\"\u003e#3653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing the return type hint for the transaction method in the standalone client. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3660\"\u003e#3660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.48.0 to 0.49.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3665\"\u003e#3665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropping integration tests with Redis 6.2 from pipeline actions. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated arg from call to ClusterPipeline (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3670\"\u003e#3670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTransactionStrategy reset: UNWATCH only when status is watching (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKeyT for set operations (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3190\"\u003e#3190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving references to old docs site '\u003ca href=\"https://redis-py.readthedocs.io/\"\u003ehttps://redis-py.readthedocs.io/\u003c/a\u003e' replaced by '\u003ca href=\"https://redis.readthedocs.io/\"\u003ehttps://redis.readthedocs.io/\u003c/a\u003e' (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3674\"\u003e#3674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving unnecessary check for tests using AsyncMock (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3432\"\u003e#3432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating test images for github pipeline execution (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3678\"\u003e#3678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating the latest Redis image for pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3695\"\u003e#3695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.49.0 to 0.51.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3689\"\u003e#3689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5225 testable probabilistic dt examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3691\"\u003e#3691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate README.md (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3699\"\u003e#3699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConvert the value to int type only if it exists in CLIENT INFO (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3688\"\u003e#3688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding information in connection pool class doc string for available SSLConnection class, that can be used for SSL connections (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3710\"\u003e#3710\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/redis/redis-py/commit/fff669daaf43ae8092ea8ab7a2a3196a9b1b7e41\"\u003e\u003ccode\u003efff669d\u003c/code\u003e\u003c/a\u003e Updated package version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/43ce2a4025c020bd26e401371c16ca4920b470a5\"\u003e\u003ccode\u003e43ce2a4\u003c/code\u003e\u003c/a\u003e Updating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/64426cbdd43153b70b0e29d9d7b3ab2c63760359\"\u003e\u003ccode\u003e64426cb\u003c/code\u003e\u003c/a\u003e Added epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/67ab74d705b4c1d00d600c500596af7a68abfd56\"\u003e\u003ccode\u003e67ab74d\u003c/code\u003e\u003c/a\u003e Add new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4c9512b1fe592dc9becebe9e5f053b0184b47f2c\"\u003e\u003ccode\u003e4c9512b\u003c/code\u003e\u003c/a\u003e Adding information in connection pool class doc string for available SSLConne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/31399ed43588840bbbfdbbf0e8260d1b989b49ce\"\u003e\u003ccode\u003e31399ed\u003c/code\u003e\u003c/a\u003e SentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7291deb5eb8054a0dc915a8bf499a17498bc5968\"\u003e\u003ccode\u003e7291deb\u003c/code\u003e\u003c/a\u003e add async Retry \u003ccode\u003e__eq__\u003c/code\u003e and \u003ccode\u003e__hash__\u003c/code\u003e \u0026amp; fix ExponentialWithJitterBackof...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4cf094fdd2c1f2ce335e671af3fad7ad0a48f309\"\u003e\u003ccode\u003e4cf094f\u003c/code\u003e\u003c/a\u003e Fix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a00141618572764821bbe6bd74e025536e061587\"\u003e\u003ccode\u003ea001416\u003c/code\u003e\u003c/a\u003e DOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2b1ff5363715c8ba0043314a8b4bcbbc1ba741f5\"\u003e\u003ccode\u003e2b1ff53\u003c/code\u003e\u003c/a\u003e Fix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v6.2.0...v6.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.41 to 2.0.43\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.43\u003c/h1\u003e\n\u003cp\u003eReleased: August 11, 2025\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003epost_update\u003c/code\u003e feature would apply incorrect\n\u0026quot;pre-fetched\u0026quot; values to the ORM objects after a multi-row UPDATE process\ncompleted.  These \u0026quot;pre-fetched\u0026quot; values would come from any column that had\nan \u003ccode\u003eColumn.onupdate\u003c/code\u003e callable or a version id generator used by\n\u003ccode\u003eorm.Mapper.version_id_generator\u003c/code\u003e; for a version id generator\nthat delivered random identifiers like timestamps or UUIDs, this incorrect\ndata would lead to a DELETE statement against those same rows to fail in\nthe next step.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12748\"\u003e#12748\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.mapped_column.use_existing_column\u003c/code\u003e\nparameter in \u003ccode\u003e_orm.mapped_column()\u003c/code\u003e would not work when the\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e is used inside of an \u003ccode\u003eAnnotated\u003c/code\u003e type alias in\npolymorphic inheritance scenarios. The parameter is now properly recognized\nand processed during declarative mapping configuration.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12787\"\u003e#12787\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Improved the implementation of the \u003ccode\u003e_orm.selectin_polymorphic()\u003c/code\u003e\ninheritance loader strategy to properly render the IN expressions using\nchunks of 500 records each, in the same manner as that of the\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e relationship loader strategy.  Previously, the IN\nexpression would be arbitrarily large, leading to failures on databases\nthat have limits on the size of IN expressions including Oracle Database.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12790\"\u003e#12790\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [usecase]\u003c/strong\u003e Added new parameter \u003ccode\u003ecreate_engine.skip_autocommit_rollback\u003c/code\u003e\nwhich provides for a per-dialect feature of preventing the DBAPI\n\u003ccode\u003e.rollback()\u003c/code\u003e from being called under any circumstances, if the\nconnection is detected as being in \u0026quot;autocommit\u0026quot; mode.   This improves upon\na critical performance issue identified in MySQL dialects where the network\noverhead of the \u003ccode\u003e.rollback()\u003c/code\u003e call remains prohibitive even if autocommit\nmode is set.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12784\"\u003e#12784\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 8.4.2\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\u003e8.4.2\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.2 (2025-09-03)\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/13478\"\u003e#13478\u003c/a\u003e: Fixed a crash when using \u003ccode\u003econsole_output_style\u003c/code\u003e{.interpreted-text role=\u0026quot;confval\u0026quot;} with \u003ccode\u003etimes\u003c/code\u003e and a module is skipped.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13530\"\u003e#13530\u003c/a\u003e: Fixed a crash when using \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and \u003ccode\u003edecimal.Decimal\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} instances with the \u003ccode\u003edecimal.FloatOperation\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} trap set.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13549\"\u003e#13549\u003c/a\u003e: No longer evaluate type annotations in Python \u003ccode\u003e3.14\u003c/code\u003e when inspecting function signatures.\u003c/p\u003e\n\u003cp\u003eThis prevents crashes during module collection when modules do not explicitly use \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e and import types for annotations within a \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13559\"\u003e#13559\u003c/a\u003e: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in \u003ccode\u003epytest.Parser.addini\u003c/code\u003e{.interpreted-text role=\u0026quot;meth\u0026quot;}.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13563\"\u003e#13563\u003c/a\u003e: \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now only imports \u003ccode\u003enumpy\u003c/code\u003e if NumPy is already in \u003ccode\u003esys.modules\u003c/code\u003e. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.\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/13577\"\u003e#13577\u003c/a\u003e: Clarify that \u003ccode\u003epytest_generate_tests\u003c/code\u003e is discovered in test modules/classes; other hooks must be in \u003ccode\u003econftest.py\u003c/code\u003e or plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13480\"\u003e#13480\u003c/a\u003e: Self-testing: fixed a few test failures when run with \u003ccode\u003e-Wdefault\u003c/code\u003e or a similar override.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13547\"\u003e#13547\u003c/a\u003e: Self-testing: corrected expected message for \u003ccode\u003etest_doctest_unexpected_exception\u003c/code\u003e in Python \u003ccode\u003e3.14\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13684\"\u003e#13684\u003c/a\u003e: Make pytest's own testsuite insensitive to the presence of the \u003ccode\u003eCI\u003c/code\u003e environment variable -- by \u003ccode\u003eogrisel\u003c/code\u003e{.interpreted-text role=\u0026quot;user\u0026quot;}.\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/bfae4224fd554d3d7f2c277a4cc092b6ec6af3ae\"\u003e\u003ccode\u003ebfae422\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/89905381a163be30ae87d62e5f750e902d750c5f\"\u003e\u003ccode\u003e8990538\u003c/code\u003e\u003c/a\u003e Fix passenv CI in tox ini and make tests insensitive to the presence of the C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ca676bfe005aebcb12f4146d1b0f1d2772e2cd5d\"\u003e\u003ccode\u003eca676bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13687\"\u003e#13687\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/e63f6e51c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/975a60a63ce385a44655596e254c1899feaa53e4\"\u003e\u003ccode\u003e975a60a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13686\"\u003e#13686\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/12bde8af6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7723ce84b87ab08f86ddafcb342acc28ba5ec99d\"\u003e\u003ccode\u003e7723ce8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13683\"\u003e#13683\u003c/a\u003e from even-even/fix_Exeption_to_Exception_in_errorMe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7f05680d1301e0969b30bcb3c4b27433c9ee2b7\"\u003e\u003ccode\u003eb7f0568\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13685\"\u003e#13685\u003c/a\u003e from CoretexShadow/fix/docs-pytest-generate-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2c94c4a6948ba53440818389298157fa5d5f94cd\"\u003e\u003ccode\u003e2c94c4a\u003c/code\u003e\u003c/a\u003e add missing colon (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13640\"\u003e#13640\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13641\"\u003e#13641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c3d7684bc01c8c48d05145a30c5211ca8656c68c\"\u003e\u003ccode\u003ec3d7684\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13606\"\u003e#13606\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/5f9938563...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/dc6e3be2ddc75a149b6d102d9b7c82ee47a00cfa\"\u003e\u003ccode\u003edc6e3be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13605\"\u003e#13605\u003c/a\u003e from The-Compiler/training-update-2025-07\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f87289c36c8dbe7740e3020f5546b6f8b0861ff0\"\u003e\u003ccode\u003ef87289c\u003c/code\u003e\u003c/a\u003e Fix crash with \u003ccode\u003etimes\u003c/code\u003e output style and skipped module (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13573\"\u003e#13573\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13579\"\u003e#13579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...8.4.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/zakerby/python-react-template/pull/177","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/zakerby%2Fpython-react-template/issues/177","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/177/packages"},{"uuid":"2808365416","node_id":"PR_kwDONRyVrs6nZEFo","number":37,"state":"open","title":"deps(deps): bump sqlalchemy-utils from 0.41.2 to 0.42.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-08T13:52:39.000Z","updated_at":"2025-09-08T13:52:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps)","packages":[{"name":"sqlalchemy-utils","old_version":"0.41.2","new_version":"0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.41.2 to 0.42.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.2...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.41.2\u0026new-version=0.42.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/WRLC/azure-web-app-vfs/pull/37","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/WRLC%2Fazure-web-app-vfs/issues/37","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/37/packages"},{"uuid":"3393561567","node_id":"PR_kwDOPX-0Ac6nWcOH","number":23,"state":"closed","title":"deps(backend)(deps-dev): bump sqlalchemy-utils from 0.41.1 to 0.42.0 in /backend","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-09-13T03:15:25.000Z","author_association":"NONE","state_reason":null,"created_at":"2025-09-08T10:17:17.000Z","updated_at":"2025-09-13T03:15:25.000Z","time_to_close":406688,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(backend)(deps-dev)","packages":[{"name":"sqlalchemy-utils","old_version":"0.41.1","new_version":"0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.41.1 to 0.42.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.41.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix breaking change introduced on SQLAlchemy 2.0.22 changes to \u003ccode\u003eattributes.AttributeImpl\u003c/code\u003e constructor (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/733\"\u003e#733\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.41.2 (2024-03-22)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix breaking change introduced on SQLAlchemy 2.0.22 changes to \u003ccode\u003eattributes.AttributeImpl\u003c/code\u003e constructor (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/733\"\u003e#733\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.1...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.41.1\u0026new-version=0.42.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/jonathan-nascimento51/glpi_dashboard/pull/23","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathan-nascimento51%2Fglpi_dashboard/issues/23","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/23/packages"},{"uuid":"2807642424","node_id":"PR_kwDOPZCRoM6nWTk4","number":54,"state":"open","title":"chore(backend): Bump sqlalchemy-utils from 0.41.1 to 0.42.0 in /backend","user":"dependabot[bot]","labels":["backend"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-09-08T10:06:19.000Z","updated_at":"2025-09-08T10:06:20.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(backend): Bump","packages":[{"name":"sqlalchemy-utils","old_version":"0.41.1","new_version":"0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.41.1 to 0.42.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.41.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix breaking change introduced on SQLAlchemy 2.0.22 changes to \u003ccode\u003eattributes.AttributeImpl\u003c/code\u003e constructor (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/733\"\u003e#733\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.41.2 (2024-03-22)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix breaking change introduced on SQLAlchemy 2.0.22 changes to \u003ccode\u003eattributes.AttributeImpl\u003c/code\u003e constructor (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/733\"\u003e#733\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.1...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.41.1\u0026new-version=0.42.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/isaacbuz/GoldenSignalsV5/pull/54","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaacbuz%2FGoldenSignalsV5/issues/54","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/54/packages"},{"uuid":"3392790406","node_id":"PR_kwDOLzgXB86nT2O8","number":599,"state":"open","title":"Bump the allpip group with 9 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-08T06:23:36.000Z","updated_at":"2025-09-15T06:17:22.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"allpip","update_count":9,"packages":[{"name":"alembic","old_version":"1.16.4","new_version":"1.16.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"sqlalchemy-utils","old_version":"0.41.2","new_version":"0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"},{"name":"authlib","old_version":"1.6.2","new_version":"1.6.3","repository_url":"https://github.com/authlib/authlib"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-mock","old_version":"3.14.1","new_version":"3.15.0","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"coverage","old_version":"7.10.5","new_version":"7.10.6","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"playwright","old_version":"1.54.0","new_version":"1.55.0","repository_url":"https://github.com/microsoft/playwright-python"},{"name":"ruff","old_version":"0.12.10","new_version":"0.12.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pyright","old_version":"1.1.404","new_version":"1.1.405","repository_url":"https://github.com/RobertCraigie/pyright-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the allpip group with 9 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.16.5` |\n| [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) | `0.41.2` | `0.42.0` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.2` | `1.6.3` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.1` | `3.15.0` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.5` | `7.10.6` |\n| [playwright](https://github.com/microsoft/playwright-python) | `1.54.0` | `1.55.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.10` | `0.12.12` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.404` | `1.1.405` |\n\nUpdates `alembic` from 1.16.4 to 1.16.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.16.5\u003c/h1\u003e\n\u003cp\u003eReleased: August 27, 2025\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [mysql]\u003c/strong\u003e Fixed Python-side autogenerate rendering of index expressions in MySQL\ndialect by aligning it with SQLAlchemy's MySQL index expression rules. Pull\nrequest courtesy david-fed.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1492\"\u003e#1492\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [config]\u003c/strong\u003e Fixed issue where new pyproject.toml config would fail to parse the integer\nvalue used for the \u003ccode\u003etruncate_slug_length\u003c/code\u003e parameter.  Pull request\ncourtesy Luís Henrique Allebrandt Schunemann.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1709\"\u003e#1709\u003c/a\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy-utils` from 0.41.2 to 0.42.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.2...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `authlib` from 1.6.2 to 1.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/authlib/releases\"\u003eauthlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd diff-cover check in GHA by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/803\"\u003eauthlib/authlib#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun GHA unit tests with uv by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/805\"\u003eauthlib/authlib#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove from pre-commit to prek by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/804\"\u003eauthlib/authlib#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSign OIDC id_token  according to \u003ccode\u003eid_token_signed_response_alg\u003c/code\u003e client metadata by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/802\"\u003eauthlib/authlib#802\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.2...v1.6.3\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.2...v1.6.3\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/authlib/authlib/blob/main/docs/changelog.rst\"\u003eauthlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.3\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on Aug 26, 2025\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOIDC \u003ccode\u003eid_token\u003c/code\u003e are signed according to \u003ccode\u003eid_token_signed_response_alg\u003c/code\u003e\nclient metadata. :issue:\u003ccode\u003e755\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/authlib/authlib/commit/dbbfa9abcfe725001b452cf08d9e48be0ebfdce9\"\u003e\u003ccode\u003edbbfa9a\u003c/code\u003e\u003c/a\u003e chore: bump to 1.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/bc71165f79024efde3193a040e46f6fb01135ddf\"\u003e\u003ccode\u003ebc71165\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/802\"\u003e#802\u003c/a\u003e from azmeuk/755-idtoken-metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/40cfb4ea4cc8a4025b87ccf0a1549ed49134eebd\"\u003e\u003ccode\u003e40cfb4e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/804\"\u003e#804\u003c/a\u003e from azmeuk/prek\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/d99c771a8a81507a4a7f1792a905aa6ed977ed93\"\u003e\u003ccode\u003ed99c771\u003c/code\u003e\u003c/a\u003e chore: move from pre-commit to prek\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/83de6183e1c1cfa908167cc5f2eed6c50f0e348e\"\u003e\u003ccode\u003e83de618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/805\"\u003e#805\u003c/a\u003e from azmeuk/gha-uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/b72ee3fcdc293af22f0ffc4f7489d220f06ac93c\"\u003e\u003ccode\u003eb72ee3f\u003c/code\u003e\u003c/a\u003e chore: run GHA unit tests with uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/799fb2a3642f7ffb2620ba1ea87c6719ea356e83\"\u003e\u003ccode\u003e799fb2a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/803\"\u003e#803\u003c/a\u003e from azmeuk/diff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/2ce4c7e3ae8cd7c9bf951a3d1373fc34bd8496e7\"\u003e\u003ccode\u003e2ce4c7e\u003c/code\u003e\u003c/a\u003e chore: add diff-cover check in GHA\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/86b1b7877741e345793dbce5b45bff2e52ccfab3\"\u003e\u003ccode\u003e86b1b78\u003c/code\u003e\u003c/a\u003e fix: OIDC id_token is signed according to id_token_signed_response_alg client...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/0d03ee9dd758f95853356fa1eea3fbce37109eb0\"\u003e\u003ccode\u003e0d03ee9\u003c/code\u003e\u003c/a\u003e test: configure DJANGO_SETTINGS_MODULE with pytest-env\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.2...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 8.4.2\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\u003e8.4.2\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.2 (2025-09-03)\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/13478\"\u003e#13478\u003c/a\u003e: Fixed a crash when using \u003ccode\u003econsole_output_style\u003c/code\u003e{.interpreted-text role=\u0026quot;confval\u0026quot;} with \u003ccode\u003etimes\u003c/code\u003e and a module is skipped.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13530\"\u003e#13530\u003c/a\u003e: Fixed a crash when using \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and \u003ccode\u003edecimal.Decimal\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} instances with the \u003ccode\u003edecimal.FloatOperation\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} trap set.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13549\"\u003e#13549\u003c/a\u003e: No longer evaluate type annotations in Python \u003ccode\u003e3.14\u003c/code\u003e when inspecting function signatures.\u003c/p\u003e\n\u003cp\u003eThis prevents crashes during module collection when modules do not explicitly use \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e and import types for annotations within a \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13559\"\u003e#13559\u003c/a\u003e: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in \u003ccode\u003epytest.Parser.addini\u003c/code\u003e{.interpreted-text role=\u0026quot;meth\u0026quot;}.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13563\"\u003e#13563\u003c/a\u003e: \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now only imports \u003ccode\u003enumpy\u003c/code\u003e if NumPy is already in \u003ccode\u003esys.modules\u003c/code\u003e. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.\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/13577\"\u003e#13577\u003c/a\u003e: Clarify that \u003ccode\u003epytest_generate_tests\u003c/code\u003e is discovered in test modules/classes; other hooks must be in \u003ccode\u003econftest.py\u003c/code\u003e or plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13480\"\u003e#13480\u003c/a\u003e: Self-testing: fixed a few test failures when run with \u003ccode\u003e-Wdefault\u003c/code\u003e or a similar override.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13547\"\u003e#13547\u003c/a\u003e: Self-testing: corrected expected message for \u003ccode\u003etest_doctest_unexpected_exception\u003c/code\u003e in Python \u003ccode\u003e3.14\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13684\"\u003e#13684\u003c/a\u003e: Make pytest's own testsuite insensitive to the presence of the \u003ccode\u003eCI\u003c/code\u003e environment variable -- by \u003ccode\u003eogrisel\u003c/code\u003e{.interpreted-text role=\u0026quot;user\u0026quot;}.\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/bfae4224fd554d3d7f2c277a4cc092b6ec6af3ae\"\u003e\u003ccode\u003ebfae422\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/89905381a163be30ae87d62e5f750e902d750c5f\"\u003e\u003ccode\u003e8990538\u003c/code\u003e\u003c/a\u003e Fix passenv CI in tox ini and make tests insensitive to the presence of the C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ca676bfe005aebcb12f4146d1b0f1d2772e2cd5d\"\u003e\u003ccode\u003eca676bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13687\"\u003e#13687\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/e63f6e51c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/975a60a63ce385a44655596e254c1899feaa53e4\"\u003e\u003ccode\u003e975a60a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13686\"\u003e#13686\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/12bde8af6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7723ce84b87ab08f86ddafcb342acc28ba5ec99d\"\u003e\u003ccode\u003e7723ce8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13683\"\u003e#13683\u003c/a\u003e from even-even/fix_Exeption_to_Exception_in_errorMe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7f05680d1301e0969b30bcb3c4b27433c9ee2b7\"\u003e\u003ccode\u003eb7f0568\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13685\"\u003e#13685\u003c/a\u003e from CoretexShadow/fix/docs-pytest-generate-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2c94c4a6948ba53440818389298157fa5d5f94cd\"\u003e\u003ccode\u003e2c94c4a\u003c/code\u003e\u003c/a\u003e add missing colon (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13640\"\u003e#13640\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13641\"\u003e#13641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c3d7684bc01c8c48d05145a30c5211ca8656c68c\"\u003e\u003ccode\u003ec3d7684\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13606\"\u003e#13606\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/5f9938563...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/dc6e3be2ddc75a149b6d102d9b7c82ee47a00cfa\"\u003e\u003ccode\u003edc6e3be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13605\"\u003e#13605\u003c/a\u003e from The-Compiler/training-update-2025-07\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f87289c36c8dbe7740e3020f5546b6f8b0861ff0\"\u003e\u003ccode\u003ef87289c\u003c/code\u003e\u003c/a\u003e Fix crash with \u003ccode\u003etimes\u003c/code\u003e output style and skipped module (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13573\"\u003e#13573\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13579\"\u003e#13579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-mock` from 3.14.1 to 3.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-mock/releases\"\u003epytest-mock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.15.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-04\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 (EOL) is no longer supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/pull/524\"\u003e#524\u003c/a\u003e: Added \u003ccode\u003espy_return_iter\u003c/code\u003e to \u003ccode\u003emocker.spy\u003c/code\u003e, which contains a duplicate of the return value of the spied method if it is an \u003ccode\u003eIterator\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst\"\u003epytest-mock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.15.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-04\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 (EOL) is no longer supported.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#524](https://github.com/pytest-dev/pytest-mock/issues/524) \u0026lt;https://github.com/pytest-dev/pytest-mock/pull/524\u0026gt;\u003c/code\u003e_: Added \u003ccode\u003espy_return_iter\u003c/code\u003e to \u003ccode\u003emocker.spy\u003c/code\u003e, which contains a duplicate of the return value of the spied method if it is an \u003ccode\u003eIterator\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/pytest-dev/pytest-mock/commit/90b29f89e2086c139a7b4fea89202faa192ee5a9\"\u003e\u003ccode\u003e90b29f8\u003c/code\u003e\u003c/a\u003e Update CHANGELOG for 3.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/53a6190b9c793f0b1801cd8b08afd58d3436bad6\"\u003e\u003ccode\u003e53a6190\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/5aa9e9cd7e0d25403c8d9d478bc3480bb5ca2456\"\u003e\u003ccode\u003e5aa9e9c\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003espy_return_iter\u003c/code\u003e attribute to \u003ccode\u003espy\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/dc6df75a91aad4980af1a711e42a2ade19960f36\"\u003e\u003ccode\u003edc6df75\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish in /.github/workflows (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/526\"\u003e#526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/b977d83d051390c5efd91b02884236ea5eba8ae4\"\u003e\u003ccode\u003eb977d83\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/bd66c9cb8b1ffc59b4d9e42a1b413bafa3a16eac\"\u003e\u003ccode\u003ebd66c9c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/f9e47b6e1685169972488391d8c2ba1d10e0901d\"\u003e\u003ccode\u003ef9e47b6\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/3aec7677f47f6c4b89dbdee9e4a32a8fe047943f\"\u003e\u003ccode\u003e3aec767\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/e09e5be3fcaa54102006b7c01add91ac33ebf9ed\"\u003e\u003ccode\u003ee09e5be\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/ba83a70ff9c15c0b8534e7f1a7c6ba5321aea046\"\u003e\u003ccode\u003eba83a70\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-mock/compare/v3.14.1...v3.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.5 to 7.10.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.6 — 2025-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003esource\u003c/code\u003e directories were not properly communicated to subprocesses\nthat ran in different directories, as reported in \u003ccode\u003eissue 1499\u003c/code\u003e_.  This is now\nfixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: \u003ccode\u003eAlex Gaynor continues fine-tuning \u0026lt;pull 2038_\u0026gt;\u003c/code\u003e_ the speed of\ncombination, especially with many contexts.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1499: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003enedbat/coveragepy#1499\u003c/a\u003e\n.. _pull 2038: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2038\"\u003enedbat/coveragepy#2038\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-5:\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/nedbat/coveragepy/commit/88c55ff87437f7e59b42d131d0e2b6ce413546bf\"\u003e\u003ccode\u003e88c55ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/01d89959bfa825f661121e0f8d173f3ae1ecedac\"\u003e\u003ccode\u003e01d8995\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9b0c24ffc17840464c2343b702a6ee44e10fcadf\"\u003e\u003ccode\u003e9b0c24f\u003c/code\u003e\u003c/a\u003e docs: thanks Alex \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/66d69108654f6fc1de916a37fc06ac898091aa2d\"\u003e\u003ccode\u003e66d6910\u003c/code\u003e\u003c/a\u003e fix: make \u003ccode\u003esource\u003c/code\u003e paths absolute where they exist. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bb3382f50f2b91aebb046d665334a5d361e5ddc5\"\u003e\u003ccode\u003ebb3382f\u003c/code\u003e\u003c/a\u003e build: no need for the combine/html times now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ea349a164527832a49faa3eeec628d59ef75c7c\"\u003e\u003ccode\u003e9ea349a\u003c/code\u003e\u003c/a\u003e lab: warn_executed.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/808c9b48af3ad7b567182d383eb31451615664e0\"\u003e\u003ccode\u003e808c9b4\u003c/code\u003e\u003c/a\u003e build: changing metacov.ini should trigger metacov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/384f5f22bd1ef52000d80922de03922a58ff936c\"\u003e\u003ccode\u003e384f5f2\u003c/code\u003e\u003c/a\u003e build: oops, some 'if's are really line pragmas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a7224af73365ba2d217f0e0966c7873c5bac3a67\"\u003e\u003ccode\u003ea7224af\u003c/code\u003e\u003c/a\u003e perf: pre-compute the mapping between other_db.context and main.context (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5c00c5ba4bcd4f7da6a9f0ccd0797e0944415e8a\"\u003e\u003ccode\u003e5c00c5b\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.10.5...7.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `playwright` from 1.54.0 to 1.55.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.55.0\u003c/h2\u003e\n\u003ch2\u003eCodegen\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatic \u003ccode\u003eto_be_visible()\u003c/code\u003e assertions: Codegen can now generate automatic \u003ccode\u003eto_be_visible()\u003c/code\u003e assertions for common UI interactions. This feature can be enabled in the Codegen settings UI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ Dropped support for Chromium extension manifest v2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Debian 13 \u0026quot;Trixie\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBrowser Versions\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChromium 140.0.7339.16\u003c/li\u003e\n\u003cli\u003eMozilla Firefox 141.0\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 139\u003c/li\u003e\n\u003cli\u003eMicrosoft Edge 139\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/microsoft/playwright-python/commit/4a03d717fa82f1daed6d5f1dab505e8cd06aa8f2\"\u003e\u003ccode\u003e4a03d71\u003c/code\u003e\u003c/a\u003e chore(roll): roll Playwright to 1.55.0-beta-1756314050000 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2960\"\u003e#2960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/3cbe13e58a4a20b4b3aaa1afbdc69747a7c37933\"\u003e\u003ccode\u003e3cbe13e\u003c/code\u003e\u003c/a\u003e chore: roll to 1.55.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2956\"\u003e#2956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/254aabddf3a68c9385cc9e363d2b61fa4bba777d\"\u003e\u003ccode\u003e254aabd\u003c/code\u003e\u003c/a\u003e fix: screenshot type inferred from path file extension (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/1be34f206e1b57cf94cbb295158f75860f744e9c\"\u003e\u003ccode\u003e1be34f2\u003c/code\u003e\u003c/a\u003e fix: timeout option support with fetch api (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2947\"\u003e#2947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/6e9ff7a80f02db4e0ccdb87efadbf543a0c3ceb9\"\u003e\u003ccode\u003e6e9ff7a\u003c/code\u003e\u003c/a\u003e test: unflake cr tracing test (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2942\"\u003e#2942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/e49496e7a803b2fd05e5a7e814db4c0af8962743\"\u003e\u003ccode\u003ee49496e\u003c/code\u003e\u003c/a\u003e build(deps): bump types-requests from 2.32.4.20250611 to 2.32.4.20250809 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2941\"\u003e#2941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/d33a807492c0a944186bc37dd5d71d57e1c36901\"\u003e\u003ccode\u003ed33a807\u003c/code\u003e\u003c/a\u003e build(deps): bump greenlet from 3.2.3 to 3.2.4 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/5cc395e9214b5ebb32ca8629d6905e53824978b5\"\u003e\u003ccode\u003e5cc395e\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5 in the actions group (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/8963460fffe065bfeb58a162f6e35fc8e3e65d4d\"\u003e\u003ccode\u003e8963460\u003c/code\u003e\u003c/a\u003e build(deps): bump build from 1.2.2.post1 to 1.3.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2937\"\u003e#2937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/3fea01e81a33f1ef31e271bdda78d398f18e87be\"\u003e\u003ccode\u003e3fea01e\u003c/code\u003e\u003c/a\u003e test: unflake test_context_add_cookies_should_work (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright-python/compare/v1.54.0...v1.55.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.12.10 to 0.12.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.12.12\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow fixes by default (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19919\"\u003e#19919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Convert \u003ccode\u003eDatasetOrTimeSchedule(datasets=...)\u003c/code\u003e to \u003ccode\u003eAssetOrTimeSchedule(assets=...)\u003c/code\u003e (\u003ccode\u003eAIR311\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20202\"\u003e#20202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Improve the \u003ccode\u003eAIR002\u003c/code\u003e error message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20173\"\u003e#20173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Move \u003ccode\u003eairflow.operators.postgres_operator.Mapping\u003c/code\u003e from \u003ccode\u003eAIR302\u003c/code\u003e to \u003ccode\u003eAIR301\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20172\"\u003e#20172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-input\u003c/code\u003e rule (\u003ccode\u003eASYNC250\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20122\"\u003e#20122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make \u003ccode\u003ePTH119\u003c/code\u003e and \u003ccode\u003ePTH120\u003c/code\u003e fixes unsafe because they can change behavior (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20118\"\u003e#20118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Add U+061C to \u003ccode\u003ePLE2502\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20106\"\u003e#20106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix false negative for empty f-strings in \u003ccode\u003edeque\u003c/code\u003e calls (\u003ccode\u003eRUF037\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20109\"\u003e#20109\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLess confidently mark f-strings as empty when inferring truthiness (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20152\"\u003e#20152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003efastapi\u003c/code\u003e] Fix false positive for paths with spaces around parameters (\u003ccode\u003eFAST003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20077\"\u003e#20077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e when lambda contains \u003ccode\u003eyield\u003c/code\u003e/\u003ccode\u003eyield from\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20201\"\u003e#20201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Handle tuples in dictionary comprehensions (\u003ccode\u003ePERF403\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19934\"\u003e#19934\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Preserve return type annotation for \u003ccode\u003eParamSpec\u003c/code\u003e (\u003ccode\u003eE731\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20108\"\u003e#20108\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fix safety sections to docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/17490\"\u003e#17490\u003c/a\u003e,\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/17499\"\u003e#17499\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/11happy\"\u003e\u003ccode\u003e@​11happy\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/BurntSushi\"\u003e\u003ccode\u003e@​BurntSushi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Gankra\"\u003e\u003ccode\u003e@​Gankra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kalmaegi\"\u003e\u003ccode\u003e@​Kalmaegi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MatthewMckee4\"\u003e\u003ccode\u003e@​MatthewMckee4\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrettyWood\"\u003e\u003ccode\u003e@​PrettyWood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Renkai\"\u003e\u003ccode\u003e@​Renkai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShaharNaveh\"\u003e\u003ccode\u003e@​ShaharNaveh\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/carljm\"\u003e\u003ccode\u003e@​carljm\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/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dcreager\"\u003e\u003ccode\u003e@​dcreager\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dhruvmanila\"\u003e\u003ccode\u003e@​dhruvmanila\u003c/code\u003e\u003c/a\u003e\u003c/li\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/github-actions\"\u003e\u003ccode\u003e@​github-actions\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.12.12\u003c/h2\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow fixes by default (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19919\"\u003e#19919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Convert \u003ccode\u003eDatasetOrTimeSchedule(datasets=...)\u003c/code\u003e to \u003ccode\u003eAssetOrTimeSchedule(assets=...)\u003c/code\u003e (\u003ccode\u003eAIR311\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20202\"\u003e#20202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Improve the \u003ccode\u003eAIR002\u003c/code\u003e error message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20173\"\u003e#20173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Move \u003ccode\u003eairflow.operators.postgres_operator.Mapping\u003c/code\u003e from \u003ccode\u003eAIR302\u003c/code\u003e to \u003ccode\u003eAIR301\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20172\"\u003e#20172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-input\u003c/code\u003e rule (\u003ccode\u003eASYNC250\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20122\"\u003e#20122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make \u003ccode\u003ePTH119\u003c/code\u003e and \u003ccode\u003ePTH120\u003c/code\u003e fixes unsafe because they can change behavior (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20118\"\u003e#20118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Add U+061C to \u003ccode\u003ePLE2502\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20106\"\u003e#20106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix false negative for empty f-strings in \u003ccode\u003edeque\u003c/code\u003e calls (\u003ccode\u003eRUF037\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20109\"\u003e#20109\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLess confidently mark f-strings as empty when inferring truthiness (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20152\"\u003e#20152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003efastapi\u003c/code\u003e] Fix false positive for paths with spaces around parameters (\u003ccode\u003eFAST003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20077\"\u003e#20077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e when lambda contains \u003ccode\u003eyield\u003c/code\u003e/\u003ccode\u003eyield from\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20201\"\u003e#20201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Handle tuples in dictionary comprehensions (\u003ccode\u003ePERF403\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19934\"\u003e#19934\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Preserve return type annotation for \u003ccode\u003eParamSpec\u003c/code\u003e (\u003ccode\u003eE731\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20108\"\u003e#20108\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fix safety sections to docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/17490\"\u003e#17490\u003c/a\u003e,\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/17499\"\u003e#17499\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.12.11\u003c/h2\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Extend \u003ccode\u003eAIR311\u003c/code\u003e and \u003ccode\u003eAIR312\u003c/code\u003e rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20082\"\u003e#20082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Replace wrong path \u003ccode\u003eairflow.io.storage\u003c/code\u003e with \u003ccode\u003eairflow.io.store\u003c/code\u003e (\u003ccode\u003eAIR311\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20081\"\u003e#20081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-http-call-httpx-in-async-function\u003c/code\u003e (\u003ccode\u003eASYNC212\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20091\"\u003e#20091\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging-format\u003c/code\u003e] Add auto-fix for f-string logging calls (\u003ccode\u003eG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19303\"\u003e#19303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Add autofix for \u003ccode\u003ePTH211\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20009\"\u003e#20009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make \u003ccode\u003ePTH100\u003c/code\u003e fix unsafe because it can change behavior (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20100\"\u003e#20100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e, \u003ccode\u003epylint\u003c/code\u003e] Fix false positives caused by \u003ccode\u003e__class__\u003c/code\u003e cell handling (\u003ccode\u003eF841\u003c/code\u003e, \u003ccode\u003ePLE0117\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20048\"\u003e#20048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Fix \u003ccode\u003eallowed-unused-imports\u003c/code\u003e matching for top-level modules (\u003ccode\u003eF401\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20115\"\u003e#20115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix false positive for t-strings in \u003ccode\u003edefault-factory-kwarg\u003c/code\u003e (\u003ccode\u003eRUF026\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20032\"\u003e#20032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Preserve relative whitespace in multi-line expressions (\u003ccode\u003eRUF033\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19647\"\u003e#19647\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] Handle empty t-strings in \u003ccode\u003eunnecessary-empty-iterable-within-deque-call\u003c/code\u003e (\u003ccode\u003eRUF037\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20045\"\u003e#20045\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/c6516e9b60e7b8d3d60b1e3a0fb0db04b533de54\"\u003e\u003ccode\u003ec6516e9\u003c/code\u003e\u003c/a\u003e Bump 0.12.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20242\"\u003e#20242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1aaa0847abdebfe910513b1c883977a996da2db5\"\u003e\u003ccode\u003e1aaa084\u003c/code\u003e\u003c/a\u003e [ty] More tests for TypedDict (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20205\"\u003e#20205\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b49aa3507472a92b492de0fc924eff2c4bad4248\"\u003e\u003ccode\u003eb49aa35\u003c/code\u003e\u003c/a\u003e Split LICENSE addendum by derivation type (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20222\"\u003e#20222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1e34f3f20a71a4375ba64faad43f21171e3829cd\"\u003e\u003ccode\u003e1e34f3f\u003c/code\u003e\u003c/a\u003e [ty] Fix small test typo (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20220\"\u003e#20220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/77b2cee2233620636e03f547337ff805415c7465\"\u003e\u003ccode\u003e77b2cee\u003c/code\u003e\u003c/a\u003e [ty] Add functions for revealing assignability/subtyping constraints (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20217\"\u003e#20217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/200349c6e84d04a8e0d986488f7991b17b747964\"\u003e\u003ccode\u003e200349c\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e when lambda contains \u003ccode\u003eyield\u003c/code\u003e/`yield fro...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0d4f7dde9967704767d8515aadcf8c94353dde35\"\u003e\u003ccode\u003e0d4f7dd\u003c/code\u003e\u003c/a\u003e [ty] Treat \u003ccode\u003e__new__\u003c/code\u003e as a static method (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20212\"\u003e#20212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/cb1ba0d4c26dd649bfab9de7ae0e84c0e28e910c\"\u003e\u003ccode\u003ecb1ba0d\u003c/code\u003e\u003c/a\u003e Expose \u003ccode\u003eIndentation\u003c/code\u003e in \u003ccode\u003eruff_python_codegen\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20216\"\u003e#20216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/cda376afe079b54b6779704bdd740c9e81423e39\"\u003e\u003ccode\u003ecda376a\u003c/code\u003e\u003c/a\u003e [ty]eliminate definitely-impossible types from union in equality narrowing (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b14fc961413c5ca032fdfdff29fcc6be4f9c8a75\"\u003e\u003ccode\u003eb14fc96\u003c/code\u003e\u003c/a\u003e Update Rust crate tracing-subscriber to v0.3.20 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20162\"\u003e#20162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.12.10...0.12.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` from 1.1.404 to 1.1.405\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/e211ec8df8d389a147af6d31bdb2bc812f04aa5a\"\u003e\u003ccode\u003ee211ec8\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.405 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.404...v1.1.405\"\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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/MinBZK/amt/pull/599","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinBZK%2Famt/issues/599","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/599/packages"}],"issue_packages":[{"old_version":"0.42.0","new_version":"0.42.1","update_type":"patch","path":null,"pr_created_at":"2026-06-08T04:30:45.000Z","version_change":"0.42.0 → 0.42.1","issue":{"uuid":"4610040022","node_id":"PR_kwDOS0CgI87jwV_w","number":5,"state":"open","title":"chore(deps): bump sqlalchemy-utils from 0.42.0 to 0.42.1","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-08T04:30:45.000Z","updated_at":"2026-06-08T04:38:20.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"sqlalchemy-utils","old_version":"0.42.0","new_version":"0.42.1","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.42.0 to 0.42.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError with Sequence defaults in instant_defaults_listener by \u003ca href=\"https://github.com/wadinj\"\u003e\u003ccode\u003e@​wadinj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/pull/793\"\u003ekvesteri/sqlalchemy-utils#793\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.1 (2025-12-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/793\"\u003e#793\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/kvesteri/sqlalchemy-utils/commit/ed0cc46f96d3065331ff34c0713da23ee90920a0\"\u003e\u003ccode\u003eed0cc46\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/11cf519375af877839d025c2d4ce402db035b81f\"\u003e\u003ccode\u003e11cf519\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.5.0 to 2.6.0 in /requirements/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/881fed424d9e2b360c82e4318a4842a85514981b\"\u003e\u003ccode\u003e881fed4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/797\"\u003e#797\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/81a5f82b2d1b104a9a377103262d3c0b64ad60d6\"\u003e\u003ccode\u003e81a5f82\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e8b12f849325fd910c89e14017a572b1bd4066a4\"\u003e\u003ccode\u003ee8b12f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/794\"\u003e#794\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/19570dcae67c84e50cb37ea06db717429fc188e7\"\u003e\u003ccode\u003e19570dc\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/4a7d764a4f490614cf1e597f1101bd7153573141\"\u003e\u003ccode\u003e4a7d764\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9645938138e998190d20bbd6c955eeca6a024d4d\"\u003e\u003ccode\u003e9645938\u003c/code\u003e\u003c/a\u003e Fix AttributeError with Sequence defaults in instant_defaults_listener\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e4b9f72230fde81e00ee4f9e34839f6d635fd2f3\"\u003e\u003ccode\u003ee4b9f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/792\"\u003e#792\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/755064d8add7496fb5002c0eaa309542fab7a301\"\u003e\u003ccode\u003e755064d\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.42.0...0.42.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=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.42.0\u0026new-version=0.42.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/ishaansingh22/superset-devin-target/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ishaansingh22%2Fsuperset-devin-target/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"}},{"old_version":"0.41.2","new_version":"0.42.1","update_type":"minor","path":null,"pr_created_at":"2026-02-17T21:59:36.000Z","version_change":"0.41.2 → 0.42.1","issue":{"uuid":"3954847229","node_id":"PR_kwDONqUKmM7Ed3s5","number":323,"state":"open","title":"chore(deps): bump sqlalchemy-utils from 0.41.2 to 0.42.1","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-17T21:59:36.000Z","updated_at":"2026-02-17T21:59:42.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"sqlalchemy-utils","old_version":"0.41.2","new_version":"0.42.1","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.41.2 to 0.42.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError with Sequence defaults in instant_defaults_listener by \u003ca href=\"https://github.com/wadinj\"\u003e\u003ccode\u003e@​wadinj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/pull/793\"\u003ekvesteri/sqlalchemy-utils#793\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.1 (2025-12-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/793\"\u003e#793\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/commit/ed0cc46f96d3065331ff34c0713da23ee90920a0\"\u003e\u003ccode\u003eed0cc46\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/11cf519375af877839d025c2d4ce402db035b81f\"\u003e\u003ccode\u003e11cf519\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.5.0 to 2.6.0 in /requirements/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/881fed424d9e2b360c82e4318a4842a85514981b\"\u003e\u003ccode\u003e881fed4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/797\"\u003e#797\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/81a5f82b2d1b104a9a377103262d3c0b64ad60d6\"\u003e\u003ccode\u003e81a5f82\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e8b12f849325fd910c89e14017a572b1bd4066a4\"\u003e\u003ccode\u003ee8b12f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/794\"\u003e#794\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/19570dcae67c84e50cb37ea06db717429fc188e7\"\u003e\u003ccode\u003e19570dc\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/4a7d764a4f490614cf1e597f1101bd7153573141\"\u003e\u003ccode\u003e4a7d764\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9645938138e998190d20bbd6c955eeca6a024d4d\"\u003e\u003ccode\u003e9645938\u003c/code\u003e\u003c/a\u003e Fix AttributeError with Sequence defaults in instant_defaults_listener\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e4b9f72230fde81e00ee4f9e34839f6d635fd2f3\"\u003e\u003ccode\u003ee4b9f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/792\"\u003e#792\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/755064d8add7496fb5002c0eaa309542fab7a301\"\u003e\u003ccode\u003e755064d\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.2...0.42.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=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.41.2\u0026new-version=0.42.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/MoonLadderStudios/MoonMind/pull/323","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoonLadderStudios%2FMoonMind/issues/323","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/323/packages"}},{"old_version":"0.42.0","new_version":"0.42.1","update_type":"patch","path":null,"pr_created_at":"2026-01-27T00:10:11.000Z","version_change":"0.42.0 → 0.42.1","issue":{"uuid":"3858222818","node_id":"PR_kwDOLzgXB86_e42s","number":659,"state":"closed","title":"Bump the allpip group across 1 directory with 34 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-02T07:41:31.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-27T00:10:11.000Z","updated_at":"2026-02-02T07:41:33.000Z","time_to_close":545480,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"allpip","update_count":34,"packages":[{"name":"fastapi","old_version":"0.124.0","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"alembic","old_version":"1.17.2","new_version":"1.18.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sqlalchemy","old_version":"2.0.44","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"sqlalchemy-utils","old_version":"0.42.0","new_version":"0.42.1","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"},{"name":"aiosqlite","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"async-lru","old_version":"2.0.5","new_version":"2.1.0","repository_url":"https://github.com/aio-libs/async-lru"},{"name":"poetry","old_version":"2.2.1","new_version":"2.3.1","repository_url":"https://github.com/python-poetry/poetry"},{"name":"vcrpy","old_version":"8.1.0","new_version":"8.1.1","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"coverage","old_version":"7.13.0","new_version":"7.13.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"ruff","old_version":"0.14.8","new_version":"0.14.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pre-commit","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pyright","old_version":"1.1.407","new_version":"1.1.408","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"setuptools","old_version":"80.9.0","new_version":"80.10.2","repository_url":"https://github.com/pypa/setuptools"},{"name":"anyio","old_version":"4.12.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"build","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pypa/build"},{"name":"certifi","old_version":"2025.11.12","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"fsspec","old_version":"2025.12.0","new_version":"2026.1.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"greenlet","old_version":"3.3.0","new_version":"3.3.1","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"identify","old_version":"2.6.15","new_version":"2.6.16","repository_url":"https://github.com/pre-commit/identify"},{"name":"jaraco-context","old_version":"6.0.1","new_version":"6.1.0","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"jaraco-functools","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/jaraco/jaraco.functools"},{"name":"json5","old_version":"0.12.1","new_version":"0.13.0","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pathspec","old_version":"0.12.1","new_version":"1.0.3","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"pbs-installer","old_version":"2025.12.5","new_version":"2026.1.14","repository_url":"https://github.com/frostming/pbs-installer"},{"name":"pycparser","old_version":"2.23","new_version":"3.0","repository_url":"https://github.com/eliben/pycparser"},{"name":"regex","old_version":"2025.11.3","new_version":"2026.1.15","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"tomlkit","old_version":"0.13.3","new_version":"0.14.0","repository_url":"https://github.com/sdispater/tomlkit"},{"name":"trove-classifiers","old_version":"2025.12.1.14","new_version":"2026.1.14.14","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"}],"path":null,"ecosystem":"pip"},"body":"Bumps the allpip group with 32 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.124.0` | `0.128.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.17.2` | `1.18.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.38.0` | `0.40.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.44` | `2.0.46` |\n| [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) | `0.42.0` | `0.42.1` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.21.0` | `0.22.1` |\n| [async-lru](https://github.com/aio-libs/async-lru) | `2.0.5` | `2.1.0` |\n| [poetry](https://github.com/python-poetry/poetry) | `2.2.1` | `2.3.1` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `8.1.0` | `8.1.1` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.0` | `7.13.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.14.14` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.0` | `4.5.1` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.407` | `1.1.408` |\n| [setuptools](https://github.com/pypa/setuptools) | `80.9.0` | `80.10.2` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.0` | `4.12.1` |\n| [build](https://github.com/pypa/build) | `1.3.0` | `1.4.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.11.12` | `2026.1.4` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.12.0` | `2026.1.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.3.0` | `3.3.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.15` | `2.6.16` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.0.1` | `6.1.0` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) | `4.3.0` | `4.4.0` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.1` | `0.13.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `0.12.1` | `1.0.3` |\n| [pbs-installer](https://github.com/frostming/pbs-installer) | `2025.12.5` | `2026.1.14` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.23` | `3.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2025.11.3` | `2026.1.15` |\n| [tomlkit](https://github.com/sdispater/tomlkit) | `0.13.3` | `0.14.0` |\n| [trove-classifiers](https://github.com/pypa/trove-classifiers) | `2025.12.1.14` | `2026.1.14.14` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n\n\nUpdates `fastapi` from 0.124.0 to 0.128.0\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.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\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✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\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\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\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\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\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🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\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 missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\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👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\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👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\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👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\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 scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\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\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\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 LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\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⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\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\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\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\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/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.124.0...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.17.2 to 1.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.1\u003c/h1\u003e\n\u003cp\u003eReleased: January 14, 2026\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [autogenerate]\u003c/strong\u003e Fixed issue in new plugin system where the configured logger was not\ncorrectly using the \u003ccode\u003e__name__\u003c/code\u003e token to identify the logger.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1779\"\u003e#1779\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [operations]\u003c/strong\u003e Revised the change regarding SQLAlchemy 2.1 and deprecation warnings\nrelated to \u003ccode\u003eisolate_from_table=True\u003c/code\u003e. Further developments in release 2.1\nhave revised how this parameter will be modified.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.18.0\u003c/h1\u003e\n\u003cp\u003eReleased: January 9, 2026\u003c/p\u003e\n\u003ch2\u003efeature\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [operations]\u003c/strong\u003e When alembic is run in \u0026quot;verbose\u0026quot; mode, alembic now logs a message to\nindicate from which file is used to load the configuration.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1737\"\u003e#1737\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Autogenerate reflection sweeps now use the \u0026quot;bulk\u0026quot; inspector methods\nintroduced in SQLAlchemy 2.0, which for selected dialects including\nPostgreSQL and Oracle use batched queries to reflect whole collections of\ntables using O(1) queries rather than O(N).\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Release 1.18.0 introduces a plugin system that allows for automatic\nloading of third-party extensions as well as configurable autogenerate\ncompare functionality on a per-environment basis.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003ePlugin\u003c/code\u003e class provides a common interface for extensions that\nregister handlers among Alembic's existing extension points such as\n\u003ccode\u003eOperations.register_operation()\u003c/code\u003e and\n\u003ccode\u003eOperations.implementation_for()\u003c/code\u003e. A new interface for registering\nautogenerate comparison handlers,\n\u003ccode\u003ePlugin.add_autogenerate_comparator()\u003c/code\u003e, provides for autogenerate\ncompare functionality that may be custom-configured on a per-environment\nbasis using the new\n\u003ccode\u003eEnvironmentContext.configure.autogenerate_plugins\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eThe change does not impact well known Alembic add-ons such as\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.38.0 to 0.40.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.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 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/2772\"\u003eKludex/uvicorn#2772\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.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return 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/2769\"\u003eKludex/uvicorn#2769\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/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\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.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.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/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.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\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/Kludex/uvicorn/commit/9ff60042a53cd1bbfd5580ab0a91ea2d1d8f2f8c\"\u003e\u003ccode\u003e9ff6004\u003c/code\u003e\u003c/a\u003e Version 0.40.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2773\"\u003e#2773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/19df042c54c1562f058daf021d6f7bd1d5ed621c\"\u003e\u003ccode\u003e19df042\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/865ce7c0b4329a384273a6628eceb8d597989521\"\u003e\u003ccode\u003e865ce7c\u003c/code\u003e\u003c/a\u003e Run strict mypy on test suite (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2771\"\u003e#2771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4f40b8495772eb3a1ab3613ffd7be5156f8e1389\"\u003e\u003ccode\u003e4f40b84\u003c/code\u003e\u003c/a\u003e Version 0.39.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2770\"\u003e#2770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5692dfc416f9e65aee5028e55d119313d8d3ab0f\"\u003e\u003ccode\u003e5692dfc\u003c/code\u003e\u003c/a\u003e fix(websockets): Send close frame on ASGI return (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4194764a26824e5d8ddd1fa673df78dff82966e0\"\u003e\u003ccode\u003e4194764\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2763\"\u003e#2763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d94bf28743de545d2d4b150f022203a5178cb705\"\u003e\u003ccode\u003ed94bf28\u003c/code\u003e\u003c/a\u003e explicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8ae0bcbecb0a655789abf0c2dd4200848fc68a30\"\u003e\u003ccode\u003e8ae0bcb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4744ff9a1a4888c76ea160328cc9dcc2680c2c71\"\u003e\u003ccode\u003e4744ff9\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0391372376c264604a0475b0864bcbf3a8705352\"\u003e\u003ccode\u003e0391372\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.8.0 to 7.1.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2746\"\u003e#2746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.44 to 2.0.46\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.46\u003c/h1\u003e\n\u003cp\u003eReleased: January 21, 2026\u003c/p\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed typing issues where ORM mapped classes and aliased entities could not\nbe used as keys in result row mappings or as join targets in select\nstatements. Patterns such as \u003ccode\u003erow._mapping[User]\u003c/code\u003e,\n\u003ccode\u003erow._mapping[aliased(User)]\u003c/code\u003e, \u003ccode\u003erow._mapping[with_polymorphic(...)]\u003c/code\u003e\n(rejected by both mypy and Pylance), and \u003ccode\u003e.join(aliased(User))\u003c/code\u003e\n(rejected by Pylance) are documented and fully supported at runtime but\nwere previously rejected by type checkers. The type definitions for\n\u003ccode\u003e_KeyType\u003c/code\u003e and \u003ccode\u003e_FromClauseArgument\u003c/code\u003e have been updated to\naccept these ORM entity types.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13075\"\u003e#13075\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed issue where PostgreSQL JSONB operators\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_match()\u003c/code\u003e and\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_exists()\u003c/code\u003e were applying incorrect\n\u003ccode\u003eVARCHAR\u003c/code\u003e casts to the right-hand side operand when used with newer\nPostgreSQL drivers such as psycopg. The operators now indicate the\nright-hand type as \u003ccode\u003eJSONPATH\u003c/code\u003e, which currently results in no casting\ntaking place, but is also compatible with explicit casts if the\nimplementation were require it at a later point.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13059\"\u003e#13059\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed regression in PostgreSQL dialect where JSONB subscription syntax\nwould generate incorrect SQL for \u003ccode\u003ecast()\u003c/code\u003e expressions returning JSONB,\ncausing syntax errors. The dialect now properly wraps cast expressions in\nparentheses when using the \u003ccode\u003e[]\u003c/code\u003e subscription syntax, generating\n\u003ccode\u003e(CAST(...))[index]\u003c/code\u003e instead of \u003ccode\u003eCAST(...)[index]\u003c/code\u003e to comply with\nPostgreSQL syntax requirements. This extends the fix from \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12778\"\u003e#12778\u003c/a\u003e\nwhich addressed the same issue for function calls.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13067\"\u003e#13067\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Improved the foreign key reflection regular expression pattern used by the\nPostgreSQL dialect to be more permissive in matching identifier characters,\nallowing it to correctly handle unicode characters in table and column\nnames. This change improves compatibility with PostgreSQL variants such as\nCockroachDB that may use different quoting patterns in combination with\nunicode characters in their identifiers.  Pull request courtesy Gord\nThompson.\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy-utils` from 0.42.0 to 0.42.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError with Sequence defaults in instant_defaults_listener by \u003ca href=\"https://github.com/wadinj\"\u003e\u003ccode\u003e@​wadinj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/pull/793\"\u003ekvesteri/sqlalchemy-utils#793\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.1 (2025-12-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/793\"\u003e#793\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/kvesteri/sqlalchemy-utils/commit/ed0cc46f96d3065331ff34c0713da23ee90920a0\"\u003e\u003ccode\u003eed0cc46\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/11cf519375af877839d025c2d4ce402db035b81f\"\u003e\u003ccode\u003e11cf519\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.5.0 to 2.6.0 in /requirements/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/881fed424d9e2b360c82e4318a4842a85514981b\"\u003e\u003ccode\u003e881fed4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/797\"\u003e#797\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/81a5f82b2d1b104a9a377103262d3c0b64ad60d6\"\u003e\u003ccode\u003e81a5f82\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e8b12f849325fd910c89e14017a572b1bd4066a4\"\u003e\u003ccode\u003ee8b12f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/794\"\u003e#794\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/19570dcae67c84e50cb37ea06db717429fc188e7\"\u003e\u003ccode\u003e19570dc\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/4a7d764a4f490614cf1e597f1101bd7153573141\"\u003e\u003ccode\u003e4a7d764\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9645938138e998190d20bbd6c955eeca6a024d4d\"\u003e\u003ccode\u003e9645938\u003c/code\u003e\u003c/a\u003e Fix AttributeError with Sequence defaults in instant_defaults_listener\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e4b9f72230fde81e00ee4f9e34839f6d635fd2f3\"\u003e\u003ccode\u003ee4b9f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/792\"\u003e#792\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/755064d8add7496fb5002c0eaa309542fab7a301\"\u003e\u003ccode\u003e755064d\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.42.0...0.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiosqlite` from 0.21.0 to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.1\u003c/h2\u003e\n\u003cp\u003eBug fix release\u003c/p\u003e\n\u003cp\u003eNOTE: Starting with \u003ccode\u003ev0.22.0\u003c/code\u003e, the \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e object no longer\ninherits from \u003ccode\u003ethreading.Thread\u003c/code\u003e. If not using aiosqlite as a context manager,\nclients must \u003ccode\u003eawait connection.close()\u003c/code\u003e or call \u003ccode\u003econnection.stop()\u003c/code\u003e to ensure\nthe helper thread is completed and terminated correctly. A \u003ccode\u003eResourceWarning\u003c/code\u003e\nwill be emitted for any connection that is garbage collected without being\nclosed or stopped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded synchronous \u003ccode\u003estop()\u003c/code\u003e method to \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e to enable safe\ncleanup and termination of the background thread without dependence\non having an active event loop (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.22.0...v0.22.1\n     2\tAmethyst Reese\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cp\u003eFeature release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eset_authorizer\u003c/code\u003e query access controls (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWait for transaction queue to complete when closing connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit warning when connection goes out of scope without being closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on \u003ccode\u003etyping_extensions\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.21.0...v0.22.0\n     1\tAlec Berryman\n     1\tAmethyst Reese\n     1\tDavid Andreoletti\n     1\tMarkus Heidelberg\n     1\tbeerpsi\n    19\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/9b127cecc7de843bf4f343b6da63b641866533fb\"\u003e\u003ccode\u003e9b127ce\u003c/code\u003e\u003c/a\u003e Version bump v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/5c3f61c1ea49401f2716d8f58d494e76ca766921\"\u003e\u003ccode\u003e5c3f61c\u003c/code\u003e\u003c/a\u003e Improve stop semantics for connections (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/a869d73678adbc14472e4ac2c31f4e706efe8ef3\"\u003e\u003ccode\u003ea869d73\u003c/code\u003e\u003c/a\u003e Version bump v0.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/1cd60adcab12347577150a6fa6c7d92b7b86d989\"\u003e\u003ccode\u003e1cd60ad\u003c/code\u003e\u003c/a\u003e Emit warning if connection is deleted before it is closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/611d7b4f29fc3d7df6c173b2e79b0892e9d249aa\"\u003e\u003ccode\u003e611d7b4\u003c/code\u003e\u003c/a\u003e Add set_authorizer support for fine-grained access control (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/81d00c8f1676851c8634ca98f99e0973083ea75f\"\u003e\u003ccode\u003e81d00c8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/7a26722f7e6da6a1ae0febf515b4624794173fcc\"\u003e\u003ccode\u003e7a26722\u003c/code\u003e\u003c/a\u003e Bump coverage[toml] from 7.8.0 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/445754087ec452f888cc152debf79590d8a25d86\"\u003e\u003ccode\u003e4457540\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.2.0 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/b650dad318ad72e582b7ba1143cc05f270f8ab6b\"\u003e\u003ccode\u003eb650dad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/065ffdd1291693c5e69d2f3efff17e351d9a0163\"\u003e\u003ccode\u003e065ffdd\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.15.0 to 1.19.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.21.0...v0.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `async-lru` from 2.0.5 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-lru/releases\"\u003easync-lru's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed cancelling of task when all tasks waiting on it have been cancelled.\u003c/li\u003e\n\u003cli\u003eFixed DeprecationWarning from asyncio.iscoroutinefunction.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/async-lru/blob/master/CHANGES.rst\"\u003easync-lru's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.0 (2026-01-17)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed cancelling of task when all tasks waiting on it have been cancelled.\u003c/li\u003e\n\u003cli\u003eFixed DeprecationWarning from asyncio.iscoroutinefunction.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/b4e713b6e71cd4bc36fe0aa980951a1d9a1d2584\"\u003e\u003ccode\u003eb4e713b\u003c/code\u003e\u003c/a\u003e Release v2.1.0 (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/729\"\u003e#729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/64e52a30c7396863f245f3fd92deb077c3a83cd9\"\u003e\u003ccode\u003e64e52a3\u003c/code\u003e\u003c/a\u003e fix: callback inappropriately suppresses asyncio logs (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/dfa691513d454f72e37b7f04f3e40aa42009926c\"\u003e\u003ccode\u003edfa6915\u003c/code\u003e\u003c/a\u003e build(deps): bump sigstore/gh-action-sigstore-python from 3.1.0 to 3.2.0 (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/f0501344470a7c0c3df0d1d15482f9ad9620f0a6\"\u003e\u003ccode\u003ef050134\u003c/code\u003e\u003c/a\u003e build(deps): bump coverage from 7.13.0 to 7.13.1 (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/e19862dd0a9dcdf4db25c4c15eaa280bb86516b7\"\u003e\u003ccode\u003ee19862d\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/9ab48ab90c633e4708d725f0708f2ec651f188d1\"\u003e\u003ccode\u003e9ab48ab\u003c/code\u003e\u003c/a\u003e build(deps): bump coverage from 7.12.0 to 7.13.0 (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/724\"\u003e#724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/bbfbdae43bf7bf0ff274e3d1a7439c9081d96362\"\u003e\u003ccode\u003ebbfbdae\u003c/code\u003e\u003c/a\u003e build(deps): bump pytest from 9.0.1 to 9.0.2 (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/723\"\u003e#723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/8414747ae04e62683afc11e474e3e57d97b9522e\"\u003e\u003ccode\u003e8414747\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/02126177e0eeae2b6614a70ee85a46563148161c\"\u003e\u003ccode\u003e0212617\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump mypy from 1.18.2 to 1.19.0 (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/721\"\u003e#721\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/async-lru/commit/760a980b7b6dba5686a4be528bdd4542ad11edb8\"\u003e\u003ccode\u003e760a980\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump flake8-bugbear from 25.10.21 to 25.11.29 (\u003ca href=\"https://redirect.github.com/aio-libs/async-lru/issues/720\"\u003e#720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/async-lru/compare/v2.0.5...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `poetry` from 2.2.1 to 2.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-poetry/poetry/releases\"\u003epoetry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue where cached information about each package was always considered outdated (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10699\"\u003e#10699\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument SHELL_VERBOSITY environment variable (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10678\"\u003e#10678\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd support for exporting \u003ccode\u003epylock.toml\u003c/code\u003e files with \u003ccode\u003epoetry-plugin-export\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10677\"\u003e#10677\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for specifying build constraints for dependencies (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10388\"\u003e#10388\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for publishing artifacts whose version is determined dynamically by the build-backend (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10644\"\u003e#10644\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for editable project plugins (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10661\"\u003e#10661\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eCheck \u003ccode\u003erequires-poetry\u003c/code\u003e before any other validation (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10593\"\u003e#10593\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eValidate the content of \u003ccode\u003eproject.readme\u003c/code\u003e when running \u003ccode\u003epoetry check\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10604\"\u003e#10604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd the option to clear all caches by making the cache name in \u003ccode\u003epoetry cache clear\u003c/code\u003e optional (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10627\"\u003e#10627\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAutomatically update the cache for packages where the locked files differ from cached files (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10657\"\u003e#10657\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSuggest to clear the cache if running a command with \u003ccode\u003e--no-cache\u003c/code\u003e solves an issue (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10585\"\u003e#10585\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003ePropose \u003ccode\u003epoetry init\u003c/code\u003e when trying \u003ccode\u003epoetry new\u003c/code\u003e for an existing directory (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10563\"\u003e#10563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003epoetry publish --skip-existing\u003c/code\u003e for new Nexus OSS versions (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10603\"\u003e#10603\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eShow Poetry's own Python's path in \u003ccode\u003epoetry debug info\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10588\"\u003e#10588\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop support for Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10634\"\u003e#10634\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChange the default of \u003ccode\u003einstaller.re-resolve\u003c/code\u003e from \u003ccode\u003etrue\u003c/code\u003e to \u003ccode\u003efalse\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10622\"\u003e#10622\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePEP 735 dependency groups are considered in the lock file hash\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10621\"\u003e#10621\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003epoetry.utils._compat.metadata\u003c/code\u003e, which is sometimes used in plugins, in favor of \u003ccode\u003eimportlib.metadata\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10634\"\u003e#10634\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImprove managing free-threaded Python versions with \u003ccode\u003epoetry python\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10606\"\u003e#10606\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003ePrefer JSON API to HTML API in legacy repositories (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10672\"\u003e#10672\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eWhen running \u003ccode\u003epoetry init\u003c/code\u003e, only add the readme field in the \u003ccode\u003epyproject.toml\u003c/code\u003e if the readme file exists (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10679\"\u003e#10679\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRaise an error if no hash can be determined for any distribution link of a package (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10673\"\u003e#10673\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRequire \u003ccode\u003edulwich\u0026gt;=0.25.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10674\"\u003e#10674\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry remove\u003c/code\u003e did not work for PEP 735 dependency groups with \u003ccode\u003einclude-group\u003c/code\u003e items (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10587\"\u003e#10587\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry remove\u003c/code\u003e caused dangling \u003ccode\u003einclude-group\u003c/code\u003e references in PEP 735 dependency groups (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10590\"\u003e#10590\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry add\u003c/code\u003e did not work for PEP 735 dependency groups with \u003ccode\u003einclude-group\u003c/code\u003e items (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10636\"\u003e#10636\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where PEP 735 dependency groups were not considered in the lock file hash (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10621\"\u003e#10621\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where wrong markers were locked for a dependency that was required by several groups with different markers (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10613\"\u003e#10613\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where non-deterministic markers were created in a method used by \u003ccode\u003epoetry-plugin-export\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10667\"\u003e#10667\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where wrong wheels were chosen for installation in free-threaded Python environments if Poetry itself was not installed with free-threaded Python (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10614\"\u003e#10614\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry publish\u003c/code\u003e used the metadata of the project instead of the metadata of the build artifact (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10624\"\u003e#10624\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry env use\u003c/code\u003e just used another Python version instead of failing when the requested version was not supported by the project (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10685\"\u003e#10685\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry env activate\u003c/code\u003e returned the wrong command for \u003ccode\u003edash\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10696\"\u003e#10696\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003edata-dir\u003c/code\u003e and \u003ccode\u003epython.installation-dir\u003c/code\u003e could not be set (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10595\"\u003e#10595\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/python-poetry/poetry/blob/main/CHANGELOG.md\"\u003epoetry's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.3.1] - 2026-01-20\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue where cached information about each package was always considered outdated (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10699\"\u003e#10699\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument SHELL_VERBOSITY environment variable (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10678\"\u003e#10678\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[2.3.0] - 2026-01-18\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd support for exporting \u003ccode\u003epylock.toml\u003c/code\u003e files with \u003ccode\u003epoetry-plugin-export\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10677\"\u003e#10677\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for specifying build constraints for dependencies (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10388\"\u003e#10388\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for publishing artifacts whose version is determined dynamically by the build-backend (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10644\"\u003e#10644\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for editable project plugins (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10661\"\u003e#10661\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eCheck \u003ccode\u003erequires-poetry\u003c/code\u003e before any other validation (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10593\"\u003e#10593\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eValidate the content of \u003ccode\u003eproject.readme\u003c/code\u003e when running \u003ccode\u003epoetry check\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10604\"\u003e#10604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd the option to clear all caches by making the cache name in \u003ccode\u003epoetry cache clear\u003c/code\u003e optional (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10627\"\u003e#10627\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAutomatically update the cache for packages where the locked files differ from cached files (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10657\"\u003e#10657\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSuggest to clear the cache if running a command with \u003ccode\u003e--no-cache\u003c/code\u003e solves an issue (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10585\"\u003e#10585\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003ePropose \u003ccode\u003epoetry init\u003c/code\u003e when trying \u003ccode\u003epoetry new\u003c/code\u003e for an existing directory (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10563\"\u003e#10563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003epoetry publish --skip-existing\u003c/code\u003e for new Nexus OSS versions (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10603\"\u003e#10603\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eShow Poetry's own Python's path in \u003ccode\u003epoetry debug info\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10588\"\u003e#10588\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop support for Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10634\"\u003e#10634\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChange the default of \u003ccode\u003einstaller.re-resolve\u003c/code\u003e from \u003ccode\u003etrue\u003c/code\u003e to \u003ccode\u003efalse\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10622\"\u003e#10622\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePEP 735 dependency groups are considered in the lock file hash\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10621\"\u003e#10621\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003epoetry.utils._compat.metadata\u003c/code\u003e, which is sometimes used in plugins, in favor of \u003ccode\u003eimportlib.metadata\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10634\"\u003e#10634\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImprove managing free-threaded Python versions with \u003ccode\u003epoetry python\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10606\"\u003e#10606\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003ePrefer JSON API to HTML API in legacy repositories (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10672\"\u003e#10672\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eWhen running \u003ccode\u003epoetry init\u003c/code\u003e, only add the readme field in the \u003ccode\u003epyproject.toml\u003c/code\u003e if the readme file exists (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10679\"\u003e#10679\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRaise an error if no hash can be determined for any distribution link of a package (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10673\"\u003e#10673\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRequire \u003ccode\u003edulwich\u0026gt;=0.25.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10674\"\u003e#10674\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry remove\u003c/code\u003e did not work for PEP 735 dependency groups with \u003ccode\u003einclude-group\u003c/code\u003e items (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10587\"\u003e#10587\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry remove\u003c/code\u003e caused dangling \u003ccode\u003einclude-group\u003c/code\u003e references in PEP 735 dependency groups (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10590\"\u003e#10590\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry add\u003c/code\u003e did not work for PEP 735 dependency groups with \u003ccode\u003einclude-group\u003c/code\u003e items (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10636\"\u003e#10636\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where PEP 735 dependency groups were not considered in the lock file hash (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10621\"\u003e#10621\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where wrong markers were locked for a dependency that was required by several groups with different markers (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10613\"\u003e#10613\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where non-deterministic markers were created in a method used by \u003ccode\u003epoetry-plugin-export\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10667\"\u003e#10667\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where wrong wheels were chosen for installation in free-threaded Python environments if Poetry itself was not installed with free-threaded Python (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10614\"\u003e#10614\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry publish\u003c/code\u003e used the metadata of the project instead of the metadata of the build artifact (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10624\"\u003e#10624\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/python-poetry/poetry/commit/f3d239baaed2cd5c5512f827d0d80ecbfb1181fe\"\u003e\u003ccode\u003ef3d239b\u003c/code\u003e\u003c/a\u003e release: bump version to 2.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/6a81e6069f8a01edb58b12c9890113ffb13c0116\"\u003e\u003ccode\u003e6a81e60\u003c/code\u003e\u003c/a\u003e fix: ignore different URL in cache staleness check (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10699\"\u003e#10699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/697c1709468cf74858b6c041d66bc785b4b10c3e\"\u003e\u003ccode\u003e697c170\u003c/code\u003e\u003c/a\u003e docs: document SHELL_VERBOSITY environment variable (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10678\"\u003e#10678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/e39f1f1d9a68c93258513d4f6f8e1121e70c1e82\"\u003e\u003ccode\u003ee39f1f1\u003c/code\u003e\u003c/a\u003e release: bump version to 2.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/c6d3537a7d73d24e1e1b68fb3d4f860a0e83e21c\"\u003e\u003ccode\u003ec6d3537\u003c/code\u003e\u003c/a\u003e env activate: fallback to POSIX compatible builtin (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10696\"\u003e#10696\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/ba73d18e51d51f185ce6f733a9cc79552d3f28f0\"\u003e\u003ccode\u003eba73d18\u003c/code\u003e\u003c/a\u003e chore: update locked dependencies (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10694\"\u003e#10694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/a09b5033f3fd543e9a7a6ea8925ee2d86a806c60\"\u003e\u003ccode\u003ea09b503\u003c/code\u003e\u003c/a\u003e chore: update actions (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10693\"\u003e#10693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/74e3d4e40282ec695c7a9bcac551da6351eaa550\"\u003e\u003ccode\u003e74e3d4e\u003c/code\u003e\u003c/a\u003e direct-origin: add size to file info (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10677\"\u003e#10677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/e29ac7a16ff502fb6ae9ee9881484feb006100ad\"\u003e\u003ccode\u003ee29ac7a\u003c/code\u003e\u003c/a\u003e repository: bump cache version (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10677\"\u003e#10677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/ab293dc58a5ca944507817439a3ab3fe6692b5c3\"\u003e\u003ccode\u003eab293dc\u003c/code\u003e\u003c/a\u003e repository: add size and upload-time to file info if available (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10677\"\u003e#10677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-poetry/poetry/compare/2.2.1...2.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `vcrpy` from 8.1.0 to 8.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kevin1024/vcrpy/releases\"\u003evcrpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix sync requests in async contexts for HTTPX (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/965\"\u003e#965\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/seowalex\"\u003e\u003ccode\u003e@​seowalex\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: bump peter-evans/create-pull-request from 7 to 8 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/969\"\u003e#969\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/kevin1024/vcrpy/blob/master/docs/changelog.rst\"\u003evcrpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cp\u003eFor a full list of triaged issues, bugs and PRs and what release they are targeted for please see the following link.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eROADMAP MILESTONES \u0026lt;https://github.com/kevin1024/vcrpy/milestones\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cp\u003eAll help in providing PRs to close out bug issues is appreciated. Even if that is providing a repo that fully replicates issues. We have very generous contributors that have added these to bug issues which meant another contributor picked up the bug and closed it out.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e8.1.1\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix sync requests in async contexts for HTTPX (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/965\"\u003e#965\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/seowalex\"\u003e\u003ccode\u003e@​seowalex\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: bump peter-evans/create-pull-request from 7 to 8 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e8.1.0\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable brotli decompression if available (via \u003ccode\u003ebrotli\u003c/code\u003e, \u003ccode\u003ebrotlipy\u003c/code\u003e or \u003ccode\u003ebrotlicffi\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/620\"\u003e#620\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/immerrr\"\u003e\u003ccode\u003e@​immerrr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aiohttp allowing both \u003ccode\u003edata\u003c/code\u003e and \u003ccode\u003ejson\u003c/code\u003e arguments when one is None (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/624\"\u003e#624\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/leorochael\"\u003e\u003ccode\u003e@​leorochael\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix usage of io-like interface with VCR.py (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/906\"\u003e#906\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/tito\"\u003e\u003ccode\u003e@​tito\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/kevdevg\"\u003e\u003ccode\u003e@​kevdevg\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate to declarative Python package config (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/767\"\u003e#767\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/deronnax\"\u003e\u003ccode\u003e@​deronnax\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious linting fixes - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/955\"\u003e#955\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e8.0.0\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBREAKING: Drop support for Python 3.9 (major version bump) - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBREAKING: Drop support for urllib3 \u0026lt; 2 - fixes CVE warnings from urllib3 1.x (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/926\"\u003e#926\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/880\"\u003e#880\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNew feature: \u003ccode\u003edrop_unused_requests\u003c/code\u003e option to remove unused interactions from cassettes (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/763\"\u003e#763\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/danielnsilva\"\u003e\u003ccode\u003e@​danielnsilva\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRewrite httpx support to patch httpcore instead of httpx (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/943\"\u003e#943\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/seowalex\"\u003e\u003ccode\u003e@​seowalex\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eFixes \u003ccode\u003ehttpx.ResponseNotRead\u003c/code\u003e exceptions (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/832\"\u003e#832\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/834\"\u003e#834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixes \u003ccode\u003eKeyError: 'follow_redirects'\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdds support for custom httpx transports\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix HTTPS proxy handling - proxy address no longer ends up in cassette URIs (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/809\"\u003e#809\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/914\"\u003e#914\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/alga\"\u003e\u003ccode\u003e@​alga\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eiscoroutinefunction\u003c/code\u003e deprecation warning on Python 3.14 - thanks \u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly log message if response is appended - thanks \u003ca href=\"https://github.com/talfus-laddus\"\u003e\u003ccode\u003e@​talfus-laddus\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize urllib.parse calls - thanks \u003ca href=\"https://github.com/Martin-Brunthaler\"\u003e\u003ccode\u003e@​Martin-Brunthaler\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI for Ubuntu 24.04 - thanks \u003ca href=\"https://github.com/hartwork\"\u003e\u003ccode\u003e@​hartwork\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious CI improvements: migrate to uv, update GitHub Actions - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious linting and test improvements - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/hartwork\"\u003e\u003ccode\u003e@​hartwork\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e7.0.0\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for python 3.8 (major version bump) - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious linting and test fixes - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix for urllib2\u0026gt;=2.3.0 - missing version_string (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/888\"\u003e#888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix for asyncio.run - thanks \u003ca href=\"https://github.com/alekeik1\"\u003e\u003ccode\u003e@​alekeik1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e6.0.2\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure body is consumed only once (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/846\"\u003e#846\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/sathieu\"\u003e\u003ccode\u003e@​sathieu\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePermit urllib3 2.x for non-PyPy Python \u0026gt;=3.10\u003c/li\u003e\n\u003cli\u003eFix typos in test commands - thanks \u003ca href=\"https://github.com/chuckwondo\"\u003e\u003ccode\u003e@​chuckwondo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral test and workflow improvements - thanks \u003ca href=\"https://github.com/hartwork\"\u003e\u003ccode\u003e@​hartwork\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e6.0.1\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix with to Tornado cassette generator (thanks \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e6.0.0\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/kevin1024/vcrpy/commit/9b586631e4131fce906207c40eeb71e41df6c23a\"\u003e\u003ccode\u003e9b58663\u003c/code\u003e\u003c/a\u003e Release v8.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/3780f580409a437d98a257a0455d4a01b2664dce\"\u003e\u003ccode\u003e3780f58\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/create-pull-request from 7 to 8 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/1b70394f3592d51f6ac88c86ee05e5915064c9ea\"\u003e\u003ccode\u003e1b70394\u003c/code\u003e\u003c/a\u003e Split sync and async HTTPX handlers (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/ca4b1e19c2e9259690987e18587f70362fe98858\"\u003e\u003ccode\u003eca4b1e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/960\"\u003e#960\u003c/a\u003e from kevin1024/precommit-autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/8d47ca10d086c88fb755560d1dca3b2132cf20d7\"\u003e\u003ccode\u003e8d47ca1\u003c/code\u003e\u003c/a\u003e pre-commit: Autoupdate\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kevin1024/vcrpy/compare/v8.1.0...v8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.0 to 7.13.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.2 — 2026-01-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: when Python is installed via symlinks, for example with Homebrew, the\nstandard library files could be incorrectly included in coverage reports.\nThis is now fixed, closing \u003ccode\u003eissue 2115\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: if a data file is created with no read permissions, the combine step\nwould fail completely. Now a warning is issued and the file is skipped.\nCloses \u003ccode\u003eissue 2117\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2115: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2115\"\u003ecoveragepy/coveragepy#2115\u003c/a\u003e\n.. _issue 2117: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2117\"\u003ecoveragepy/coveragepy#2117\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\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/coveragepy/coveragepy/commit/513e97162536cb94aeb94ed3cbe487ca64d13e07\"\u003e\u003ccode\u003e513e971\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/27a8230cf0ef73abca824d2a8622235d9ad8ab96\"\u003e\u003ccode\u003e27a8230\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/27d8daac216ffef80276515b22cf679f9fabc422\"\u003e\u003ccode\u003e27d8daa\u003c/code\u003e\u003c/a\u003e refactor: plural does more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2f248cf095fc49d3599c39befdea6a5552ccd23\"\u003e\u003ccode\u003ea2f248c\u003c/code\u003e\u003c/a\u003e fix: stdlib might be through a symlink. \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2115\"\u003e#2115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/bc52a22953759f71c291d31e7d17faf9903c0667\"\u003e\u003ccode\u003ebc52a22\u003c/code\u003e\u003c/a\u003e debug: re-organize Matchers to show more of what they do\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/f338d816ba7fcd23934a9397d15450593f0f20d9\"\u003e\u003ccode\u003ef338d81\u003c/code\u003e\u003c/a\u003e debug: build is a tuple, don't show it on two lines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/92020e469ab6c80cbe24786d0250a571d5f569cf\"\u003e\u003ccode\u003e92020e4\u003c/code\u003e\u003c/a\u003e refactor(test): convert to parametrized\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/6387d0a60d80cb96231ad32fe81be47cddfe1c78\"\u003e\u003ccode\u003e6387d0a\u003c/code\u003e\u003c/a\u003e test: let (most) tests run with no network\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1d31e33cfe0ccef7d87c1f0c6219f55a3d9b5eee\"\u003e\u003ccode\u003e1d31e33\u003c/code\u003e\u003c/a\u003e build: workflows sometimes need more than 10 min\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/62949782b7810d8ffc228ba0e00f81c2ab81cda7\"\u003e\u003ccode\u003e6294978\u003c/code\u003e\u003c/a\u003e refactor: an error message is now uniform across versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.0...7.13.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.14.8 to 0.14.14\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.14.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-22.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve required parentheses in lambda bodies (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22747\"\u003e#22747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCombine range suppression code diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22613\"\u003e#22613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Second positional argument to \u003ccode\u003eAsset\u003c/code\u003e/\u003ccode\u003eDataset\u003c/code\u003e should not be a dictionary (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22453\"\u003e#22453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Detect duplicate entries in \u003ccode\u003e__all__\u003c/code\u003e (\u003ccode\u003eRUF068\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22114\"\u003e#22114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Allow shadowing non-builtin bindings (\u003ccode\u003eUP029\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22749\"\u003e#22749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pie\u003c/code\u003e] Detect duplicated declared class fields in \u003ccode\u003ePIE794\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22717\"\u003e#22717\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-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e, \u003ccode\u003e__enter__\u003c/code\u003e, \u003ccode\u003e__aenter__\u003c/code\u003e in \u003ccode\u003ePYI034\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22798\"\u003e#22798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Support \u003ccode\u003echeck\u003c/code\u003e parameter in \u003ccode\u003ePT011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22725\"\u003e#22725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add exception for \u003ccode\u003ectypes.Structure._fields_\u003c/code\u003e (\u003ccode\u003eRUF012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22559\"\u003e#22559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMany fixes are now marked unsafe if they would remove comments:\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22656\"\u003e\u003ccode\u003eB009\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22657\"\u003e\u003ccode\u003eB010\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22658\"\u003e\u003ccode\u003eB013\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22659\"\u003e\u003ccode\u003eB014\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22632\"\u003e\u003ccode\u003eB033\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22662\"\u003e\u003ccode\u003eSIM910\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22661\"\u003e\u003ccode\u003eSIM911\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP007\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22774\"\u003e\u003ccode\u003eUP039\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22773\"\u003e\u003ccode\u003eUP041\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP045\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22767\"\u003e\u003ccode\u003eFURB105\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22681\"\u003e\u003ccode\u003eFURB116\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22680\"\u003e\u003ccode\u003eFURB136\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22679\"\u003e\u003ccode\u003eFURB140\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22670\"\u003e\u003ccode\u003eFURB145\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22669\"\u003e\u003ccode\u003eFURB154\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22668\"\u003e\u003ccode\u003eFURB157\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22667\"\u003e\u003ccode\u003eFURB164\u003c/code\u003e\u003c/a\u003e,\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22666\"\u003e\u003ccode\u003eFURB181\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22665\"\u003e\u003ccode\u003eFURB188\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22663\"\u003e\u003ccode\u003eRUF019\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22664\"\u003e\u003ccode\u003eRUF020\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--exit-non-zero-on-format\u003c/code\u003e to formatter exit codes section (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22761\"\u003e#22761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eFastAPI\u003c/code\u003e] Document fix safety for \u003ccode\u003eFAST001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22655\"\u003e#22655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Tweak explanation to focus on latency/efficiency tradeoff (\u003ccode\u003eASYNC110\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22715\"\u003e#22715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePD002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22561\"\u003e#22561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB101\u003c/code\u003e) (\u003ca href=...\n\n_Description has been truncated_","html_url":"https://github.com/MinBZK/amt/pull/659","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinBZK%2Famt/issues/659","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/659/packages"}},{"old_version":"0.42.0","new_version":"0.42.1","update_type":"patch","path":null,"pr_created_at":"2026-01-13T20:39:19.000Z","version_change":"0.42.0 → 0.42.1","issue":{"uuid":"3810509873","node_id":"PR_kwDOLzgXB869BIrn","number":650,"state":"closed","title":"Bump the allpip group across 1 directory with 27 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-19T07:59:05.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-13T20:39:19.000Z","updated_at":"2026-01-19T07:59:08.000Z","time_to_close":472786,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"allpip","update_count":27,"packages":[{"name":"fastapi","old_version":"0.124.0","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"alembic","old_version":"1.17.2","new_version":"1.18.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sqlalchemy","old_version":"2.0.44","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"sqlalchemy-utils","old_version":"0.42.0","new_version":"0.42.1","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"},{"name":"aiosqlite","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"python-multipart","old_version":"0.0.20","new_version":"0.0.21","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"vcrpy","old_version":"8.1.0","new_version":"8.1.1","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"coverage","old_version":"7.13.0","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"ruff","old_version":"0.14.8","new_version":"0.14.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pre-commit","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pyright","old_version":"1.1.407","new_version":"1.1.408","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"anyio","old_version":"4.12.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"build","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pypa/build"},{"name":"certifi","old_version":"2025.11.12","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"filelock","old_version":"3.20.1","new_version":"3.20.3","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fsspec","old_version":"2025.12.0","new_version":"2026.1.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"identify","old_version":"2.6.15","new_version":"2.6.16","repository_url":"https://github.com/pre-commit/identify"},{"name":"jaraco-context","old_version":"6.0.1","new_version":"6.1.0","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"jaraco-functools","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/jaraco/jaraco.functools"},{"name":"json5","old_version":"0.12.1","new_version":"0.13.0","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"pathspec","old_version":"0.12.1","new_version":"1.0.3","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"pbs-installer","old_version":"2025.12.5","new_version":"2025.12.17","repository_url":"https://github.com/frostming/pbs-installer"},{"name":"tomlkit","old_version":"0.13.3","new_version":"0.14.0","repository_url":"https://github.com/sdispater/tomlkit"},{"name":"trove-classifiers","old_version":"2025.12.1.14","new_version":"2026.1.12.15","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"}],"path":null,"ecosystem":"pip"},"body":"Bumps the allpip group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.124.0` | `0.128.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.17.2` | `1.18.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.38.0` | `0.40.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.44` | `2.0.45` |\n| [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) | `0.42.0` | `0.42.1` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.21.0` | `0.22.1` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.20` | `0.0.21` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `8.1.0` | `8.1.1` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.0` | `7.13.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.14.11` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.0` | `4.5.1` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.407` | `1.1.408` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.0` | `4.12.1` |\n| [build](https://github.com/pypa/build) | `1.3.0` | `1.4.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.11.12` | `2026.1.4` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.20.1` | `3.20.3` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.12.0` | `2026.1.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.15` | `2.6.16` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.0.1` | `6.1.0` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) | `4.3.0` | `4.4.0` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.1` | `0.13.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `0.12.1` | `1.0.3` |\n| [pbs-installer](https://github.com/frostming/pbs-installer) | `2025.12.5` | `2025.12.17` |\n| [tomlkit](https://github.com/sdispater/tomlkit) | `0.13.3` | `0.14.0` |\n| [trove-classifiers](https://github.com/pypa/trove-classifiers) | `2025.12.1.14` | `2026.1.12.15` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n\n\nUpdates `fastapi` from 0.124.0 to 0.128.0\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.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\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✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\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\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\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\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\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🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\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 missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\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👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\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👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\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👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\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 scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\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\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\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 LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\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⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\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\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\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\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/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.124.0...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.17.2 to 1.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.0\u003c/h1\u003e\n\u003cp\u003eReleased: January 9, 2026\u003c/p\u003e\n\u003ch2\u003efeature\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [operations]\u003c/strong\u003e When alembic is run in \u0026quot;verbose\u0026quot; mode, alembic now logs a message to\nindicate from which file is used to load the configuration.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1737\"\u003e#1737\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Autogenerate reflection sweeps now use the \u0026quot;bulk\u0026quot; inspector methods\nintroduced in SQLAlchemy 2.0, which for selected dialects including\nPostgreSQL and Oracle use batched queries to reflect whole collections of\ntables using O(1) queries rather than O(N).\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Release 1.18.0 introduces a plugin system that allows for automatic\nloading of third-party extensions as well as configurable autogenerate\ncompare functionality on a per-environment basis.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003ePlugin\u003c/code\u003e class provides a common interface for extensions that\nregister handlers among Alembic's existing extension points such as\n\u003ccode\u003eOperations.register_operation()\u003c/code\u003e and\n\u003ccode\u003eOperations.implementation_for()\u003c/code\u003e. A new interface for registering\nautogenerate comparison handlers,\n\u003ccode\u003ePlugin.add_autogenerate_comparator()\u003c/code\u003e, provides for autogenerate\ncompare functionality that may be custom-configured on a per-environment\nbasis using the new\n\u003ccode\u003eEnvironmentContext.configure.autogenerate_plugins\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eThe change does not impact well known Alembic add-ons such as\n\u003ccode\u003ealembic-utils\u003c/code\u003e, which continue to work as before; however, such add-ons\nhave the option to provide plugin entrypoints going forward.\u003c/p\u003e\n\u003cp\u003eAs part of this change, Alembic's autogenerate compare functionality is\nreorganized into a series of internal plugins under the\n\u003ccode\u003ealembic.autogenerate\u003c/code\u003e namespace, which may be individually or\ncollectively identified for inclusion and/or exclusion within the\n\u003ccode\u003eEnvironmentContext.configure()\u003c/code\u003e call using a new parameter\n\u003ccode\u003eEnvironmentContext.configure.autogenerate_plugins\u003c/code\u003e. This\nparameter is also where third party comparison plugins may also be\nindicated.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003ealembic.plugins.toplevel\u003c/code\u003e for complete documentation on\nthe new \u003ccode\u003ePlugin\u003c/code\u003e class as well as autogenerate-specific usage\ninstructions.\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.38.0 to 0.40.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.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 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/2772\"\u003eKludex/uvicorn#2772\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.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return 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/2769\"\u003eKludex/uvicorn#2769\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/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\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.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.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/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.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\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/Kludex/uvicorn/commit/9ff60042a53cd1bbfd5580ab0a91ea2d1d8f2f8c\"\u003e\u003ccode\u003e9ff6004\u003c/code\u003e\u003c/a\u003e Version 0.40.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2773\"\u003e#2773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/19df042c54c1562f058daf021d6f7bd1d5ed621c\"\u003e\u003ccode\u003e19df042\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/865ce7c0b4329a384273a6628eceb8d597989521\"\u003e\u003ccode\u003e865ce7c\u003c/code\u003e\u003c/a\u003e Run strict mypy on test suite (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2771\"\u003e#2771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4f40b8495772eb3a1ab3613ffd7be5156f8e1389\"\u003e\u003ccode\u003e4f40b84\u003c/code\u003e\u003c/a\u003e Version 0.39.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2770\"\u003e#2770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5692dfc416f9e65aee5028e55d119313d8d3ab0f\"\u003e\u003ccode\u003e5692dfc\u003c/code\u003e\u003c/a\u003e fix(websockets): Send close frame on ASGI return (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4194764a26824e5d8ddd1fa673df78dff82966e0\"\u003e\u003ccode\u003e4194764\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2763\"\u003e#2763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d94bf28743de545d2d4b150f022203a5178cb705\"\u003e\u003ccode\u003ed94bf28\u003c/code\u003e\u003c/a\u003e explicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8ae0bcbecb0a655789abf0c2dd4200848fc68a30\"\u003e\u003ccode\u003e8ae0bcb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4744ff9a1a4888c76ea160328cc9dcc2680c2c71\"\u003e\u003ccode\u003e4744ff9\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0391372376c264604a0475b0864bcbf3a8705352\"\u003e\u003ccode\u003e0391372\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.8.0 to 7.1.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2746\"\u003e#2746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.44 to 2.0.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.45\u003c/h1\u003e\n\u003cp\u003eReleased: December 9, 2025\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where calling \u003ccode\u003eMapper.add_property()\u003c/code\u003e within mapper event\nhooks such as \u003ccode\u003eMapperEvents.instrument_class()\u003c/code\u003e,\n\u003ccode\u003eMapperEvents.after_mapper_constructed()\u003c/code\u003e, or\n\u003ccode\u003eMapperEvents.before_mapper_configured()\u003c/code\u003e would raise an\n\u003ccode\u003eAttributeError\u003c/code\u003e because the mapper's internal property collections were\nnot yet initialized. The \u003ccode\u003eMapper.add_property()\u003c/code\u003e method now handles\nearly-stage property additions correctly, allowing properties including\ncolumn properties, deferred columns, and relationships to be added during\nmapper initialization events.  Pull request courtesy G Allajmi.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12858\"\u003e#12858\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue in Python 3.14 where dataclass transformation would fail when\na mapped class using \u003ccode\u003eMappedAsDataclass\u003c/code\u003e included a\n\u003ccode\u003erelationship()\u003c/code\u003e referencing a class that was not available at\nruntime (e.g., within a \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e block). This occurred when using\nPython 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e deferred annotations feature, which is the\ndefault behavior without a \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e\ndirective.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12952\"\u003e#12952\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eexamples\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[examples] [bug]\u003c/strong\u003e Fixed the \u0026quot;short_selects\u0026quot; performance example where the cache was being\nused in all the examples, making it impossible to compare performance with\nand without the cache.   Less important comparisons like \u0026quot;lambdas\u0026quot; and\n\u0026quot;baked queries\u0026quot; have been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Some improvements to the \u003ccode\u003e_sql.ClauseElement.params()\u003c/code\u003e method to\nreplace bound parameters in a query were made, however the ultimate issue\nin \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e involving ORM \u003ccode\u003e_orm.aliased()\u003c/code\u003e cannot be fixed fully\nuntil 2.1, where the method is being rewritten to work without relying on\nCore cloned traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003eColumnOperators.in_()\u003c/code\u003e operator with a\nnested \u003ccode\u003eCompoundSelect\u003c/code\u003e statement (e.g. an \u003ccode\u003eINTERSECT\u003c/code\u003e of\n\u003ccode\u003eUNION\u003c/code\u003e queries) would raise a \u003ccode\u003eNotImplementedError\u003c/code\u003e when the\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy-utils` from 0.42.0 to 0.42.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError with Sequence defaults in instant_defaults_listener by \u003ca href=\"https://github.com/wadinj\"\u003e\u003ccode\u003e@​wadinj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/pull/793\"\u003ekvesteri/sqlalchemy-utils#793\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.1 (2025-12-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/793\"\u003e#793\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/kvesteri/sqlalchemy-utils/commit/ed0cc46f96d3065331ff34c0713da23ee90920a0\"\u003e\u003ccode\u003eed0cc46\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/11cf519375af877839d025c2d4ce402db035b81f\"\u003e\u003ccode\u003e11cf519\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.5.0 to 2.6.0 in /requirements/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/881fed424d9e2b360c82e4318a4842a85514981b\"\u003e\u003ccode\u003e881fed4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/797\"\u003e#797\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/81a5f82b2d1b104a9a377103262d3c0b64ad60d6\"\u003e\u003ccode\u003e81a5f82\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e8b12f849325fd910c89e14017a572b1bd4066a4\"\u003e\u003ccode\u003ee8b12f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/794\"\u003e#794\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/19570dcae67c84e50cb37ea06db717429fc188e7\"\u003e\u003ccode\u003e19570dc\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/4a7d764a4f490614cf1e597f1101bd7153573141\"\u003e\u003ccode\u003e4a7d764\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9645938138e998190d20bbd6c955eeca6a024d4d\"\u003e\u003ccode\u003e9645938\u003c/code\u003e\u003c/a\u003e Fix AttributeError with Sequence defaults in instant_defaults_listener\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e4b9f72230fde81e00ee4f9e34839f6d635fd2f3\"\u003e\u003ccode\u003ee4b9f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/792\"\u003e#792\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/755064d8add7496fb5002c0eaa309542fab7a301\"\u003e\u003ccode\u003e755064d\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.42.0...0.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiosqlite` from 0.21.0 to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.1\u003c/h2\u003e\n\u003cp\u003eBug fix release\u003c/p\u003e\n\u003cp\u003eNOTE: Starting with \u003ccode\u003ev0.22.0\u003c/code\u003e, the \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e object no longer\ninherits from \u003ccode\u003ethreading.Thread\u003c/code\u003e. If not using aiosqlite as a context manager,\nclients must \u003ccode\u003eawait connection.close()\u003c/code\u003e or call \u003ccode\u003econnection.stop()\u003c/code\u003e to ensure\nthe helper thread is completed and terminated correctly. A \u003ccode\u003eResourceWarning\u003c/code\u003e\nwill be emitted for any connection that is garbage collected without being\nclosed or stopped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded synchronous \u003ccode\u003estop()\u003c/code\u003e method to \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e to enable safe\ncleanup and termination of the background thread without dependence\non having an active event loop (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.22.0...v0.22.1\n     2\tAmethyst Reese\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cp\u003eFeature release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eset_authorizer\u003c/code\u003e query access controls (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWait for transaction queue to complete when closing connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit warning when connection goes out of scope without being closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on \u003ccode\u003etyping_extensions\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.21.0...v0.22.0\n     1\tAlec Berryman\n     1\tAmethyst Reese\n     1\tDavid Andreoletti\n     1\tMarkus Heidelberg\n     1\tbeerpsi\n    19\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/9b127cecc7de843bf4f343b6da63b641866533fb\"\u003e\u003ccode\u003e9b127ce\u003c/code\u003e\u003c/a\u003e Version bump v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/5c3f61c1ea49401f2716d8f58d494e76ca766921\"\u003e\u003ccode\u003e5c3f61c\u003c/code\u003e\u003c/a\u003e Improve stop semantics for connections (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/a869d73678adbc14472e4ac2c31f4e706efe8ef3\"\u003e\u003ccode\u003ea869d73\u003c/code\u003e\u003c/a\u003e Version bump v0.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/1cd60adcab12347577150a6fa6c7d92b7b86d989\"\u003e\u003ccode\u003e1cd60ad\u003c/code\u003e\u003c/a\u003e Emit warning if connection is deleted before it is closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/611d7b4f29fc3d7df6c173b2e79b0892e9d249aa\"\u003e\u003ccode\u003e611d7b4\u003c/code\u003e\u003c/a\u003e Add set_authorizer support for fine-grained access control (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/81d00c8f1676851c8634ca98f99e0973083ea75f\"\u003e\u003ccode\u003e81d00c8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/7a26722f7e6da6a1ae0febf515b4624794173fcc\"\u003e\u003ccode\u003e7a26722\u003c/code\u003e\u003c/a\u003e Bump coverage[toml] from 7.8.0 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/445754087ec452f888cc152debf79590d8a25d86\"\u003e\u003ccode\u003e4457540\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.2.0 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/b650dad318ad72e582b7ba1143cc05f270f8ab6b\"\u003e\u003ccode\u003eb650dad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/065ffdd1291693c5e69d2f3efff17e351d9a0163\"\u003e\u003ccode\u003e065ffdd\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.15.0 to 1.19.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.21.0...v0.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.20 to 0.0.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003eKludex/python-multipart#216\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/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/203\"\u003eKludex/python-multipart#203\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/python-multipart/compare/0.0.20...0.0.21\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21\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/Kludex/python-multipart/blob/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.21 (2025-12-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003e#216\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/Kludex/python-multipart/commit/1f72955602445706b5517a6f58a720796ad3d96a\"\u003e\u003ccode\u003e1f72955\u003c/code\u003e\u003c/a\u003e Version 0.0.21 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/47ecfed3533ed8dcafd800508dbf594438fd0949\"\u003e\u003ccode\u003e47ecfed\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop EOL 3.8 and 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/216\"\u003e#216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/f18b70941b727c947f7e6b17e1c3321f5ad3afb6\"\u003e\u003ccode\u003ef18b709\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 4 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/214\"\u003e#214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b388e9a7a82605cc8613798926afe8f6074cb372\"\u003e\u003ccode\u003eb388e9a\u003c/code\u003e\u003c/a\u003e chore: use depedency-groups in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6113e750971918a51f79c3bb2585e95ed1c53245\"\u003e\u003ccode\u003e6113e75\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/7aa8d9932b6b20c0a1969e672433044e27a3fbc1\"\u003e\u003ccode\u003e7aa8d99\u003c/code\u003e\u003c/a\u003e Bump ruff from 0.8.0 to 0.11.7 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/203\"\u003e#203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3e909f52a774365b8817a52d4312db4ba8061d07\"\u003e\u003ccode\u003e3e909f5\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/198\"\u003e#198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `vcrpy` from 8.1.0 to 8.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kevin1024/vcrpy/releases\"\u003evcrpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix sync requests in async contexts for HTTPX (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/965\"\u003e#965\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/seowalex\"\u003e\u003ccode\u003e@​seowalex\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: bump peter-evans/create-pull-request from 7 to 8 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/969\"\u003e#969\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/kevin1024/vcrpy/blob/master/docs/changelog.rst\"\u003evcrpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cp\u003eFor a full list of triaged issues, bugs and PRs and what release they are targeted for please see the following link.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eROADMAP MILESTONES \u0026lt;https://github.com/kevin1024/vcrpy/milestones\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cp\u003eAll help in providing PRs to close out bug issues is appreciated. Even if that is providing a repo that fully replicates issues. We have very generous contributors that have added these to bug issues which meant another contributor picked up the bug and closed it out.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e8.1.1\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix sync requests in async contexts for HTTPX (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/965\"\u003e#965\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/seowalex\"\u003e\u003ccode\u003e@​seowalex\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: bump peter-evans/create-pull-request from 7 to 8 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e8.1.0\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable brotli decompression if available (via \u003ccode\u003ebrotli\u003c/code\u003e, \u003ccode\u003ebrotlipy\u003c/code\u003e or \u003ccode\u003ebrotlicffi\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/620\"\u003e#620\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/immerrr\"\u003e\u003ccode\u003e@​immerrr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aiohttp allowing both \u003ccode\u003edata\u003c/code\u003e and \u003ccode\u003ejson\u003c/code\u003e arguments when one is None (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/624\"\u003e#624\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/leorochael\"\u003e\u003ccode\u003e@​leorochael\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix usage of io-like interface with VCR.py (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/906\"\u003e#906\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/tito\"\u003e\u003ccode\u003e@​tito\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/kevdevg\"\u003e\u003ccode\u003e@​kevdevg\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate to declarative Python package config (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/767\"\u003e#767\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/deronnax\"\u003e\u003ccode\u003e@​deronnax\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious linting fixes - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/955\"\u003e#955\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e8.0.0\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBREAKING: Drop support for Python 3.9 (major version bump) - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBREAKING: Drop support for urllib3 \u0026lt; 2 - fixes CVE warnings from urllib3 1.x (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/926\"\u003e#926\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/880\"\u003e#880\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNew feature: \u003ccode\u003edrop_unused_requests\u003c/code\u003e option to remove unused interactions from cassettes (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/763\"\u003e#763\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/danielnsilva\"\u003e\u003ccode\u003e@​danielnsilva\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRewrite httpx support to patch httpcore instead of httpx (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/943\"\u003e#943\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/seowalex\"\u003e\u003ccode\u003e@​seowalex\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eFixes \u003ccode\u003ehttpx.ResponseNotRead\u003c/code\u003e exceptions (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/832\"\u003e#832\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/834\"\u003e#834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixes \u003ccode\u003eKeyError: 'follow_redirects'\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdds support for custom httpx transports\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix HTTPS proxy handling - proxy address no longer ends up in cassette URIs (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/809\"\u003e#809\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/914\"\u003e#914\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/alga\"\u003e\u003ccode\u003e@​alga\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eiscoroutinefunction\u003c/code\u003e deprecation warning on Python 3.14 - thanks \u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly log message if response is appended - thanks \u003ca href=\"https://github.com/talfus-laddus\"\u003e\u003ccode\u003e@​talfus-laddus\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize urllib.parse calls - thanks \u003ca href=\"https://github.com/Martin-Brunthaler\"\u003e\u003ccode\u003e@​Martin-Brunthaler\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI for Ubuntu 24.04 - thanks \u003ca href=\"https://github.com/hartwork\"\u003e\u003ccode\u003e@​hartwork\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious CI improvements: migrate to uv, update GitHub Actions - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious linting and test improvements - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/hartwork\"\u003e\u003ccode\u003e@​hartwork\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e7.0.0\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for python 3.8 (major version bump) - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious linting and test fixes - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix for urllib2\u0026gt;=2.3.0 - missing version_string (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/888\"\u003e#888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix for asyncio.run - thanks \u003ca href=\"https://github.com/alekeik1\"\u003e\u003ccode\u003e@​alekeik1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e6.0.2\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure body is consumed only once (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/846\"\u003e#846\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/sathieu\"\u003e\u003ccode\u003e@​sathieu\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePermit urllib3 2.x for non-PyPy Python \u0026gt;=3.10\u003c/li\u003e\n\u003cli\u003eFix typos in test commands - thanks \u003ca href=\"https://github.com/chuckwondo\"\u003e\u003ccode\u003e@​chuckwondo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral test and workflow improvements - thanks \u003ca href=\"https://github.com/hartwork\"\u003e\u003ccode\u003e@​hartwork\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e6.0.1\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix with to Tornado cassette generator (thanks \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e6.0.0\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/kevin1024/vcrpy/commit/9b586631e4131fce906207c40eeb71e41df6c23a\"\u003e\u003ccode\u003e9b58663\u003c/code\u003e\u003c/a\u003e Release v8.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/3780f580409a437d98a257a0455d4a01b2664dce\"\u003e\u003ccode\u003e3780f58\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/create-pull-request from 7 to 8 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/1b70394f3592d51f6ac88c86ee05e5915064c9ea\"\u003e\u003ccode\u003e1b70394\u003c/code\u003e\u003c/a\u003e Split sync and async HTTPX handlers (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/ca4b1e19c2e9259690987e18587f70362fe98858\"\u003e\u003ccode\u003eca4b1e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/960\"\u003e#960\u003c/a\u003e from kevin1024/precommit-autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/8d47ca10d086c88fb755560d1dca3b2132cf20d7\"\u003e\u003ccode\u003e8d47ca1\u003c/code\u003e\u003c/a\u003e pre-commit: Autoupdate\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kevin1024/vcrpy/compare/v8.1.0...v8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.0 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.0...7.13.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.14.8 to 0.14.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.14.11\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-08.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsolidate diagnostics for matched disable/enable suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22099\"\u003e#22099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReport diagnostics for invalid/unmatched range suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21908\"\u003e#21908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Passing positional argument into \u003ccode\u003eairflow.lineage.hook.HookLineageCollector.create_asset\u003c/code\u003e is not allowed (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22046\"\u003e#22046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003eFURB192\u003c/code\u003e fix as always unsafe (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22210\"\u003e#22210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003enon-empty-init-module\u003c/code\u003e (\u003ccode\u003eRUF067\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22143\"\u003e#22143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix GitHub format for multi-line diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22108\"\u003e#22108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-unused-arguments\u003c/code\u003e] Mark \u003ccode\u003e**kwargs\u003c/code\u003e in \u003ccode\u003eTypeVar\u003c/code\u003e as used (\u003ccode\u003eARG001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22214\"\u003e#22214\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehelp:\u003c/code\u003e subdiagnostics for several Ruff rules that can sometimes appear to disagree with \u003ccode\u003ety\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22331\"\u003e#22331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Demote \u003ccode\u003ePLW1510\u003c/code\u003e fix to display-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22318\"\u003e#22318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Ignore identical members (\u003ccode\u003ePLR1714\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22220\"\u003e#22220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve diagnostic range for \u003ccode\u003ePLC0206\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22312\"\u003e#22312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Improve fix title for \u003ccode\u003eRUF102\u003c/code\u003e invalid rule code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22100\"\u003e#22100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e]: Avoid unnecessary builtins import for \u003ccode\u003eSIM105\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22358\"\u003e#22358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Python 3.15 as valid \u003ccode\u003etarget-version\u003c/code\u003e value in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22419\"\u003e#22419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCheck \u003ccode\u003erequired-version\u003c/code\u003e before parsing rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22410\"\u003e#22410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude configured \u003ccode\u003esrc\u003c/code\u003e directories when resolving graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22451\"\u003e#22451\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003eT201\u003c/code\u003e suggestion to not use root logger to satisfy \u003ccode\u003eLOG015\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22059\"\u003e#22059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eiter\u003c/code\u003e example in unsafe fixes doc (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22118\"\u003e#22118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8_print\u003c/code\u003e] better suggestion for \u003ccode\u003ebasicConfig\u003c/code\u003e in \u003ccode\u003eT201\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22101\"\u003e#22101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Restore the fix safety docs for \u003ccode\u003ePLW0133\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22211\"\u003e#22211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Jupyter notebook discovery info for editors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22447\"\u003e#22447\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/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\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/cenviity\"\u003e\u003ccode\u003e@​cenviity\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/njhearp\"\u003e\u003ccode\u003e@​njhearp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cbachhuber\"\u003e\u003ccode\u003e@​cbachhuber\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelle-openai\"\u003e\u003ccode\u003e@​jelle-openai\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\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.14.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-08.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsolidate diagnostics for matched disable/enable suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22099\"\u003e#22099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReport diagnostics for invalid/unmatched range suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21908\"\u003e#21908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Passing positional argument into \u003ccode\u003eairflow.lineage.hook.HookLineageCollector.create_asset\u003c/code\u003e is not allowed (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22046\"\u003e#22046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003eFURB192\u003c/code\u003e fix as always unsafe (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22210\"\u003e#22210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003enon-empty-init-module\u003c/code\u003e (\u003ccode\u003eRUF067\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22143\"\u003e#22143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix GitHub format for multi-line diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22108\"\u003e#22108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-unused-arguments\u003c/code\u003e] Mark \u003ccode\u003e**kwargs\u003c/code\u003e in \u003ccode\u003eTypeVar\u003c/code\u003e as used (\u003ccode\u003eARG001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22214\"\u003e#22214\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehelp:\u003c/code\u003e subdiagnostics for several Ruff rules that can sometimes appear to disagree with \u003ccode\u003ety\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22331\"\u003e#22331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Demote \u003ccode\u003ePLW1510\u003c/code\u003e fix to display-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22318\"\u003e#22318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Ignore identical members (\u003ccode\u003ePLR1714\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22220\"\u003e#22220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve diagnostic range for \u003ccode\u003ePLC0206\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22312\"\u003e#22312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Improve fix title for \u003ccode\u003eRUF102\u003c/code\u003e invalid rule code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22100\"\u003e#22100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e]: Avoid unnecessary builtins import for \u003ccode\u003eSIM105\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22358\"\u003e#22358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Python 3.15 as valid \u003ccode\u003etarget-version\u003c/code\u003e value in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22419\"\u003e#22419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCheck \u003ccode\u003erequired-version\u003c/code\u003e before parsing rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22410\"\u003e#22410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude configured \u003ccode\u003esrc\u003c/code\u003e directories when resolving graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22451\"\u003e#22451\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003eT201\u003c/code\u003e suggestion to not use root logger to satisfy \u003ccode\u003eLOG015\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22059\"\u003e#22059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eiter\u003c/code\u003e example in unsafe fixes doc (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22118\"\u003e#22118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8_print\u003c/code\u003e] better suggestion for \u003ccode\u003ebasicConfig\u003c/code\u003e in \u003ccode\u003eT201\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22101\"\u003e#22101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Restore the fix safety docs for \u003ccode\u003ePLW0133\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22211\"\u003e#22211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Jupyter notebook discovery info for editors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22447\"\u003e#22447\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/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\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/cenviity\"\u003e\u003ccode\u003e@​cenviity\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/njhearp\"\u003e\u003ccode\u003e@​njhearp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cbachhuber\"\u003e\u003ccode\u003e@​cbachhuber\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelle-openai\"\u003e\u003ccode\u003e@​jelle-openai\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/ValdonVitija\"\u003e\u003ccode\u003e@​ValdonVitija\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/astral-sh/ruff/commit/c920cf8cdb247a9fd8e15a4c9d2efa838f7a78a3\"\u003e\u003ccode\u003ec920cf8\u003c/code\u003e\u003c/a\u003e Bump 0.14.11 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22462\"\u003e#22462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb757b5a79888f28264f629b5667a0514071f7d6\"\u003e\u003ccode\u003ebb757b5\u003c/code\u003e\u003c/a\u003e [ty] Don't show diagnostics for excluded files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22455\"\u003e#22455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1f49e8ef518b75207e155595aba57acd48205078\"\u003e\u003ccode\u003e1f49e8e\u003c/code\u003e\u003c/a\u003e Include configured \u003ccode\u003esrc\u003c/code\u003e directories when resolving graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22451\"\u003e#22451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/701f5134ab7c1a860145dccc8abb3716a3f89fe7\"\u003e\u003ccode\u003e701f513\u003c/code\u003e\u003c/a\u003e [ty] Only consider fully static pivots when deriving transitive constraints (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eea9ad83528a7f492662f6427cdbb6fc2f655bb5\"\u003e\u003ccode\u003eeea9ad8\u003c/code\u003e\u003c/a\u003e Pin maturin version (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22454\"\u003e#22454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eeac2bd3eed2f4b8f4a71e0c945721481b25efc0\"\u003e\u003ccode\u003eeeac2bd\u003c/code\u003e\u003c/a\u003e [ty] Optimize union building for unions with many enum-literal members (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22363\"\u003e#22363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7319c37f4eb063e9590e1f09c8e92d7dabc63403\"\u003e\u003ccode\u003e7319c37\u003c/code\u003e\u003c/a\u003e docs: fix jupyter notebook discovery info for editors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22447\"\u003e#22447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/805503c19a6b74c5803e10123077997e29a0da37\"\u003e\u003ccode\u003e805503c\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eruff\u003c/code\u003e] Improve fix title for \u003ccode\u003eRUF102\u003c/code\u003e invalid rule code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22100\"\u003e#22100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/68a2f6c57d70052d0805b46b0e3a2538598b856f\"\u003e\u003ccode\u003e68a2f6c\u003c/code\u003e\u003c/a\u003e [ty] Fix \u003ccode\u003esuper()\u003c/code\u003e with TypeVar-annotated \u003ccode\u003eself\u003c/code\u003e and \u003ccode\u003ecls\u003c/code\u003e parameter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22208\"\u003e#22208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/abaa735e1d027cf458a2ab83d8a422d74111580c\"\u003e\u003ccode\u003eabaa735\u003c/code\u003e\u003c/a\u003e [ty] Improve \u003ccode\u003eUnionBuilder\u003c/code\u003e performance by changing \u003ccode\u003eType::is_subtype_of\u003c/code\u003e cal...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.8...0.14.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\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/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\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/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` from 1.1.407 to 1.1.408\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/81b795a41ddcc3c77218d8c8e406983e39852285\"\u003e\u003ccode\u003e81b795a\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.408 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.407...v1.1.408\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.12.0 to 4.12.1\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.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\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/a0dccbd78d75886247ae7846b460fd390cc94fbd\"\u003e\u003ccode\u003ea0dccbd\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e1121a735c977c00c18b3a581d28daf83a279833\"\u003e\u003ccode\u003ee1121a7\u003c/code\u003e\u003c/a\u003e Enabled tests for the 4.12.x branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/69ab43e549517ce554f84365fed9da90e806c303\"\u003e\u003ccode\u003e69ab43e\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4f4b33ed56edd1bc4785a368a103ad8138730d91\"\u003e\u003ccode\u003e4f4b33e\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eBlockingPortal.__new__\u003c/code\u003e hack (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/af17d89b80ebbd526215e2dbd025b284730aaa3f\"\u003e\u003ccode\u003eaf17d89\u003c/code\u003e\u003c/a\u003e Replaced the NoCurrentAsyncBackend exception with NoEventLoopError (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1049\"\u003e#1049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4310264312a2e86e792481bdb05bdb381678a6b5\"\u003e\u003ccode\u003e4310264\u003c/code\u003e\u003c/a\u003e Updated pre-commit modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0cc6723ba5a2fdaa98a24852d3681c4ed99b8863\"\u003e\u003ccode\u003e0cc6723\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1051\"\u003e#1051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.12.0...4.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `build` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/releases\"\u003ebuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--quiet\u003c/code\u003e flag (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to dump PEP 517 metadata with \u003ccode\u003e--metadata\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/940\"\u003e#940\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/943\"\u003e#943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eUV\u003c/code\u003e environment variable (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove a workaround for 3.14b1 (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/960\"\u003e#960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn 3.14 final release, \u003ccode\u003ecolor\u003c/code\u003e defaults to \u003ccode\u003eTrue\u003c/code\u003e already (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/962\"\u003e#962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass sp-repo-review (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn pytest configuration, \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/950\"\u003e#950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSplit up typing and mypy (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/944\"\u003e#944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etypes-colorama\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn docs, first argument for \u003ccode\u003e_has_dependency\u003c/code\u003e is a name (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/970\"\u003e#970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix test failure when \u003ccode\u003eflit-core\u003c/code\u003e is installed (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/921\"\u003e#921\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/pypa/build/blob/main/CHANGELOG.rst\"\u003ebuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2026-01-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--quiet\u003c/code\u003e flag\n(:pr:\u003ccode\u003e947\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to dump PEP 517 metadata with \u003ccode\u003e--metadata\u003c/code\u003e\n(:pr:\u003ccode\u003e940\u003c/code\u003e, :pr:\u003ccode\u003e943\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eUV\u003c/code\u003e environment variable\n(:pr:\u003ccode\u003e971\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRemove a workaround for 3.14b1\n(:pr:\u003ccode\u003e960\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn 3.14 final release, \u003ccode\u003ecolor\u003c/code\u003e defaults to \u003ccode\u003eTrue\u003c/code\u003e already\n(:pr:\u003ccode\u003e962\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePass sp-repo-review\n(:pr:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn pytest configuration, \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e\n(:pr:\u003ccode\u003e950\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSplit up typing and mypy\n(:pr:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etypes-colorama\u003c/code\u003e\n(:pr:\u003ccode\u003e945\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn docs, first argument for \u003ccode\u003e_has_dependency\u003c/code\u003e is a name\n(PR :pr:\u003ccode\u003e970\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix test failure when \u003ccode\u003eflit-core\u003c/code\u003e is installed\n(PR :pr:\u003ccode\u003e921\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/pypa/build/commit/54f238d1664124e06a68c6c22fd5b1418fa5feb2\"\u003e\u003ccode\u003e54f238d\u003c/code\u003e\u003c/a\u003e chore: prepare for 1.4.0 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/972\"\u003e#972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/f219276a6e2c6c8222780ba518ce52444a91deaa\"\u003e\u003ccode\u003ef219276\u003c/code\u003e\u003c/a\u003e docs: first argument for _has_dependency is a name (\u003ca href=\"https://redirect.github.com/pypa/build/issues/970\"\u003e#970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http...\n\n_Description has been truncated_","html_url":"https://github.com/MinBZK/amt/pull/650","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinBZK%2Famt/issues/650","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/650/packages"}},{"old_version":"0.42.0","new_version":"0.42.1","update_type":"patch","path":null,"pr_created_at":"2026-01-08T07:06:32.000Z","version_change":"0.42.0 → 0.42.1","issue":{"uuid":"3791650391","node_id":"PR_kwDOLzgXB868DtZr","number":642,"state":"closed","title":"Bump the allpip group across 1 directory with 21 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-08T23:43:13.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-08T07:06:32.000Z","updated_at":"2026-01-08T23:43:14.000Z","time_to_close":59801,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"allpip","update_count":21,"packages":[{"name":"fastapi","old_version":"0.124.0","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sqlalchemy","old_version":"2.0.44","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"sqlalchemy-utils","old_version":"0.42.0","new_version":"0.42.1","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"},{"name":"authlib","old_version":"1.6.5","new_version":"1.6.6","repository_url":"https://github.com/authlib/authlib"},{"name":"aiosqlite","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"python-multipart","old_version":"0.0.20","new_version":"0.0.21","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"vcrpy","old_version":"8.1.0","new_version":"8.1.1","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"coverage","old_version":"7.13.0","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"ruff","old_version":"0.14.8","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pre-commit","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"anyio","old_version":"4.12.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2025.11.12","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"filelock","old_version":"3.20.1","new_version":"3.20.2","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jaraco-context","old_version":"6.0.1","new_version":"6.0.2","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"jaraco-functools","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/jaraco/jaraco.functools"},{"name":"json5","old_version":"0.12.1","new_version":"0.13.0","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"pathspec","old_version":"0.12.1","new_version":"1.0.2","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"pbs-installer","old_version":"2025.12.5","new_version":"2025.12.17","repository_url":"https://github.com/frostming/pbs-installer"},{"name":"virtualenv","old_version":"20.35.4","new_version":"20.36.0","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the allpip group with 21 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.124.0` | `0.128.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.38.0` | `0.40.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.44` | `2.0.45` |\n| [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) | `0.42.0` | `0.42.1` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.5` | `1.6.6` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.21.0` | `0.22.1` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.20` | `0.0.21` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `8.1.0` | `8.1.1` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.0` | `7.13.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.14.10` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.0` | `4.5.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.0` | `4.12.1` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.11.12` | `2026.1.4` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.20.1` | `3.20.2` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.0.1` | `6.0.2` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) | `4.3.0` | `4.4.0` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.1` | `0.13.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `0.12.1` | `1.0.2` |\n| [pbs-installer](https://github.com/frostming/pbs-installer) | `2025.12.5` | `2025.12.17` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.35.4` | `20.36.0` |\n\n\nUpdates `fastapi` from 0.124.0 to 0.128.0\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.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\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✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\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\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\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\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\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🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\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 missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\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👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\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👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\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👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\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 scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\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\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\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 LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\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⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\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\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\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\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/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.124.0...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.38.0 to 0.40.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.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 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/2772\"\u003eKludex/uvicorn#2772\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.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return 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/2769\"\u003eKludex/uvicorn#2769\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/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\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.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.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/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.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\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/Kludex/uvicorn/commit/9ff60042a53cd1bbfd5580ab0a91ea2d1d8f2f8c\"\u003e\u003ccode\u003e9ff6004\u003c/code\u003e\u003c/a\u003e Version 0.40.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2773\"\u003e#2773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/19df042c54c1562f058daf021d6f7bd1d5ed621c\"\u003e\u003ccode\u003e19df042\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/865ce7c0b4329a384273a6628eceb8d597989521\"\u003e\u003ccode\u003e865ce7c\u003c/code\u003e\u003c/a\u003e Run strict mypy on test suite (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2771\"\u003e#2771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4f40b8495772eb3a1ab3613ffd7be5156f8e1389\"\u003e\u003ccode\u003e4f40b84\u003c/code\u003e\u003c/a\u003e Version 0.39.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2770\"\u003e#2770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5692dfc416f9e65aee5028e55d119313d8d3ab0f\"\u003e\u003ccode\u003e5692dfc\u003c/code\u003e\u003c/a\u003e fix(websockets): Send close frame on ASGI return (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4194764a26824e5d8ddd1fa673df78dff82966e0\"\u003e\u003ccode\u003e4194764\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2763\"\u003e#2763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d94bf28743de545d2d4b150f022203a5178cb705\"\u003e\u003ccode\u003ed94bf28\u003c/code\u003e\u003c/a\u003e explicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8ae0bcbecb0a655789abf0c2dd4200848fc68a30\"\u003e\u003ccode\u003e8ae0bcb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4744ff9a1a4888c76ea160328cc9dcc2680c2c71\"\u003e\u003ccode\u003e4744ff9\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0391372376c264604a0475b0864bcbf3a8705352\"\u003e\u003ccode\u003e0391372\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.8.0 to 7.1.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2746\"\u003e#2746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.44 to 2.0.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.45\u003c/h1\u003e\n\u003cp\u003eReleased: December 9, 2025\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where calling \u003ccode\u003eMapper.add_property()\u003c/code\u003e within mapper event\nhooks such as \u003ccode\u003eMapperEvents.instrument_class()\u003c/code\u003e,\n\u003ccode\u003eMapperEvents.after_mapper_constructed()\u003c/code\u003e, or\n\u003ccode\u003eMapperEvents.before_mapper_configured()\u003c/code\u003e would raise an\n\u003ccode\u003eAttributeError\u003c/code\u003e because the mapper's internal property collections were\nnot yet initialized. The \u003ccode\u003eMapper.add_property()\u003c/code\u003e method now handles\nearly-stage property additions correctly, allowing properties including\ncolumn properties, deferred columns, and relationships to be added during\nmapper initialization events.  Pull request courtesy G Allajmi.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12858\"\u003e#12858\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue in Python 3.14 where dataclass transformation would fail when\na mapped class using \u003ccode\u003eMappedAsDataclass\u003c/code\u003e included a\n\u003ccode\u003erelationship()\u003c/code\u003e referencing a class that was not available at\nruntime (e.g., within a \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e block). This occurred when using\nPython 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e deferred annotations feature, which is the\ndefault behavior without a \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e\ndirective.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12952\"\u003e#12952\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eexamples\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[examples] [bug]\u003c/strong\u003e Fixed the \u0026quot;short_selects\u0026quot; performance example where the cache was being\nused in all the examples, making it impossible to compare performance with\nand without the cache.   Less important comparisons like \u0026quot;lambdas\u0026quot; and\n\u0026quot;baked queries\u0026quot; have been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Some improvements to the \u003ccode\u003e_sql.ClauseElement.params()\u003c/code\u003e method to\nreplace bound parameters in a query were made, however the ultimate issue\nin \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e involving ORM \u003ccode\u003e_orm.aliased()\u003c/code\u003e cannot be fixed fully\nuntil 2.1, where the method is being rewritten to work without relying on\nCore cloned traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003eColumnOperators.in_()\u003c/code\u003e operator with a\nnested \u003ccode\u003eCompoundSelect\u003c/code\u003e statement (e.g. an \u003ccode\u003eINTERSECT\u003c/code\u003e of\n\u003ccode\u003eUNION\u003c/code\u003e queries) would raise a \u003ccode\u003eNotImplementedError\u003c/code\u003e when the\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy-utils` from 0.42.0 to 0.42.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError with Sequence defaults in instant_defaults_listener by \u003ca href=\"https://github.com/wadinj\"\u003e\u003ccode\u003e@​wadinj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/pull/793\"\u003ekvesteri/sqlalchemy-utils#793\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.1 (2025-12-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/793\"\u003e#793\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/kvesteri/sqlalchemy-utils/commit/ed0cc46f96d3065331ff34c0713da23ee90920a0\"\u003e\u003ccode\u003eed0cc46\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/11cf519375af877839d025c2d4ce402db035b81f\"\u003e\u003ccode\u003e11cf519\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.5.0 to 2.6.0 in /requirements/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/881fed424d9e2b360c82e4318a4842a85514981b\"\u003e\u003ccode\u003e881fed4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/797\"\u003e#797\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/81a5f82b2d1b104a9a377103262d3c0b64ad60d6\"\u003e\u003ccode\u003e81a5f82\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e8b12f849325fd910c89e14017a572b1bd4066a4\"\u003e\u003ccode\u003ee8b12f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/794\"\u003e#794\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/19570dcae67c84e50cb37ea06db717429fc188e7\"\u003e\u003ccode\u003e19570dc\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/4a7d764a4f490614cf1e597f1101bd7153573141\"\u003e\u003ccode\u003e4a7d764\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9645938138e998190d20bbd6c955eeca6a024d4d\"\u003e\u003ccode\u003e9645938\u003c/code\u003e\u003c/a\u003e Fix AttributeError with Sequence defaults in instant_defaults_listener\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e4b9f72230fde81e00ee4f9e34839f6d635fd2f3\"\u003e\u003ccode\u003ee4b9f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/792\"\u003e#792\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/755064d8add7496fb5002c0eaa309542fab7a301\"\u003e\u003ccode\u003e755064d\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.42.0...0.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `authlib` from 1.6.5 to 1.6.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/authlib/blob/main/docs/changelog.rst\"\u003eauthlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.6\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on Dec 12, 2025\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_jwt_config\u003c/code\u003e takes a \u003ccode\u003eclient\u003c/code\u003e parameter, :pr:\u003ccode\u003e844\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix incorrect signature when \u003ccode\u003eContent-Type\u003c/code\u003e is x-www-form-urlencoded for OAuth 1.0 Client, :pr:\u003ccode\u003e778\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eexpires_in\u003c/code\u003e in \u003ccode\u003eOAuth2Token\u003c/code\u003e when \u003ccode\u003eexpires_at\u003c/code\u003e is unparsable, :pr:\u003ccode\u003e842\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAlways track \u003ccode\u003estate\u003c/code\u003e in session for OAuth client integrations.\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/authlib/authlib/commit/bb7a315befbad333faf9a23ef574d6e3134a6774\"\u003e\u003ccode\u003ebb7a315\u003c/code\u003e\u003c/a\u003e chore: release 1.6.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/0a423d4638bed1c0fe4597b2296a85c5bb59fba2\"\u003e\u003ccode\u003e0a423d4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/844\"\u003e#844\u003c/a\u003e from azmeuk/806-get-jwt-config-client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/2808378611dd6fb2532b189a9087877d8f0c0489\"\u003e\u003ccode\u003e2808378\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/714502a4738bc29f26eb245b0c66718d8536cdda\"\u003e\u003ccode\u003e714502a\u003c/code\u003e\u003c/a\u003e feat: get_jwt_config takes a client parameter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/260d04edee23d8470057ea659c16fb8a2c7b0dc2\"\u003e\u003ccode\u003e260d04e\u003c/code\u003e\u003c/a\u003e Fix: Use \u003ccode\u003eexpires_in\u003c/code\u003e when \u003ccode\u003eexpires_at\u003c/code\u003e is unparsable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/eb37124bbbec6ccbfba3699d8960f9710d330ad8\"\u003e\u003ccode\u003eeb37124\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/778\"\u003e#778\u003c/a\u003e from shc261392/fix-httpx-oauth1-form-data-incorrect-s...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/0ba9ec4feeb8e19f572c454e2d1dbbdc1d30ae62\"\u003e\u003ccode\u003e0ba9ec4\u003c/code\u003e\u003c/a\u003e docs: fix guide on requests self signed certificate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/a2e9943815bb5161863b1fa144ac0aaa50d97e91\"\u003e\u003ccode\u003ea2e9943\u003c/code\u003e\u003c/a\u003e docs: indicate that \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/743\"\u003e#743\u003c/a\u003e needs a migration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/06015d20652a23eff8350b6ad71b32fe41dae4ba\"\u003e\u003ccode\u003e06015d2\u003c/code\u003e\u003c/a\u003e test: factorize the token fixture\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.5...v1.6.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiosqlite` from 0.21.0 to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.1\u003c/h2\u003e\n\u003cp\u003eBug fix release\u003c/p\u003e\n\u003cp\u003eNOTE: Starting with \u003ccode\u003ev0.22.0\u003c/code\u003e, the \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e object no longer\ninherits from \u003ccode\u003ethreading.Thread\u003c/code\u003e. If not using aiosqlite as a context manager,\nclients must \u003ccode\u003eawait connection.close()\u003c/code\u003e or call \u003ccode\u003econnection.stop()\u003c/code\u003e to ensure\nthe helper thread is completed and terminated correctly. A \u003ccode\u003eResourceWarning\u003c/code\u003e\nwill be emitted for any connection that is garbage collected without being\nclosed or stopped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded synchronous \u003ccode\u003estop()\u003c/code\u003e method to \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e to enable safe\ncleanup and termination of the background thread without dependence\non having an active event loop (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.22.0...v0.22.1\n     2\tAmethyst Reese\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cp\u003eFeature release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eset_authorizer\u003c/code\u003e query access controls (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWait for transaction queue to complete when closing connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit warning when connection goes out of scope without being closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on \u003ccode\u003etyping_extensions\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.21.0...v0.22.0\n     1\tAlec Berryman\n     1\tAmethyst Reese\n     1\tDavid Andreoletti\n     1\tMarkus Heidelberg\n     1\tbeerpsi\n    19\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/9b127cecc7de843bf4f343b6da63b641866533fb\"\u003e\u003ccode\u003e9b127ce\u003c/code\u003e\u003c/a\u003e Version bump v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/5c3f61c1ea49401f2716d8f58d494e76ca766921\"\u003e\u003ccode\u003e5c3f61c\u003c/code\u003e\u003c/a\u003e Improve stop semantics for connections (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/a869d73678adbc14472e4ac2c31f4e706efe8ef3\"\u003e\u003ccode\u003ea869d73\u003c/code\u003e\u003c/a\u003e Version bump v0.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/1cd60adcab12347577150a6fa6c7d92b7b86d989\"\u003e\u003ccode\u003e1cd60ad\u003c/code\u003e\u003c/a\u003e Emit warning if connection is deleted before it is closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/611d7b4f29fc3d7df6c173b2e79b0892e9d249aa\"\u003e\u003ccode\u003e611d7b4\u003c/code\u003e\u003c/a\u003e Add set_authorizer support for fine-grained access control (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/81d00c8f1676851c8634ca98f99e0973083ea75f\"\u003e\u003ccode\u003e81d00c8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/7a26722f7e6da6a1ae0febf515b4624794173fcc\"\u003e\u003ccode\u003e7a26722\u003c/code\u003e\u003c/a\u003e Bump coverage[toml] from 7.8.0 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/445754087ec452f888cc152debf79590d8a25d86\"\u003e\u003ccode\u003e4457540\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.2.0 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/b650dad318ad72e582b7ba1143cc05f270f8ab6b\"\u003e\u003ccode\u003eb650dad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/065ffdd1291693c5e69d2f3efff17e351d9a0163\"\u003e\u003ccode\u003e065ffdd\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.15.0 to 1.19.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.21.0...v0.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.20 to 0.0.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003eKludex/python-multipart#216\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/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/203\"\u003eKludex/python-multipart#203\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/python-multipart/compare/0.0.20...0.0.21\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21\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/Kludex/python-multipart/blob/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.21 (2025-12-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003e#216\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/Kludex/python-multipart/commit/1f72955602445706b5517a6f58a720796ad3d96a\"\u003e\u003ccode\u003e1f72955\u003c/code\u003e\u003c/a\u003e Version 0.0.21 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/47ecfed3533ed8dcafd800508dbf594438fd0949\"\u003e\u003ccode\u003e47ecfed\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop EOL 3.8 and 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/216\"\u003e#216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/f18b70941b727c947f7e6b17e1c3321f5ad3afb6\"\u003e\u003ccode\u003ef18b709\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 4 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/214\"\u003e#214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b388e9a7a82605cc8613798926afe8f6074cb372\"\u003e\u003ccode\u003eb388e9a\u003c/code\u003e\u003c/a\u003e chore: use depedency-groups in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6113e750971918a51f79c3bb2585e95ed1c53245\"\u003e\u003ccode\u003e6113e75\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/7aa8d9932b6b20c0a1969e672433044e27a3fbc1\"\u003e\u003ccode\u003e7aa8d99\u003c/code\u003e\u003c/a\u003e Bump ruff from 0.8.0 to 0.11.7 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/203\"\u003e#203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3e909f52a774365b8817a52d4312db4ba8061d07\"\u003e\u003ccode\u003e3e909f5\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/198\"\u003e#198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `vcrpy` from 8.1.0 to 8.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kevin1024/vcrpy/releases\"\u003evcrpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix sync requests in async contexts for HTTPX (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/965\"\u003e#965\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/seowalex\"\u003e\u003ccode\u003e@​seowalex\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: bump peter-evans/create-pull-request from 7 to 8 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/969\"\u003e#969\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/kevin1024/vcrpy/blob/master/docs/changelog.rst\"\u003evcrpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cp\u003eFor a full list of triaged issues, bugs and PRs and what release they are targeted for please see the following link.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eROADMAP MILESTONES \u0026lt;https://github.com/kevin1024/vcrpy/milestones\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cp\u003eAll help in providing PRs to close out bug issues is appreciated. Even if that is providing a repo that fully replicates issues. We have very generous contributors that have added these to bug issues which meant another contributor picked up the bug and closed it out.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e8.1.1\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix sync requests in async contexts for HTTPX (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/965\"\u003e#965\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/seowalex\"\u003e\u003ccode\u003e@​seowalex\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: bump peter-evans/create-pull-request from 7 to 8 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e8.1.0\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable brotli decompression if available (via \u003ccode\u003ebrotli\u003c/code\u003e, \u003ccode\u003ebrotlipy\u003c/code\u003e or \u003ccode\u003ebrotlicffi\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/620\"\u003e#620\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/immerrr\"\u003e\u003ccode\u003e@​immerrr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aiohttp allowing both \u003ccode\u003edata\u003c/code\u003e and \u003ccode\u003ejson\u003c/code\u003e arguments when one is None (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/624\"\u003e#624\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/leorochael\"\u003e\u003ccode\u003e@​leorochael\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix usage of io-like interface with VCR.py (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/906\"\u003e#906\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/tito\"\u003e\u003ccode\u003e@​tito\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/kevdevg\"\u003e\u003ccode\u003e@​kevdevg\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate to declarative Python package config (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/767\"\u003e#767\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/deronnax\"\u003e\u003ccode\u003e@​deronnax\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious linting fixes - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/955\"\u003e#955\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e8.0.0\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBREAKING: Drop support for Python 3.9 (major version bump) - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBREAKING: Drop support for urllib3 \u0026lt; 2 - fixes CVE warnings from urllib3 1.x (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/926\"\u003e#926\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/880\"\u003e#880\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNew feature: \u003ccode\u003edrop_unused_requests\u003c/code\u003e option to remove unused interactions from cassettes (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/763\"\u003e#763\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/danielnsilva\"\u003e\u003ccode\u003e@​danielnsilva\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRewrite httpx support to patch httpcore instead of httpx (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/943\"\u003e#943\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/seowalex\"\u003e\u003ccode\u003e@​seowalex\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eFixes \u003ccode\u003ehttpx.ResponseNotRead\u003c/code\u003e exceptions (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/832\"\u003e#832\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/834\"\u003e#834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixes \u003ccode\u003eKeyError: 'follow_redirects'\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdds support for custom httpx transports\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix HTTPS proxy handling - proxy address no longer ends up in cassette URIs (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/809\"\u003e#809\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/914\"\u003e#914\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/alga\"\u003e\u003ccode\u003e@​alga\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eiscoroutinefunction\u003c/code\u003e deprecation warning on Python 3.14 - thanks \u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly log message if response is appended - thanks \u003ca href=\"https://github.com/talfus-laddus\"\u003e\u003ccode\u003e@​talfus-laddus\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize urllib.parse calls - thanks \u003ca href=\"https://github.com/Martin-Brunthaler\"\u003e\u003ccode\u003e@​Martin-Brunthaler\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI for Ubuntu 24.04 - thanks \u003ca href=\"https://github.com/hartwork\"\u003e\u003ccode\u003e@​hartwork\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious CI improvements: migrate to uv, update GitHub Actions - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious linting and test improvements - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/hartwork\"\u003e\u003ccode\u003e@​hartwork\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e7.0.0\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for python 3.8 (major version bump) - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious linting and test fixes - thanks \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix for urllib2\u0026gt;=2.3.0 - missing version_string (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/888\"\u003e#888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix for asyncio.run - thanks \u003ca href=\"https://github.com/alekeik1\"\u003e\u003ccode\u003e@​alekeik1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e6.0.2\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure body is consumed only once (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/846\"\u003e#846\u003c/a\u003e) - thanks \u003ca href=\"https://github.com/sathieu\"\u003e\u003ccode\u003e@​sathieu\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePermit urllib3 2.x for non-PyPy Python \u0026gt;=3.10\u003c/li\u003e\n\u003cli\u003eFix typos in test commands - thanks \u003ca href=\"https://github.com/chuckwondo\"\u003e\u003ccode\u003e@​chuckwondo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral test and workflow improvements - thanks \u003ca href=\"https://github.com/hartwork\"\u003e\u003ccode\u003e@​hartwork\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e6.0.1\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix with to Tornado cassette generator (thanks \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e6.0.0\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/kevin1024/vcrpy/commit/9b586631e4131fce906207c40eeb71e41df6c23a\"\u003e\u003ccode\u003e9b58663\u003c/code\u003e\u003c/a\u003e Release v8.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/3780f580409a437d98a257a0455d4a01b2664dce\"\u003e\u003ccode\u003e3780f58\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/create-pull-request from 7 to 8 (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/1b70394f3592d51f6ac88c86ee05e5915064c9ea\"\u003e\u003ccode\u003e1b70394\u003c/code\u003e\u003c/a\u003e Split sync and async HTTPX handlers (\u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/ca4b1e19c2e9259690987e18587f70362fe98858\"\u003e\u003ccode\u003eca4b1e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kevin1024/vcrpy/issues/960\"\u003e#960\u003c/a\u003e from kevin1024/precommit-autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kevin1024/vcrpy/commit/8d47ca10d086c88fb755560d1dca3b2132cf20d7\"\u003e\u003ccode\u003e8d47ca1\u003c/code\u003e\u003c/a\u003e pre-commit: Autoupdate\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kevin1024/vcrpy/compare/v8.1.0...v8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.0 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.0...7.13.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.14.8 to 0.14.10\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.14.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\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/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\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/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\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/zanieb\"\u003e\u003ccode\u003e@​zanieb\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/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\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/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\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.14.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\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/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\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/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\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/zanieb\"\u003e\u003ccode\u003e@​zanieb\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/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\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/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.9\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/45bbb4cbffe73cf925d4579c2e3eb413e0539390\"\u003e\u003ccode\u003e45bbb4c\u003c/code\u003e\u003c/a\u003e Bump 0.14.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22058\"\u003e#22058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42b972753aa9737140d3c715dc1fa2a4d20eba02\"\u003e\u003ccode\u003e42b9727\u003c/code\u003e\u003c/a\u003e [ty] Use datatest instead of dirtest (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21937\"\u003e#21937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f7ec1784005ba8659203155dc0c195f746f8b45b\"\u003e\u003ccode\u003ef7ec178\u003c/code\u003e\u003c/a\u003e [ty] Gracefully handle client requests that can't be deserialized (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22051\"\u003e#22051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c31516473296a8b745af946b827d3342ef81060f\"\u003e\u003ccode\u003ec315164\u003c/code\u003e\u003c/a\u003e [ty] Don't suggest keyword statements when only expressions are valid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb1955e98c5bd35a322f58fcab5d68aab255a7a4\"\u003e\u003ccode\u003ebb1955e\u003c/code\u003e\u003c/a\u003e [ty] Use cursor context in a few more places...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/070e08a043f47845f60632b528ef27cc37078405\"\u003e\u003ccode\u003e070e08a\u003c/code\u003e\u003c/a\u003e [ty] Move \u003ccode\u003ecompletion\u003c/code\u003e function to the top\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bab3924833c9f432776f93d4ed83b6cfbafc20e3\"\u003e\u003ccode\u003ebab3924\u003c/code\u003e\u003c/a\u003e [ty] Refactor completion generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10748b2fdb021e4d8e548f09e8e182c69d7c1f5a\"\u003e\u003ccode\u003e10748b2\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/56539db5206c519d80446d96155ef832689c5a6e\"\u003e\u003ccode\u003e56539db\u003c/code\u003e\u003c/a\u003e [ty] Fix some configuration panics in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22040\"\u003e#22040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8d32ad1cab7b78675e8fe56740013d61e315142c\"\u003e\u003ccode\u003e8d32ad1\u003c/code\u003e\u003c/a\u003e [ty] Add support for attribute docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22036\"\u003e#22036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.8...0.14.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\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/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\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/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.0...v4.5.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.12.0 to 4.12.1\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.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\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/a0dccbd78d75886247ae7846b460fd390cc94fbd\"\u003e\u003ccode\u003ea0dccbd\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e1121a735c977c00c18b3a581d28daf83a279833\"\u003e\u003ccode\u003ee1121a7\u003c/code\u003e\u003c/a\u003e Enabled tests for the 4.12.x branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/69ab43e549517ce554f84365fed9da90e806c303\"\u003e\u003ccode\u003e69ab43e\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4f4b33ed56edd1bc4785a368a103ad8138730d91\"\u003e\u003ccode\u003e4f4b33e\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eBlockingPortal.__new__\u003c/code\u003e hack (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/af17d89b80ebbd526215e2dbd025b284730aaa3f\"\u003e\u003ccode\u003eaf17d89\u003c/code\u003e\u003c/a\u003e Replaced the NoCurrentAsyncBackend exception with NoEventLoopError (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1049\"\u003e#1049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4310264312a2e86e792481bdb05bdb381678a6b5\"\u003e\u003ccode\u003e4310264\u003c/code\u003e\u003c/a\u003e Updated pre-commit modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0cc6723ba5a2fdaa98a24852d3681c4ed99b8863\"\u003e\u003ccode\u003e0cc6723\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1051\"\u003e#1051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.12.0...4.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.11.12 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.11.12...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.20.1 to 3.20.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.20.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Unix systems without O_NOFOLLOW by \u003ca href=\"https://github.com/mwilliamson\"\u003e\u003ccode\u003e@​mwilliamson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/463\"\u003etox-dev/filelock#463\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/464\"\u003etox-dev/filelock#464\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/mwilliamson\"\u003e\u003ccode\u003e@​mwilliamson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/463\"\u003etox-dev/filelock#463\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/filelock/compare/3.20.1...3.20.2\"\u003ehttps://github.com/tox-dev/filelock/compare/3.20.1...3.20.2\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/filelock/commit/f2e7d4046b6a2b375a573bcfbad21827b99f8939\"\u003e\u003ccode\u003ef2e7d40\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/50888548eb2f008d372e71f2835a47851ab83836\"\u003e\u003ccode\u003e5088854\u003c/code\u003e\u003c/a\u003e Support Unix systems without O_NOFOLLOW (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/463\"\u003e#463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.20.1...3.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jaraco-context` from 6.0.1 to 6.0.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jaraco/jaraco.context/blob/main/NEWS.rst\"\u003ejaraco-context's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.0.2\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\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/jaraco/jaraco.context/commit/1fe5de1e450556cc68d1d33198f8c7b8791af42d\"\u003e\u003ccode\u003e1fe5de1\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/601623562d30a635a553e06766bcdeb4ee967247\"\u003e\u003ccode\u003e6016235\u003c/code\u003e\u003c/a\u003e Add fixtures to skip tests for repo_context.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/2b251ee0a70796ae19a2971fecbd26812055d106\"\u003e\u003ccode\u003e2b251ee\u003c/code\u003e\u003c/a\u003e Merge \u003ca href=\"https://github.com/jaraco/skeleton\"\u003ehttps://github.com/jaraco/skeleton\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/0bc3e96a1859666a135be88ddbcd071e92abea89\"\u003e\u003ccode\u003e0bc3e96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jaraco/jaraco.context/issues/17\"\u003e#17\u003c/a\u003e from Avasam/Re-run-checkers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/8f3d95e7db0114e26e57dd95932b141ead74f7c5\"\u003e\u003ccode\u003e8f3d95e\u003c/code\u003e\u003c/a\u003e Pin mypy on PyPy.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/d47a969ed4567bbdee26034ccaaa8b8169f44fcf\"\u003e\u003ccode\u003ed47a969\u003c/code\u003e\u003c/a\u003e Specify the directory for...\n\n_Description has been truncated_","html_url":"https://github.com/MinBZK/amt/pull/642","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinBZK%2Famt/issues/642","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/642/packages"}},{"old_version":"0.42.0","new_version":"0.42.1","update_type":"patch","path":null,"pr_created_at":"2025-12-15T14:32:19.000Z","version_change":"0.42.0 → 0.42.1","issue":{"uuid":"3730721751","node_id":"PR_kwDONRyVrs648G88","number":68,"state":"closed","title":"deps(deps): bump the python group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-22T14:29:23.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-15T14:32:19.000Z","updated_at":"2025-12-22T14:29:25.000Z","time_to_close":604624,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"python","update_count":16,"packages":[{"name":"certifi","old_version":"2025.8.3","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.3","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.0","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"greenlet","old_version":"3.2.4","new_version":"3.3.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"mariadb","old_version":"1.1.13","new_version":"1.1.14","repository_url":"https://github.com/mariadb-corporation/mariadb-connector-python"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"marshmallow","old_version":"4.0.1","new_version":"4.1.1","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"platformdirs","old_version":"4.4.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"python-dotenv","old_version":"1.1.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"sqlalchemy","old_version":"2.0.43","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"sqlalchemy-utils","old_version":"0.42.0","new_version":"0.42.1","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"},{"name":"tomli","old_version":"2.2.1","new_version":"2.3.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.4","repository_url":"https://github.com/pallets/werkzeug"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `2025.11.12` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.3` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.4` | `3.3.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [mariadb](https://github.com/mariadb-corporation/mariadb-connector-python) | `1.1.13` | `1.1.14` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `4.0.1` | `4.1.1` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.4.0` | `4.5.1` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.1` | `1.2.1` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.43` | `2.0.45` |\n| [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) | `0.42.0` | `0.42.1` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.3.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.4` |\n\n\nUpdates `certifi` from 2025.8.3 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"\u003e\u003ccode\u003e37ea150\u003c/code\u003e\u003c/a\u003e 2025.11.12 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"\u003e\u003ccode\u003e2fa50bb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.2 to 5.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"\u003e\u003ccode\u003e6cadb53\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fb14ac49a976b1695d84b1ac1307276a20b3aac9\"\u003e\u003ccode\u003efb14ac4\u003c/code\u003e\u003c/a\u003e 2025.10.05 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2c7c7ee6b76a118191b685a4cc028d4241f22eb7\"\u003e\u003ccode\u003e2c7c7ee\u003c/code\u003e\u003c/a\u003e Add Python 3.14 classifier in setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1a5cb7b3771bba256755f88b3dcf3ac13f064622\"\u003e\u003ccode\u003e1a5cb7b\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/dea59605ef2b266c2e0e67938e8c8535a04b1211\"\u003e\u003ccode\u003edea5960\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/83566b7c993eef772facdaff59c7bba105675329\"\u003e\u003ccode\u003e83566b7\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ca2e121bdb304fd01f802d3b1ee6a65684f569f2\"\u003e\u003ccode\u003eca2e121\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.3.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.08.03...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.3 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\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.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\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/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.3...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.3.0 to 8.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.1/\"\u003ehttps://pypi.org/project/click/8.3.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/28\"\u003ehttps://github.com/pallets/click/milestone/28\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3039\"\u003e#3039\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3055\"\u003e#3055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through the \u003ccode\u003eContext.invoke()\u003c/code\u003e method. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3066\"\u003e#3066\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3068\"\u003e#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect behavior for multiple parameters using the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3071\"\u003e#3071\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3079\"\u003e#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is empty. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3019\"\u003e#3019\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3021\"\u003e#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to \u003ccode\u003etype_cast_value\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3069\"\u003e#3069\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3090\"\u003e#3090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters through the context inside parameter callbacks. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-11-15\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. :issue:\u003ccode\u003e3039\u003c/code\u003e\n:pr:\u003ccode\u003e3055\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through\nthe \u003ccode\u003eContext.invoke()\u003c/code\u003e method. :issue:\u003ccode\u003e3066\u003c/code\u003e :issue:\u003ccode\u003e3065\u003c/code\u003e :pr:\u003ccode\u003e3068\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect\nbehavior for multiple parameters using the same name. :issue:\u003ccode\u003e3071\u003c/code\u003e :pr:\u003ccode\u003e3079\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters\nthrough the context inside parameter callbacks. :issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3137\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is\nempty. :issue:\u003ccode\u003e3019\u003c/code\u003e :pr:\u003ccode\u003e3021\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to\n\u003ccode\u003etype_cast_value\u003c/code\u003e. :issue:\u003ccode\u003e3069\u003c/code\u003e :pr:\u003ccode\u003e3090\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1d038f270701498433cb432f54db89f95f07a845\"\u003e\u003ccode\u003e1d038f2\u003c/code\u003e\u003c/a\u003e release version 8.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/03f3889f505d0c9ca4f9d6810f9e4ba2799f2a66\"\u003e\u003ccode\u003e03f3889\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3141\"\u003e#3141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3867781222cb63693ca67df94352d29d8e6e2770\"\u003e\u003ccode\u003e3867781\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b91bb9548a5617b1197add95e084d569f57149c3\"\u003e\u003ccode\u003eb91bb95\u003c/code\u003e\u003c/a\u003e Provide altered context to callbacks to hide \u003ccode\u003eUNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/437e1e3295c7ec979fc1bf285bb402ca20d847e7\"\u003e\u003ccode\u003e437e1e3\u003c/code\u003e\u003c/a\u003e Temporarily provide a fake context to the callback to hide \u003ccode\u003eUNSET\u003c/code\u003e values as ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ea70da487b05d6bb758d472a3a9ffab4a5b7fcd5\"\u003e\u003ccode\u003eea70da4\u003c/code\u003e\u003c/a\u003e Don't test using a file in docs/ (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e27b307462b725722f620c69dd1d5509c032d18a\"\u003e\u003ccode\u003ee27b307\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003euv run --all-extras pyright --verifytypes click\u003c/code\u003e pass (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a92c573f3195c9da3058eadf1735d38af186d22c\"\u003e\u003ccode\u003ea92c573\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.3.0...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `greenlet` from 3.2.4 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst\"\u003egreenlet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.3.0 (2025-12-04)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.9.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitch to distributing manylinux_2_28 wheels instead of\nmanylinux2014 wheels. Likewise, switch from musllinux_1_1 to 1_2.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd initial support for free-threaded builds of CPython 3.14. Due to\nlimitations, we do not distribute binary wheels for free-threaded\nCPython on Windows. (Free-threaded CPython 3.13 may work, but is\nuntested and unsupported.)\u003c/p\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cp\u003eUnder some rare scenarios with free-threaded 3.14, the\ninterpreter may crash on accessing a variable or attribute or\nwhen shutting down. If this happens, try disabling the\nthread-local bytecode cache. See the greenlet documentation for\nmore details. See \u003ccode\u003ePR 472 by T. Wouters \u0026lt;https://github.com/python-greenlet/greenlet/pull/472\u0026gt;\u003c/code\u003e_ for the\ninitial free-threaded support and a discussion of the current\nknown issues.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/0f904314e2fe11835bdff9d928f9f039116aebff\"\u003e\u003ccode\u003e0f90431\u003c/code\u003e\u003c/a\u003e Preparing release 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/296058a43da5a76c2406a91aa998413b93537940\"\u003e\u003ccode\u003e296058a\u003c/code\u003e\u003c/a\u003e Tweak changelog. [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/d4392ab171036bf73cc64ed47109e0d2e1f41275\"\u003e\u003ccode\u003ed4392ab\u003c/code\u003e\u003c/a\u003e fixup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/e6fead23d967fd6194c5a1eaa48d55a07b4bda40\"\u003e\u003ccode\u003ee6fead2\u003c/code\u003e\u003c/a\u003e Update docs regarding free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/d5b134610187f94a641e0cf40be56992c8e9f667\"\u003e\u003ccode\u003ed5b1346\u003c/code\u003e\u003c/a\u003e 3.14: Save/restore PyInterpreterFrame.stackpointer.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/b54c4bdaaade13139d54005df51a9d21df5db7c4\"\u003e\u003ccode\u003eb54c4bd\u003c/code\u003e\u003c/a\u003e Fix some crashes with CPython assertions enabled, pointing to things we were ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/47e99259263968560422c9b69bc8c50f9068cf87\"\u003e\u003ccode\u003e47e9925\u003c/code\u003e\u003c/a\u003e Add a test that we're not enabling the GIL.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/0778d50792888afa043c8a368085358c3fea0146\"\u003e\u003ccode\u003e0778d50\u003c/code\u003e\u003c/a\u003e Use our Python allocator on free-threaded builds, but do it correctly with Py...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/5f661f4f5a023438e944d36e4f255c7a706ae998\"\u003e\u003ccode\u003e5f661f4\u003c/code\u003e\u003c/a\u003e Add free-threaded CI builds and manylinux builds; update manylinux away from ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/5331b0ad33a7380b91d8a9849f61aa61b7b1ade2\"\u003e\u003ccode\u003e5331b0a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/475\"\u003e#475\u003c/a\u003e from clin1234/capi\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-greenlet/greenlet/compare/3.2.4...3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.10 to 3.11\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.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\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/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mariadb` from 1.1.13 to 1.1.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/releases\"\u003emariadb's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eMariaDB Connector/Python 1.1.14\u003c/h2\u003e\n\u003cp\u003eDetails on this release can be found in the \u003ca href=\"https://mariadb.com/docs/release-notes/connectors/python/1.1/1.1.14\"\u003eRelease Notes\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/mariadb-corporation/mariadb-connector-python/blob/1.1/CHANGELOG.md\"\u003emariadb's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease history\u003c/h1\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/mariadb-corporation/mariadb-connector-python/commit/0e766904b5612d15b826c55b5a4be44b1f009982\"\u003e\u003ccode\u003e0e76690\u003c/code\u003e\u003c/a\u003e Added Python 3.14 to the list of supported versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/commit/6cb5f2d0450b50b8b2cdde04f254c1c18a81a90d\"\u003e\u003ccode\u003e6cb5f2d\u003c/code\u003e\u003c/a\u003e Fixed previous commit (github actions)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/commit/bda1932c852d568107f5ccc3977c38df25a8ab34\"\u003e\u003ccode\u003ebda1932\u003c/code\u003e\u003c/a\u003e Added windows + 3.14 to additional matrix (github actions)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/commit/5fc86bd2dc037f252be931b0bfcdddecb372d8aa\"\u003e\u003ccode\u003e5fc86bd\u003c/code\u003e\u003c/a\u003e Added Python 3.14 (currently rc)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/commit/92d58ff286543da199b2341e5edfd479182c870c\"\u003e\u003ccode\u003e92d58ff\u003c/code\u003e\u003c/a\u003e Matrix and test setup have moved to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/commit/2aed472f8b479634a4c76cb8c1e6849e567349e7\"\u003e\u003ccode\u003e2aed472\u003c/code\u003e\u003c/a\u003e bumped version (1.1.14)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/commit/ecc09ed0b582373c0aa88ae5f7a5192eaa3c417b\"\u003e\u003ccode\u003eecc09ed\u003c/code\u003e\u003c/a\u003e CONPY-321: Fixed index error in pool initialization\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/commit/9dc46c255de1eea0f72065e4398aa31ed14be30e\"\u003e\u003ccode\u003e9dc46c2\u003c/code\u003e\u003c/a\u003e - Added Python 3.13 to the matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/commit/8198419446f06187133c961bf3dca145d8410769\"\u003e\u003ccode\u003e8198419\u003c/code\u003e\u003c/a\u003e Follow up of a290f25581500fe19cdc8394a9d539384e2da848:\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/commit/a290f25581500fe19cdc8394a9d539384e2da848\"\u003e\u003ccode\u003ea290f25\u003c/code\u003e\u003c/a\u003e CONPY-318: Fixed segmentation fault\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-python/compare/v1.1.13...v1.1.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `marshmallow` from 4.0.1 to 4.1.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/marshmallow-code/marshmallow/blob/dev/CHANGELOG.rst\"\u003emarshmallow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e4.1.1 (2025-11-05)\n++++++++++++++++++\u003c/p\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003eURL\u003c/code\u003e validator is case-insensitive when using custom schemes (:pr:\u003ccode\u003e2874\u003c/code\u003e).\nThanks :user:\u003ccode\u003eT90REAL\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e4.1.0 (2025-11-01)\n++++++++++++++++++\u003c/p\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e__len__\u003c/code\u003e implementation to \u003ccode\u003emissing\u003c/code\u003e so that it can be used with\n\u003ccode\u003evalidate.Length \u0026lt;marshmallow.validate.Length\u0026gt;\u003c/code\u003e (:pr:\u003ccode\u003e2861\u003c/code\u003e).\nThanks :user:\u003ccode\u003eagentgodzilla\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (:pr:\u003ccode\u003e2363\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eTest against Python 3.14 (:pr:\u003ccode\u003e2864\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/marshmallow-code/marshmallow/commit/80f1110746a202e59ceedcbc78399feb1f48c257\"\u003e\u003ccode\u003e80f1110\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/10fe10be814a77765a76334e00bc6f69cd18409b\"\u003e\u003ccode\u003e10fe10b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2874\"\u003e#2874\u003c/a\u003e from T90REAL/fix_case_sensitivity\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/bc06327b3de6186e76961d984630ea1b9aaab894\"\u003e\u003ccode\u003ebc06327\u003c/code\u003e\u003c/a\u003e add name in AUTHORS.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/a45329dfde2f46bcea67b384912b21ca39fcfbd6\"\u003e\u003ccode\u003ea45329d\u003c/code\u003e\u003c/a\u003e Fix case sensitivity in validator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/880d87f6acc389aa80c223dae4013f7eed05ab13\"\u003e\u003ccode\u003e880d87f\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/5d3b1cccedd2d45c0674f52d0188d4d0fd36b334\"\u003e\u003ccode\u003e5d3b1cc\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/ba8058a0d475dfc41c524e636b57ceea6cdcd6b4\"\u003e\u003ccode\u003eba8058a\u003c/code\u003e\u003c/a\u003e Minor docstring fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/c034a78151471173ce8c35514ee2cae230637c3c\"\u003e\u003ccode\u003ec034a78\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/4f59df052b824c7fd7ee14eb22de15fc5be5dc6a\"\u003e\u003ccode\u003e4f59df0\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2865\"\u003e#2865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/d206a707a43fd6d509b7128dc5700b27a440aedf\"\u003e\u003ccode\u003ed206a70\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2866\"\u003e#2866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/marshmallow-code/marshmallow/compare/4.0.1...4.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\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.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\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\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\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/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.4.0 to 4.5.1\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.5.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix no-ctypes fallback on windows by \u003ca href=\"https://github.com/youknowone\"\u003e\u003ccode\u003e@​youknowone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/403\"\u003etox-dev/platformdirs#403\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.5.0...4.5.1\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.5.0...4.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.5.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/376\"\u003etox-dev/platformdirs#376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in the all 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/tox-dev/platformdirs/pull/378\"\u003etox-dev/platformdirs#378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows 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/tox-dev/platformdirs/pull/379\"\u003etox-dev/platformdirs#379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/381\"\u003etox-dev/platformdirs#381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/382\"\u003etox-dev/platformdirs#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/383\"\u003etox-dev/platformdirs#383\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Windows file paths in README by \u003ca href=\"https://github.com/ParadaCarleton\"\u003e\u003ccode\u003e@​ParadaCarleton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/385\"\u003etox-dev/platformdirs#385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/384\"\u003etox-dev/platformdirs#384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/387\"\u003etox-dev/platformdirs#387\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6 to 7 in the all 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/tox-dev/platformdirs/pull/388\"\u003etox-dev/platformdirs#388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop 3.9 support 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/389\"\u003etox-dev/platformdirs#389\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/ParadaCarleton\"\u003e\u003ccode\u003e@​ParadaCarleton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/385\"\u003etox-dev/platformdirs#385\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.4.0...4.5.0\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.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/tox-dev/platformdirs/commit/e4dbdb8c8ed8e448b7cdbbdce4a4ff5c54c5d685\"\u003e\u003ccode\u003ee4dbdb8\u003c/code\u003e\u003c/a\u003e Fix no-ctypes fallback on windows (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/4cc78aa59bbfa63a993213794f218dac327cf625\"\u003e\u003ccode\u003e4cc78aa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/b624d78851775551b6285c2759cb49325548459b\"\u003e\u003ccode\u003eb624d78\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/400\"\u003e#400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/eb06e7ed58b52ef3876a24393c6235e3928443ec\"\u003e\u003ccode\u003eeb06e7e\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/399\"\u003e#399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/85efbe91422e0b0df64f646dbfe9adb0dff07ed1\"\u003e\u003ccode\u003e85efbe9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/704c603bd3299283b2132f6b4d27daaa4fa2acbf\"\u003e\u003ccode\u003e704c603\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a01817810d92510cfa9cb9e51e7f38094e2fd9b9\"\u003e\u003ccode\u003ea018178\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/393\"\u003e#393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/9920b9bd6b1752d4b1420a3237385dcd3a6ea840\"\u003e\u003ccode\u003e9920b9b\u003c/code\u003e\u003c/a\u003e Bump the all group with 2 updates (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/c80472486f4939b795f8552f6b4e629c3db1f538\"\u003e\u003ccode\u003ec804724\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a6a24895db89fe81d8863ca25d1ebeb101fce80b\"\u003e\u003ccode\u003ea6a2489\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.1.1 to 1.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport reading .env from FIFOs (Unix) by \u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI to use trusted publishing on PyPI\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/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: upgrade to use ruff by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/567\"\u003etheskumar/python-dotenv#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.exit() instead of exit() by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/568\"\u003etheskumar/python-dotenv#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:  add \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e flag to disable load_dotenv (fixes \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/510\"\u003e#510\u003c/a\u003e) by \u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python@3.14: Github CI \u0026amp; tox.ini by \u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eocs: clarify what load_dotenv() does in README by \u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory 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/theskumar/python-dotenv/pull/577\"\u003etheskumar/python-dotenv#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove project metadata and config to pyproject.toml by \u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\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/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.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/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\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/theskumar/python-dotenv/commit/eaf2a9129ccec6febda0f741eb3bb852c3f947bd\"\u003e\u003ccode\u003eeaf2a91\u003c/code\u003e\u003c/a\u003e Do not remove .coverage file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8716196891532eeb67d24a513e8d975437f5e8b7\"\u003e\u003ccode\u003e8716196\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.0 → 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/b87807fcad6e74332c3c63a75c92ce5814fa7a55\"\u003e\u003ccode\u003eb87807f\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/3af77d3029eb717aeec0a3c25f751b6a614a6d3c\"\u003e\u003ccode\u003e3af77d3\u003c/code\u003e\u003c/a\u003e Support reading .env from FIFOs (Unix) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/467ee22fccb2fb7ccda71a0d9e37c6ea3cb8d993\"\u003e\u003ccode\u003e467ee22\u003c/code\u003e\u003c/a\u003e Fix test failures after moving config to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/76999e741d87e958ebd74e3ae9834c0514e77a59\"\u003e\u003ccode\u003e76999e7\u003c/code\u003e\u003c/a\u003e Move more config pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/222ce2cc58ebc82ba78da8781269267b9f585932\"\u003e\u003ccode\u003e222ce2c\u003c/code\u003e\u003c/a\u003e Update to use trusted publisher on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ed4f79d202eba582b44bdf1f5deb726dd68783d\"\u003e\u003ccode\u003e8ed4f79\u003c/code\u003e\u003c/a\u003e Update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/5bf882241c607445bf02cf5b241535d62e2b99c1\"\u003e\u003ccode\u003e5bf8822\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.1 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1fe11cc737ee4399e9c51d1b69b0dd858f6b4669\"\u003e\u003ccode\u003e1fe11cc\u003c/code\u003e\u003c/a\u003e upadate changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.43 to 2.0.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.45\u003c/h1\u003e\n\u003cp\u003eReleased: December 9, 2025\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where calling \u003ccode\u003eMapper.add_property()\u003c/code\u003e within mapper event\nhooks such as \u003ccode\u003eMapperEvents.instrument_class()\u003c/code\u003e,\n\u003ccode\u003eMapperEvents.after_mapper_constructed()\u003c/code\u003e, or\n\u003ccode\u003eMapperEvents.before_mapper_configured()\u003c/code\u003e would raise an\n\u003ccode\u003eAttributeError\u003c/code\u003e because the mapper's internal property collections were\nnot yet initialized. The \u003ccode\u003eMapper.add_property()\u003c/code\u003e method now handles\nearly-stage property additions correctly, allowing properties including\ncolumn properties, deferred columns, and relationships to be added during\nmapper initialization events.  Pull request courtesy G Allajmi.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12858\"\u003e#12858\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue in Python 3.14 where dataclass transformation would fail when\na mapped class using \u003ccode\u003eMappedAsDataclass\u003c/code\u003e included a\n\u003ccode\u003erelationship()\u003c/code\u003e referencing a class that was not available at\nruntime (e.g., within a \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e block). This occurred when using\nPython 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e deferred annotations feature, which is the\ndefault behavior without a \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e\ndirective.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12952\"\u003e#12952\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eexamples\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[examples] [bug]\u003c/strong\u003e Fixed the \u0026quot;short_selects\u0026quot; performance example where the cache was being\nused in all the examples, making it impossible to compare performance with\nand without the cache.   Less important comparisons like \u0026quot;lambdas\u0026quot; and\n\u0026quot;baked queries\u0026quot; have been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Some improvements to the \u003ccode\u003e_sql.ClauseElement.params()\u003c/code\u003e method to\nreplace bound parameters in a query were made, however the ultimate issue\nin \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e involving ORM \u003ccode\u003e_orm.aliased()\u003c/code\u003e cannot be fixed fully\nuntil 2.1, where the method is being rewritten to work without relying on\nCore cloned traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003eColumnOperators.in_()\u003c/code\u003e operator with a\nnested \u003ccode\u003eCompoundSelect\u003c/code\u003e statement (e.g. an \u003ccode\u003eINTERSECT\u003c/code\u003e of\n\u003ccode\u003eUNION\u003c/code\u003e queries) would raise a \u003ccode\u003eNotImplementedError\u003c/code\u003e when the\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy-utils` from 0.42.0 to 0.42.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError with Sequence defaults in instant_defaults_listener by \u003ca href=\"https://github.com/wadinj\"\u003e\u003ccode\u003e@​wadinj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/pull/793\"\u003ekvesteri/sqlalchemy-utils#793\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.1 (2025-12-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/793\"\u003e#793\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/kvesteri/sqlalchemy-utils/commit/ed0cc46f96d3065331ff34c0713da23ee90920a0\"\u003e\u003ccode\u003eed0cc46\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/11cf519375af877839d025c2d4ce402db035b81f\"\u003e\u003ccode\u003e11cf519\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.5.0 to 2.6.0 in /requirements/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/881fed424d9e2b360c82e4318a4842a85514981b\"\u003e\u003ccode\u003e881fed4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/797\"\u003e#797\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/81a5f82b2d1b104a9a377103262d3c0b64ad60d6\"\u003e\u003ccode\u003e81a5f82\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e8b12f849325fd910c89e14017a572b1bd4066a4\"\u003e\u003ccode\u003ee8b12f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/794\"\u003e#794\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/19570dcae67c84e50cb37ea06db717429fc188e7\"\u003e\u003ccode\u003e19570dc\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/4a7d764a4f490614cf1e597f1101bd7153573141\"\u003e\u003ccode\u003e4a7d764\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9645938138e998190d20bbd6c955eeca6a024d4d\"\u003e\u003ccode\u003e9645938\u003c/code\u003e\u003c/a\u003e Fix AttributeError with Sequence defaults in instant_defaults_listener\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e4b9f72230fde81e00ee4f9e34839f6d635fd2f3\"\u003e\u003ccode\u003ee4b9f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/792\"\u003e#792\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/755064d8add7496fb5002c0eaa309542fab7a301\"\u003e\u003ccode\u003e755064d\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.42.0...0.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tomli` from 2.2.1 to 2.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hukkin/tomli/blob/master/CHANGELOG.md\"\u003etomli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eBinary wheels for Python 3.14 (also free-threaded)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePerformance\n\u003cul\u003e\n\u003cli\u003eReduced import time\u003c/li\u003e\n\u003c/ul\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/hukkin/tomli/commit/3fccd16450d0f1d87c042473d95a07f60955206e\"\u003e\u003ccode\u003e3fccd16\u003c/code\u003e\u003c/a\u003e Bump version: 2.2.1 → 2.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/65040163ea9b528b2d37a1bb5df886472c310930\"\u003e\u003ccode\u003e6504016\u003c/code\u003e\u003c/a\u003e Add 2.3.0 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/0bc66fcab1f766fe410ffeebfe9ec1ec646f1681\"\u003e\u003ccode\u003e0bc66fc\u003c/code\u003e\u003c/a\u003e Remove now off-by-default PyPy from cibuildwheel skip list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/0aa242f3188f4b892e434f1b4d23818fcd978615\"\u003e\u003ccode\u003e0aa242f\u003c/code\u003e\u003c/a\u003e Update license metadata to appease PEP 639\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/a18221eb5c3f4592285f533d48e68432132bc37b\"\u003e\u003ccode\u003ea18221e\u003c/code\u003e\u003c/a\u003e Bump GitHub CI actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/6fa4d90aa9bb1693b327c72fd18a6c925d1dd5d7\"\u003e\u003ccode\u003e6fa4d90\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/260\"\u003e#260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/b974fa13a96503546e47a895ac123d5c8425bc9a\"\u003e\u003ccode\u003eb974fa1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/f574f366d40b2fa0672177f06df4d6dfc4188356\"\u003e\u003ccode\u003ef574f36\u003c/code\u003e\u003c/a\u003e Update mypy to 1.15 and use \u003ccode\u003e--strict\u003c/code\u003e mode (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/257\"\u003e#257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/1da01ef78fee9f491f55feb5e2d9fcf24d4977f0\"\u003e\u003ccode\u003e1da01ef\u003c/code\u003e\u003c/a\u003e Reduce import time by removing \u003ccode\u003etyping\u003c/code\u003e import (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/251\"\u003e#251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/41881885a360e9f6526badafc1c5b2eec4133393\"\u003e\u003ccode\u003e4188188\u003c/code\u003e\u003c/a\u003e Reduce import time by removing \u003ccode\u003estring\u003c/code\u003e and \u003ccode\u003etomli._types\u003c/code\u003e imports\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hukkin/tomli/compare/2.2.1...2.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-2xpw-w6gg-jr37)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by \u003ca href=\"https://github.com/illia-v\"\u003e\u003ccode\u003e@​illia-v\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-gm62-xv2j-4w53)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to  benefit from the security fixes and avoid warnings. Prefer using  \u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/li\u003e\n\u003cli\u003eIf you use custom decompressors, please make sure to update them to  respect the changed API of \u003ccode\u003eurllib3.response.ContentDecoder\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnabled retrieval, deletion, and membership testing in \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e using bytes keys. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3653\"\u003e#3653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded host and port information to string representations of \u003ccode\u003eHTTPConnection\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3666\"\u003e#3666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for Python 3.14 free-threading builds explicitly. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3696\"\u003e#3696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRemovals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e method in favor of \u003ccode\u003eHTTPResponse.headers\u003c/code\u003e. Removed the \u003ccode\u003eHTTPResponse.getheader(name, default)\u003c/code\u003e method in favor of \u003ccode\u003eHTTPResponse.headers.get(name, default)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3622\"\u003e#3622\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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.2 (2025-12-11)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in\nthe decoder's buffer when reading compressed chunked responses.\n(\u003ccode\u003e[#3734](https://github.com/urllib3/urllib3/issues/3734) \u0026lt;https://github.com/urllib3/urllib3/issues/3734\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.1 (2025-12-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods.\n(\u003ccode\u003e[#3731](https://github.com/urllib3/urllib3/issues/3731) \u0026lt;https://github.com/urllib3/urllib3/issues/3731\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.0 (2025-12-05)\u003c/h1\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly\ncompressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource\nconsumption even when a small amount of data was requested. Reading small\nchunks of compressed data is safer and much more efficient now.\n(\u003ccode\u003eGHSA-2xpw-w6gg-jr37 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-2xpw-w6gg-jr37\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with\nvirtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially\nleading to a denial of service (DoS) attack by exhausting system resources\nduring decoding. The number of allowed chained encodings is now limited to 5.\n(\u003ccode\u003eGHSA-gm62-xv2j-4w53 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-gm62-xv2j-4w53\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but\nyour environment contains a Brotli/brotlicffi/brotlipy package anyway, make\nsure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to\nbenefit from the security fixes and avoid warnings. Prefer using\n\u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf you use custom decompressors, please make sure to update them to\nrespect the changed API of \u003ccode\u003eurllib3.response.ContentDecode...\n\n_Description has been truncated_","html_url":"https://github.com/WRLC/azure-web-app-vfs/pull/68","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/WRLC%2Fazure-web-app-vfs/issues/68","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/68/packages"}},{"old_version":"0.42.0","new_version":"0.42.1","update_type":"patch","path":"/services/backend","pr_created_at":"2025-12-15T06:26:11.000Z","version_change":"0.42.0 → 0.42.1","issue":{"uuid":"3728937158","node_id":"PR_kwDOQPxdbc642Bjs","number":553,"state":"open","title":"chore(deps)(deps): bump sqlalchemy-utils from 0.42.0 to 0.42.1 in /services/backend","user":"dependabot[bot]","labels":["automated","dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-15T06:26:11.000Z","updated_at":"2025-12-15T06:27:39.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps)","packages":[{"name":"sqlalchemy-utils","old_version":"0.42.0","new_version":"0.42.1","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":"/services/backend","ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.42.0 to 0.42.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError with Sequence defaults in instant_defaults_listener by \u003ca href=\"https://github.com/wadinj\"\u003e\u003ccode\u003e@​wadinj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/pull/793\"\u003ekvesteri/sqlalchemy-utils#793\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.1 (2025-12-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/793\"\u003e#793\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/kvesteri/sqlalchemy-utils/commit/ed0cc46f96d3065331ff34c0713da23ee90920a0\"\u003e\u003ccode\u003eed0cc46\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/11cf519375af877839d025c2d4ce402db035b81f\"\u003e\u003ccode\u003e11cf519\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.5.0 to 2.6.0 in /requirements/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/881fed424d9e2b360c82e4318a4842a85514981b\"\u003e\u003ccode\u003e881fed4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/797\"\u003e#797\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/81a5f82b2d1b104a9a377103262d3c0b64ad60d6\"\u003e\u003ccode\u003e81a5f82\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e8b12f849325fd910c89e14017a572b1bd4066a4\"\u003e\u003ccode\u003ee8b12f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/794\"\u003e#794\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/19570dcae67c84e50cb37ea06db717429fc188e7\"\u003e\u003ccode\u003e19570dc\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/4a7d764a4f490614cf1e597f1101bd7153573141\"\u003e\u003ccode\u003e4a7d764\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9645938138e998190d20bbd6c955eeca6a024d4d\"\u003e\u003ccode\u003e9645938\u003c/code\u003e\u003c/a\u003e Fix AttributeError with Sequence defaults in instant_defaults_listener\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e4b9f72230fde81e00ee4f9e34839f6d635fd2f3\"\u003e\u003ccode\u003ee4b9f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/792\"\u003e#792\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/755064d8add7496fb5002c0eaa309542fab7a301\"\u003e\u003ccode\u003e755064d\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.42.0...0.42.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=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.42.0\u0026new-version=0.42.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/asbor/HoppyBrew/pull/553","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/asbor%2FHoppyBrew/issues/553","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/553/packages"}},{"old_version":"0.42.0","new_version":"0.42.1","update_type":"patch","path":"/services/catalog","pr_created_at":"2025-12-15T06:23:22.000Z","version_change":"0.42.0 → 0.42.1","issue":{"uuid":"3728928263","node_id":"PR_kwDOKeAh68641_j9","number":1657,"state":"closed","title":"build(deps-dev): bump sqlalchemy-utils from 0.42.0 to 0.42.1 in /services/catalog","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-16T09:14:42.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-15T06:23:22.000Z","updated_at":"2025-12-16T09:14:43.000Z","time_to_close":96680,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"sqlalchemy-utils","old_version":"0.42.0","new_version":"0.42.1","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":"/services/catalog","ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.42.0 to 0.42.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError with Sequence defaults in instant_defaults_listener by \u003ca href=\"https://github.com/wadinj\"\u003e\u003ccode\u003e@​wadinj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/pull/793\"\u003ekvesteri/sqlalchemy-utils#793\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.1 (2025-12-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/793\"\u003e#793\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/kvesteri/sqlalchemy-utils/commit/ed0cc46f96d3065331ff34c0713da23ee90920a0\"\u003e\u003ccode\u003eed0cc46\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/11cf519375af877839d025c2d4ce402db035b81f\"\u003e\u003ccode\u003e11cf519\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.5.0 to 2.6.0 in /requirements/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/881fed424d9e2b360c82e4318a4842a85514981b\"\u003e\u003ccode\u003e881fed4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/797\"\u003e#797\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/81a5f82b2d1b104a9a377103262d3c0b64ad60d6\"\u003e\u003ccode\u003e81a5f82\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e8b12f849325fd910c89e14017a572b1bd4066a4\"\u003e\u003ccode\u003ee8b12f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/794\"\u003e#794\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/19570dcae67c84e50cb37ea06db717429fc188e7\"\u003e\u003ccode\u003e19570dc\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/4a7d764a4f490614cf1e597f1101bd7153573141\"\u003e\u003ccode\u003e4a7d764\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9645938138e998190d20bbd6c955eeca6a024d4d\"\u003e\u003ccode\u003e9645938\u003c/code\u003e\u003c/a\u003e Fix AttributeError with Sequence defaults in instant_defaults_listener\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e4b9f72230fde81e00ee4f9e34839f6d635fd2f3\"\u003e\u003ccode\u003ee4b9f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/792\"\u003e#792\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/755064d8add7496fb5002c0eaa309542fab7a301\"\u003e\u003ccode\u003e755064d\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.42.0...0.42.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=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.42.0\u0026new-version=0.42.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/RS-PYTHON/rs-server/pull/1657","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/RS-PYTHON%2Frs-server/issues/1657","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1657/packages"}},{"old_version":"0.41.1","new_version":"0.42.1","update_type":"minor","path":null,"pr_created_at":"2025-12-15T04:13:52.000Z","version_change":"0.41.1 → 0.42.1","issue":{"uuid":"3728616604","node_id":"PR_kwDOOEfyqc6408sW","number":57,"state":"open","title":"Bump sqlalchemy-utils from 0.41.1 to 0.42.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":"2025-12-15T04:13:52.000Z","updated_at":"2025-12-15T04:13:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"sqlalchemy-utils","old_version":"0.41.1","new_version":"0.42.1","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.41.1 to 0.42.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError with Sequence defaults in instant_defaults_listener by \u003ca href=\"https://github.com/wadinj\"\u003e\u003ccode\u003e@​wadinj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/pull/793\"\u003ekvesteri/sqlalchemy-utils#793\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.41.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix breaking change introduced on SQLAlchemy 2.0.22 changes to \u003ccode\u003eattributes.AttributeImpl\u003c/code\u003e constructor (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/733\"\u003e#733\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.1 (2025-12-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/793\"\u003e#793\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.41.2 (2024-03-22)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix breaking change introduced on SQLAlchemy 2.0.22 changes to \u003ccode\u003eattributes.AttributeImpl\u003c/code\u003e constructor (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/733\"\u003e#733\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/kvesteri/sqlalchemy-utils/commit/ed0cc46f96d3065331ff34c0713da23ee90920a0\"\u003e\u003ccode\u003eed0cc46\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/11cf519375af877839d025c2d4ce402db035b81f\"\u003e\u003ccode\u003e11cf519\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.5.0 to 2.6.0 in /requirements/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/881fed424d9e2b360c82e4318a4842a85514981b\"\u003e\u003ccode\u003e881fed4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/797\"\u003e#797\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/81a5f82b2d1b104a9a377103262d3c0b64ad60d6\"\u003e\u003ccode\u003e81a5f82\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e8b12f849325fd910c89e14017a572b1bd4066a4\"\u003e\u003ccode\u003ee8b12f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/794\"\u003e#794\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/19570dcae67c84e50cb37ea06db717429fc188e7\"\u003e\u003ccode\u003e19570dc\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/4a7d764a4f490614cf1e597f1101bd7153573141\"\u003e\u003ccode\u003e4a7d764\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eAttributeError\u003c/code\u003e with Sequence defaults in \u003ccode\u003einstant_defaults_listener\u003c/code\u003e (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9645938138e998190d20bbd6c955eeca6a024d4d\"\u003e\u003ccode\u003e9645938\u003c/code\u003e\u003c/a\u003e Fix AttributeError with Sequence defaults in instant_defaults_listener\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/e4b9f72230fde81e00ee4f9e34839f6d635fd2f3\"\u003e\u003ccode\u003ee4b9f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/792\"\u003e#792\u003c/a\u003e from kvesteri/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/755064d8add7496fb5002c0eaa309542fab7a301\"\u003e\u003ccode\u003e755064d\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.1...0.42.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=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.41.1\u0026new-version=0.42.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/L11yz126/seal/pull/57","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/L11yz126%2Fseal/issues/57","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/57/packages"}},{"old_version":"0.41.2","new_version":"0.42.0","update_type":"minor","path":null,"pr_created_at":"2025-11-13T22:04:27.000Z","version_change":"0.41.2 → 0.42.0","issue":{"uuid":"3622988870","node_id":"PR_kwDOArfEPs6zUiBn","number":1233,"state":"open","title":"chore(deps): bump sqlalchemy-utils from 0.41.2 to 0.42.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-13T22:04:27.000Z","updated_at":"2025-11-13T22:08:24.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"sqlalchemy-utils","old_version":"0.41.2","new_version":"0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.41.2 to 0.42.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.2...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.41.2\u0026new-version=0.42.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/jazzband/website/pull/1233","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jazzband%2Fwebsite/issues/1233","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1233/packages"}},{"old_version":"0.41.2","new_version":"0.42.0","update_type":"minor","path":null,"pr_created_at":"2025-10-16T19:35:56.000Z","version_change":"0.41.2 → 0.42.0","issue":{"uuid":"3523249433","node_id":"PR_kwDODVn7ys6uKLXl","number":822,"state":"closed","title":"Bump the minor-updates group with 6 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-20T20:50:43.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-16T19:35:56.000Z","updated_at":"2025-10-20T20:50:45.000Z","time_to_close":350087,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-updates","update_count":6,"packages":[{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"sqlalchemy","old_version":"2.0.41","new_version":"2.0.44","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"sqlalchemy-utils","old_version":"0.41.2","new_version":"0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"},{"name":"pymysql","old_version":"1.1.1","new_version":"1.1.2","repository_url":"https://github.com/PyMySQL/PyMySQL"},{"name":"zeep","old_version":"4.3.1","new_version":"4.3.2","repository_url":"https://github.com/mvantellingen/python-zeep"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.2"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-updates group with 6 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.41` | `2.0.44` |\n| [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) | `0.41.2` | `0.42.0` |\n| [pymysql](https://github.com/PyMySQL/PyMySQL) | `1.1.1` | `1.1.2` |\n| [zeep](https://github.com/mvantellingen/python-zeep) | `4.3.1` | `4.3.2` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.2` |\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.41 to 2.0.44\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.44\u003c/h1\u003e\n\u003cp\u003eReleased: October 10, 2025\u003c/p\u003e\n\u003ch2\u003eplatform\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[platform] [bug]\u003c/strong\u003e Unblocked automatic greenlet installation for Python 3.14 now that\nthere are greenlet wheels on pypi for python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [usecase]\u003c/strong\u003e The way ORM Annotated Declarative interprets Python \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type aliases\nin \u003ccode\u003eMapped[]\u003c/code\u003e annotations has been refined to expand the lookup scheme. A\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type can now be resolved based on either its direct presence in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e or its immediate resolved\nvalue, as long as a recursive lookup across multiple \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types is\nnot required for it to resolve. This change reverses part of the\nrestrictions introduced in 2.0.37 as part of \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/11955\"\u003e#11955\u003c/a\u003e, which\ndeprecated (and disallowed in 2.1) the ability to resolve any \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e\ntype that was not explicitly present in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e. Recursive lookups of\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types remains deprecated in 2.0 and disallowed in version 2.1,\nas do implicit lookups of \u003ccode\u003eNewType\u003c/code\u003e types without an entry in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eAdditionally, new support has been added for generic \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e aliases that\nrefer to \u003ca href=\"https://peps.python.org/pep-0593\"\u003ePEP 593\u003c/a\u003e \u003ccode\u003eAnnotated\u003c/code\u003e constructs containing\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e configurations. See the sections below for\nexamples.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12829\"\u003e#12829\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed a caching issue where \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e would\nincorrectly reuse cached bound parameter values when used with\n\u003ccode\u003e_sql.CompoundSelect\u003c/code\u003e constructs such as \u003ccode\u003e_sql.union()\u003c/code\u003e. The\nissue was caused by the cache key for compound selects not including the\nexecution options that are part of the \u003ccode\u003e_sql.Executable\u003c/code\u003e base class,\nwhich \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e uses to apply its criteria\ndynamically. The fix ensures that compound selects and other executable\nconstructs properly include execution options in their cache key traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12905\"\u003e#12905\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[engine] [bug]\u003c/strong\u003e Implemented initial support for free-threaded Python by adding new tests\nand reworking the test harness to include Python 3.13t and Python 3.14t in\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy-utils` from 0.41.2 to 0.42.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.2...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymysql` from 1.1.1 to 1.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyMySQL/PyMySQL/releases\"\u003epymysql's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent UnboundLocalError on MySQLResult initialization during SystemExit by \u003ca href=\"https://github.com/palm002\"\u003e\u003ccode\u003e@​palm002\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1174\"\u003ePyMySQL/PyMySQL#1174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove mention of runtests.py by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1182\"\u003ePyMySQL/PyMySQL#1182\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emake sure to also close \u003ccode\u003econnection._rfile\u003c/code\u003e in \u003ccode\u003eConnection._force_close\u003c/code\u003e by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1184\"\u003ePyMySQL/PyMySQL#1184\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded MariaDB in readme description (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1180\"\u003e#1180\u003c/a\u003e) by \u003ca href=\"https://github.com/theneuralcraftsman\"\u003e\u003ccode\u003e@​theneuralcraftsman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1186\"\u003ePyMySQL/PyMySQL#1186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency sphinx-rtd-theme to v3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1189\"\u003ePyMySQL/PyMySQL#1189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency sphinx to v8 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1179\"\u003ePyMySQL/PyMySQL#1179\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1190\"\u003ePyMySQL/PyMySQL#1190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve UTF8 charset case-insensitively by \u003ca href=\"https://github.com/ek247\"\u003e\u003ccode\u003e@​ek247\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1195\"\u003ePyMySQL/PyMySQL#1195\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate ci versions by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1196\"\u003ePyMySQL/PyMySQL#1196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003euse KILL instead of COM_KILL for MySQL 8.4 support by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1197\"\u003ePyMySQL/PyMySQL#1197\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edisable VERIFY_X509_STRICT for Python 3.13 support by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1198\"\u003ePyMySQL/PyMySQL#1198\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update codecov/codecov-action action to v5 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1191\"\u003ePyMySQL/PyMySQL#1191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd MariaDB to README.md by \u003ca href=\"https://github.com/robertsilen\"\u003e\u003ccode\u003e@​robertsilen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1181\"\u003ePyMySQL/PyMySQL#1181\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: use defer_connect instead of mock by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1199\"\u003ePyMySQL/PyMySQL#1199\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: use astral-sh/ruff-action by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1201\"\u003ePyMySQL/PyMySQL#1201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix auth_switch_request handling by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1200\"\u003ePyMySQL/PyMySQL#1200\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: update test matrix by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1215\"\u003ePyMySQL/PyMySQL#1215\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: do not drop MySQL 5.7 test for now by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1216\"\u003ePyMySQL/PyMySQL#1216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate README by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1217\"\u003ePyMySQL/PyMySQL#1217\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eprepare v1.1.2 by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1218\"\u003ePyMySQL/PyMySQL#1218\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/palm002\"\u003e\u003ccode\u003e@​palm002\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1174\"\u003ePyMySQL/PyMySQL#1174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1182\"\u003ePyMySQL/PyMySQL#1182\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theneuralcraftsman\"\u003e\u003ccode\u003e@​theneuralcraftsman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1186\"\u003ePyMySQL/PyMySQL#1186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1190\"\u003ePyMySQL/PyMySQL#1190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ek247\"\u003e\u003ccode\u003e@​ek247\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1195\"\u003ePyMySQL/PyMySQL#1195\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robertsilen\"\u003e\u003ccode\u003e@​robertsilen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1181\"\u003ePyMySQL/PyMySQL#1181\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyMySQL/PyMySQL/compare/v1.1.1...v1.1.2\"\u003ehttps://github.com/PyMySQL/PyMySQL/compare/v1.1.1...v1.1.2\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/PyMySQL/PyMySQL/blob/main/CHANGELOG.md\"\u003epymysql's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.2\u003c/h2\u003e\n\u003cp\u003eRelease date: 2025-08-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent UnboundLocalError in very rare situation. \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1174\"\u003ePyMySQL/PyMySQL#1174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClose underlying \u003ccode\u003eSocketIO\u003c/code\u003e soon when Connection is closed for PyPy. \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1183\"\u003ePyMySQL/PyMySQL#1183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix importing PyMySQL fail on CPython 3.13 when \u003ccode\u003egetpass.getuser()\u003c/code\u003e raises OSEError. \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1190\"\u003ePyMySQL/PyMySQL#1190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake charset name \u0026quot;utf8\u0026quot; case insensitive. \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1195\"\u003ePyMySQL/PyMySQL#1195\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.kill()\u003c/code\u003e uses \u003ccode\u003eKILL\u003c/code\u003e query instead of \u003ccode\u003eCOM_KILL\u003c/code\u003ecommand to support MySQL 8.4. \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1197\"\u003ePyMySQL/PyMySQL#1197\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix SSL error on CPython 3.13 caused by strict TLS default setting. \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1198\"\u003ePyMySQL/PyMySQL#1198\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix auth switch request handling. \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1200\"\u003ePyMySQL/PyMySQL#1200\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/PyMySQL/PyMySQL/commit/d7bb777e503d82bf2496113f07dd4ab249615efc\"\u003e\u003ccode\u003ed7bb777\u003c/code\u003e\u003c/a\u003e release v1.1.2 (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/2559de5a6b01917622fc8986cd3dd8479d7d6e95\"\u003e\u003ccode\u003e2559de5\u003c/code\u003e\u003c/a\u003e update README (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1217\"\u003e#1217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/a388c3a5e274c3b8c03e5f1dcb442b4bb2f9bafd\"\u003e\u003ccode\u003ea388c3a\u003c/code\u003e\u003c/a\u003e ci: do not drop MySQL 5.7 test for now (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1216\"\u003e#1216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/9a3fe442edaca9db6da1809c82dbb6f4192440ee\"\u003e\u003ccode\u003e9a3fe44\u003c/code\u003e\u003c/a\u003e ci: update test matrix (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1215\"\u003e#1215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/bed601f04fb982c7c42c6ff7e56b7f749ac64cc9\"\u003e\u003ccode\u003ebed601f\u003c/code\u003e\u003c/a\u003e Add DeepWiki badge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/01af30fea0880c3b72e6c7b3b05d66a8c28ced7a\"\u003e\u003ccode\u003e01af30f\u003c/code\u003e\u003c/a\u003e fix auth_switch_request handling (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1200\"\u003e#1200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/53efd1ec7f0e854abc62eb875b944f56bca29dd2\"\u003e\u003ccode\u003e53efd1e\u003c/code\u003e\u003c/a\u003e ci: use astral-sh/ruff-action (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1201\"\u003e#1201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/e88b729f8f1ddcf0851e0153188b016d0e9ec00c\"\u003e\u003ccode\u003ee88b729\u003c/code\u003e\u003c/a\u003e remove codeql and codesee actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/5f6533f883535b76c2d3a776c4746027027106f8\"\u003e\u003ccode\u003e5f6533f\u003c/code\u003e\u003c/a\u003e refactor: use defer_connect instead of mock (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1199\"\u003e#1199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/66ad1eaa47cfde19dfe01900ceb5f6ea51483e95\"\u003e\u003ccode\u003e66ad1ea\u003c/code\u003e\u003c/a\u003e add MariaDB to README.md (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1181\"\u003e#1181\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyMySQL/PyMySQL/compare/v1.1.1...v1.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zeep` from 4.3.1 to 4.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mvantellingen/python-zeep/releases\"\u003ezeep's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate proxy argument in httpx Client/AsyncClient by \u003ca href=\"https://github.com/aschollmeier-gcmlp\"\u003e\u003ccode\u003e@​aschollmeier-gcmlp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mvantellingen/python-zeep/pull/1447\"\u003emvantellingen/python-zeep#1447\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReformat using newer version of black. by \u003ca href=\"https://github.com/iksteen\"\u003e\u003ccode\u003e@​iksteen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mvantellingen/python-zeep/pull/1470\"\u003emvantellingen/python-zeep#1470\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/aschollmeier-gcmlp\"\u003e\u003ccode\u003e@​aschollmeier-gcmlp\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/mvantellingen/python-zeep/pull/1447\"\u003emvantellingen/python-zeep#1447\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/iksteen\"\u003e\u003ccode\u003e@​iksteen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/mvantellingen/python-zeep/pull/1470\"\u003emvantellingen/python-zeep#1470\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/mvantellingen/python-zeep/compare/4.3.1...4.3.2\"\u003ehttps://github.com/mvantellingen/python-zeep/compare/4.3.1...4.3.2\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/mvantellingen/python-zeep/blob/main/CHANGES\"\u003ezeep's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.2 (2025-09-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport newer versions of httpx (\u003ca href=\"https://redirect.github.com/mvantellingen/python-zeep/issues/1447\"\u003e#1447\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/mvantellingen/python-zeep/commit/a345e0207db4ed22b811841dbc264c1afb5165ff\"\u003e\u003ccode\u003ea345e02\u003c/code\u003e\u003c/a\u003e Bump version: 4.3.1 → 4.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvantellingen/python-zeep/commit/add5b00c3f93f88deaa7189f4ed0f75298566035\"\u003e\u003ccode\u003eadd5b00\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvantellingen/python-zeep/commit/db66342260d548ab4eceda3238a4681de76dee22\"\u003e\u003ccode\u003edb66342\u003c/code\u003e\u003c/a\u003e Reformat using newer version of black.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvantellingen/python-zeep/commit/f90dc509cabd7bc04ddab37849ea08929a2b26ef\"\u003e\u003ccode\u003ef90dc50\u003c/code\u003e\u003c/a\u003e Avoid potential AttributeError in httpx version check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvantellingen/python-zeep/commit/dc0b3181ea9ad1612f235d36e9d0ec1512a6ed5c\"\u003e\u003ccode\u003edc0b318\u003c/code\u003e\u003c/a\u003e Correct httpx version comparison\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvantellingen/python-zeep/commit/7ebe1fae5fc15393afb15a76406af3fac3661e1d\"\u003e\u003ccode\u003e7ebe1fa\u003c/code\u003e\u003c/a\u003e Update proxy argument in httpx Client/AsyncClient\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mvantellingen/python-zeep/compare/4.3.1...4.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.13.4 to 4.14.2\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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/Club-Alpin-Annecy/collectives/pull/822","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Club-Alpin-Annecy%2Fcollectives/issues/822","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/822/packages"}},{"old_version":"\u003c0.35,\u003e=0.34","new_version":"\u003e=0.34,\u003c0.43","update_type":"patch","path":"/app","pr_created_at":"2025-09-19T01:33:04.000Z","version_change":"\u003c0.35,\u003e=0.34 → \u003e=0.34,\u003c0.43","issue":{"uuid":"2842040895","node_id":"PR_kwDOKyz0J86pZho_","number":20,"state":"closed","title":"chore(deps): update sqlalchemy-utils requirement from \u003c0.35,\u003e=0.34 to \u003e=0.34,\u003c0.43 in /app","user":"dependabot[bot]","labels":[],"assignees":["jmessiass"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-19T19:41:26.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-19T01:33:04.000Z","updated_at":"2025-09-19T19:41:26.000Z","time_to_close":65302,"merged_at":"2025-09-19T19:41:26.000Z","merged_by":"jmessiass","closed_by":null,"dependency_metadata":{"prefix":"chore(deps): update","packages":[{"name":"sqlalchemy-utils","old_version":"\u003c0.35,\u003e=0.34","new_version":"\u003e=0.34,\u003c0.43","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":"/app","ecosystem":"pip"},"body":"Updates the requirements on [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) 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/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.41.2 (2024-03-22)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix breaking change introduced on SQLAlchemy 2.0.22 changes to \u003ccode\u003eattributes.AttributeImpl\u003c/code\u003e constructor (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/733\"\u003e#733\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.41.1 (2023-04-27)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse a custom SQL construct for refreshing materialized views in\n\u003ccode\u003erefresh_materialized_view\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/703\"\u003e#703\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.41.0 (2023-04-13)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport psycopg3 for \u003ccode\u003ecreate_database()\u003c/code\u003e and \u003ccode\u003edelete_database()\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/701\"\u003e#701\u003c/a\u003e, pull request by LerikP)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.40.0 (2023-02-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove Python 3.6 support\u003c/li\u003e\n\u003cli\u003eAdd SQLAlchemy 2 support\u003c/li\u003e\n\u003cli\u003eAdd comparison operator support for LTree type (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/668\"\u003e#668\u003c/a\u003e, pull request by salimfadhley)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.39.0 (2022-12-23)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.11.\u003c/li\u003e\n\u003cli\u003eAdd pre-commit hooks for uniform text checks, isort, flake8, and pyupgrade.\u003c/li\u003e\n\u003cli\u003eFix a crash that occurs if the \u003ccode\u003ecolour-science\u003c/code\u003e package is installed,\nwhich shares the same import name as the \u003ccode\u003ecolour\u003c/code\u003e package that sqlalchemy-utils supports.\n(\u003ccode\u003e[#637](https://github.com/kvesteri/sqlalchemy-utils/issues/637) \u0026lt;https://github.com/kvesteri/sqlalchemy-utils/pull/637\u0026gt;\u003c/code\u003e_, courtesy of JayPalm)\u003c/li\u003e\n\u003cli\u003eFix a crash that occurs if the installed sqlalchemy version is a beta (like \u003ccode\u003e\u0026quot;2.0.0b3\u0026quot;\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.34.0...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/jmessiass/devsecops/pull/20","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmessiass%2Fdevsecops/issues/20","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20/packages"}},{"old_version":"^0.41.2","new_version":"^0.42.0","update_type":"minor","path":null,"pr_created_at":"2025-09-15T14:04:45.000Z","version_change":"^0.41.2 → ^0.42.0","issue":{"uuid":"2829415676","node_id":"PR_kwDOJUdrNc6opXT8","number":60,"state":"open","title":"poetry prod(deps): update sqlalchemy-utils requirement from ^0.41.2 to ^0.42.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["mariofix"],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-15T14:04:45.000Z","updated_at":"2025-09-15T14:04:46.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"poetry prod(deps): update","packages":[{"name":"sqlalchemy-utils","old_version":"^0.41.2","new_version":"^0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) 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/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.41.2 (2024-03-22)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix breaking change introduced on SQLAlchemy 2.0.22 changes to \u003ccode\u003eattributes.AttributeImpl\u003c/code\u003e constructor (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/733\"\u003e#733\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.41.1 (2023-04-27)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse a custom SQL construct for refreshing materialized views in\n\u003ccode\u003erefresh_materialized_view\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/703\"\u003e#703\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.41.0 (2023-04-13)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport psycopg3 for \u003ccode\u003ecreate_database()\u003c/code\u003e and \u003ccode\u003edelete_database()\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/701\"\u003e#701\u003c/a\u003e, pull request by LerikP)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.40.0 (2023-02-12)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove Python 3.6 support\u003c/li\u003e\n\u003cli\u003eAdd SQLAlchemy 2 support\u003c/li\u003e\n\u003cli\u003eAdd comparison operator support for LTree type (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/668\"\u003e#668\u003c/a\u003e, pull request by salimfadhley)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.39.0 (2022-12-23)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.11.\u003c/li\u003e\n\u003cli\u003eAdd pre-commit hooks for uniform text checks, isort, flake8, and pyupgrade.\u003c/li\u003e\n\u003cli\u003eFix a crash that occurs if the \u003ccode\u003ecolour-science\u003c/code\u003e package is installed,\nwhich shares the same import name as the \u003ccode\u003ecolour\u003c/code\u003e package that sqlalchemy-utils supports.\n(\u003ccode\u003e[#637](https://github.com/kvesteri/sqlalchemy-utils/issues/637) \u0026lt;https://github.com/kvesteri/sqlalchemy-utils/pull/637\u0026gt;\u003c/code\u003e_, courtesy of JayPalm)\u003c/li\u003e\n\u003cli\u003eFix a crash that occurs if the installed sqlalchemy version is a beta (like \u003ccode\u003e\u0026quot;2.0.0b3\u0026quot;\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.2...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/mariofix/merchants/pull/60","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariofix%2Fmerchants/issues/60","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/60/packages"}},{"old_version":"0.41.2","new_version":"0.42.0","update_type":"minor","path":null,"pr_created_at":"2025-09-15T06:46:37.000Z","version_change":"0.41.2 → 0.42.0","issue":{"uuid":"2828018229","node_id":"PR_kwDOLzgXB86okCI1","number":602,"state":"closed","title":"Bump the allpip group across 1 directory with 14 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-22T06:21:25.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-15T06:46:37.000Z","updated_at":"2025-09-22T06:21:25.000Z","time_to_close":603288,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"allpip","update_count":14,"packages":[{"name":"alembic","old_version":"1.16.4","new_version":"1.16.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"pydantic","old_version":"2.11.7","new_version":"2.11.9","repository_url":"https://github.com/pydantic/pydantic"},{"name":"sqlalchemy-utils","old_version":"0.41.2","new_version":"0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"},{"name":"authlib","old_version":"1.6.2","new_version":"1.6.3","repository_url":"https://github.com/authlib/authlib"},{"name":"poetry","old_version":"2.1.4","new_version":"2.2.0","repository_url":"https://github.com/python-poetry/poetry"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-mock","old_version":"3.14.1","new_version":"3.15.0","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"coverage","old_version":"7.10.5","new_version":"7.10.6","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"playwright","old_version":"1.54.0","new_version":"1.55.0","repository_url":"https://github.com/microsoft/playwright-python"},{"name":"pytest-playwright","old_version":"0.7.0","new_version":"0.7.1","repository_url":"https://github.com/microsoft/playwright-pytest"},{"name":"ruff","old_version":"0.12.10","new_version":"0.13.0","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pyright","old_version":"1.1.404","new_version":"1.1.405","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"types-pyyaml","old_version":"6.0.12.20250822","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"pip"},"body":"Bumps the allpip group with 14 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.16.5` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.7` | `2.11.9` |\n| [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) | `0.41.2` | `0.42.0` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.2` | `1.6.3` |\n| [poetry](https://github.com/python-poetry/poetry) | `2.1.4` | `2.2.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.1.0` | `1.2.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.1` | `3.15.0` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.5` | `7.10.6` |\n| [playwright](https://github.com/microsoft/playwright-python) | `1.54.0` | `1.55.0` |\n| [pytest-playwright](https://github.com/microsoft/playwright-pytest) | `0.7.0` | `0.7.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.10` | `0.13.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.404` | `1.1.405` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20250822` | `6.0.12.20250915` |\n\n\nUpdates `alembic` from 1.16.4 to 1.16.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.16.5\u003c/h1\u003e\n\u003cp\u003eReleased: August 27, 2025\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [mysql]\u003c/strong\u003e Fixed Python-side autogenerate rendering of index expressions in MySQL\ndialect by aligning it with SQLAlchemy's MySQL index expression rules. Pull\nrequest courtesy david-fed.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1492\"\u003e#1492\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [config]\u003c/strong\u003e Fixed issue where new pyproject.toml config would fail to parse the integer\nvalue used for the \u003ccode\u003etruncate_slug_length\u003c/code\u003e parameter.  Pull request\ncourtesy Luís Henrique Allebrandt Schunemann.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1709\"\u003e#1709\u003c/a\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/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.11.7 to 2.11.9\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.11.9 2025-09-13\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBackport v1.10.23 changes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\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/pydantic/pydantic/compare/v2.11.8...v2.11.9\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.8...v2.11.9\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.8 2025-09-13\u003c/h2\u003e\n\u003ch2\u003ev2.11.8 (2025-09-13)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix mypy plugin for mypy 1.18 by \u003ca href=\"https://github.com/cdce8p\"\u003e\u003ccode\u003e@​cdce8p\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12209\"\u003e#12209\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.11.7...v2.11.8\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.8\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/pydantic/pydantic/blob/v2.11.9/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.9 (2025-09-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.9\"\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\u003eBackport v1.10.23 changes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.8 (2025-09-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.8\"\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 mypy plugin for mypy 1.18 by \u003ca href=\"https://github.com/cdce8p\"\u003e\u003ccode\u003e@​cdce8p\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12209\"\u003e#12209\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/pydantic/pydantic/commit/92310953c146a2ac668a0141be820c083e325f5d\"\u003e\u003ccode\u003e9231095\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f003a89eeaff35ee18f220a2c790d20536e3d0ab\"\u003e\u003ccode\u003ef003a89\u003c/code\u003e\u003c/a\u003e Backport v1.10.23 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/96b81ddaf93a1f2e19ff1609080c33de10b8d931\"\u003e\u003ccode\u003e96b81dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/966f377692194b3f1d6d5155ac78052bec0a751d\"\u003e\u003ccode\u003e966f377\u003c/code\u003e\u003c/a\u003e Fix mypy v2 plugin for upcoming \u003ccode\u003e1.18\u003c/code\u003e mypy release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy-utils` from 0.41.2 to 0.42.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.2...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `authlib` from 1.6.2 to 1.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/authlib/releases\"\u003eauthlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd diff-cover check in GHA by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/803\"\u003eauthlib/authlib#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun GHA unit tests with uv by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/805\"\u003eauthlib/authlib#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove from pre-commit to prek by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/804\"\u003eauthlib/authlib#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSign OIDC id_token  according to \u003ccode\u003eid_token_signed_response_alg\u003c/code\u003e client metadata by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/802\"\u003eauthlib/authlib#802\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.2...v1.6.3\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.2...v1.6.3\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/authlib/authlib/blob/main/docs/changelog.rst\"\u003eauthlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.3\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on Aug 26, 2025\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOIDC \u003ccode\u003eid_token\u003c/code\u003e are signed according to \u003ccode\u003eid_token_signed_response_alg\u003c/code\u003e\nclient metadata. :issue:\u003ccode\u003e755\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/authlib/authlib/commit/dbbfa9abcfe725001b452cf08d9e48be0ebfdce9\"\u003e\u003ccode\u003edbbfa9a\u003c/code\u003e\u003c/a\u003e chore: bump to 1.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/bc71165f79024efde3193a040e46f6fb01135ddf\"\u003e\u003ccode\u003ebc71165\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/802\"\u003e#802\u003c/a\u003e from azmeuk/755-idtoken-metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/40cfb4ea4cc8a4025b87ccf0a1549ed49134eebd\"\u003e\u003ccode\u003e40cfb4e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/804\"\u003e#804\u003c/a\u003e from azmeuk/prek\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/d99c771a8a81507a4a7f1792a905aa6ed977ed93\"\u003e\u003ccode\u003ed99c771\u003c/code\u003e\u003c/a\u003e chore: move from pre-commit to prek\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/83de6183e1c1cfa908167cc5f2eed6c50f0e348e\"\u003e\u003ccode\u003e83de618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/805\"\u003e#805\u003c/a\u003e from azmeuk/gha-uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/b72ee3fcdc293af22f0ffc4f7489d220f06ac93c\"\u003e\u003ccode\u003eb72ee3f\u003c/code\u003e\u003c/a\u003e chore: run GHA unit tests with uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/799fb2a3642f7ffb2620ba1ea87c6719ea356e83\"\u003e\u003ccode\u003e799fb2a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/803\"\u003e#803\u003c/a\u003e from azmeuk/diff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/2ce4c7e3ae8cd7c9bf951a3d1373fc34bd8496e7\"\u003e\u003ccode\u003e2ce4c7e\u003c/code\u003e\u003c/a\u003e chore: add diff-cover check in GHA\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/86b1b7877741e345793dbce5b45bff2e52ccfab3\"\u003e\u003ccode\u003e86b1b78\u003c/code\u003e\u003c/a\u003e fix: OIDC id_token is signed according to id_token_signed_response_alg client...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/0d03ee9dd758f95853356fa1eea3fbce37109eb0\"\u003e\u003ccode\u003e0d03ee9\u003c/code\u003e\u003c/a\u003e test: configure DJANGO_SETTINGS_MODULE with pytest-env\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.2...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `poetry` from 2.1.4 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-poetry/poetry/releases\"\u003epoetry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd support for nesting dependency groups\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10166\"\u003e#10166\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAdd support for PEP 735 dependency groups\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10130\"\u003e#10130\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAdd support for PEP 639 license clarity\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10413\"\u003e#10413\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003e--format\u003c/code\u003e option to \u003ccode\u003epoetry show\u003c/code\u003e to alternatively output json format (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10487\"\u003e#10487\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd official support for Python 3.14 (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10514\"\u003e#10514\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNormalize dependency group names\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10387\"\u003e#10387\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003einstaller.no-binary\u003c/code\u003e and \u003ccode\u003einstaller.only-binary\u003c/code\u003e so that explicit package names will take precedence over \u003ccode\u003e:all:\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10278\"\u003e#10278\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImprove log output during \u003ccode\u003epoetry install\u003c/code\u003e when a wheel is built from source (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10404\"\u003e#10404\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImprove error message in case a file lock could not be acquired while cloning a git repository (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10535\"\u003e#10535\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRequire \u003ccode\u003edulwich\u0026gt;=0.24.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10492\"\u003e#10492\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003evirtualenv\u0026gt;=20.33\u003c/code\u003e again (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10506\"\u003e#10506\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003efindpython\u0026gt;=0.7\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10510\"\u003e#10510\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eimportlib-metadata\u0026gt;=8.7\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10511\"\u003e#10511\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry new\u003c/code\u003e did not create the project structure in an existing empty directory (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10431\"\u003e#10431\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a dependency that was required for a specific Python version was not installed into an environment of a pre-release Python version (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10516\"\u003e#10516\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003epoetry-core (\u003ca href=\"https://github.com/python-poetry/poetry-core/releases/tag/2.2.0\"\u003e\u003ccode\u003e2.2.0\u003c/code\u003e\u003c/a\u003e)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate table values and values that are not valid SPDX expressions for \u003ccode\u003e[project.license]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry-core/pull/870\"\u003e#870\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where explicitly included files that are in \u003ccode\u003e.gitignore\u003c/code\u003e were not included in the distribution (\u003ca href=\"https://redirect.github.com/python-poetry/poetry-core/pull/874\"\u003e#874\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where marker operations could result in invalid markers (\u003ca href=\"https://redirect.github.com/python-poetry/poetry-core/pull/875\"\u003e#875\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/python-poetry/poetry/blob/main/CHANGELOG.md\"\u003epoetry's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.0] - 2025-09-14\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd support for nesting dependency groups\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10166\"\u003e#10166\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAdd support for PEP 735 dependency groups\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10130\"\u003e#10130\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAdd support for PEP 639 license clarity\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10413\"\u003e#10413\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003e--format\u003c/code\u003e option to \u003ccode\u003epoetry show\u003c/code\u003e to alternatively output json format (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10487\"\u003e#10487\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd official support for Python 3.14 (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10514\"\u003e#10514\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNormalize dependency group names\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10387\"\u003e#10387\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003einstaller.no-binary\u003c/code\u003e and \u003ccode\u003einstaller.only-binary\u003c/code\u003e so that explicit package names will take precedence over \u003ccode\u003e:all:\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10278\"\u003e#10278\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImprove log output during \u003ccode\u003epoetry install\u003c/code\u003e when a wheel is built from source (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10404\"\u003e#10404\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImprove error message in case a file lock could not be acquired while cloning a git repository (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10535\"\u003e#10535\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRequire \u003ccode\u003edulwich\u0026gt;=0.24.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10492\"\u003e#10492\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003evirtualenv\u0026gt;=20.33\u003c/code\u003e again (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10506\"\u003e#10506\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003efindpython\u0026gt;=0.7\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10510\"\u003e#10510\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eimportlib-metadata\u0026gt;=8.7\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10511\"\u003e#10511\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue where \u003ccode\u003epoetry new\u003c/code\u003e did not create the project structure in an existing empty directory (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10431\"\u003e#10431\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where a dependency that was required for a specific Python version was not installed into an environment of a pre-release Python version (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/pull/10516\"\u003e#10516\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003epoetry-core (\u003ca href=\"https://github.com/python-poetry/poetry-core/releases/tag/2.2.0\"\u003e\u003ccode\u003e2.2.0\u003c/code\u003e\u003c/a\u003e)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate table values and values that are not valid SPDX expressions for \u003ccode\u003e[project.license]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry-core/pull/870\"\u003e#870\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where explicitly included files that are in \u003ccode\u003e.gitignore\u003c/code\u003e were not included in the distribution (\u003ca href=\"https://redirect.github.com/python-poetry/poetry-core/pull/874\"\u003e#874\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix an issue where marker operations could result in invalid markers (\u003ca href=\"https://redirect.github.com/python-poetry/poetry-core/pull/875\"\u003e#875\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-poetry/poetry/commit/4dba0e1b041366b3f05bec89dca82e902e6386e8\"\u003e\u003ccode\u003e4dba0e1\u003c/code\u003e\u003c/a\u003e release: bump version to 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/057539958200133670a73d7e265f9eb5e9f52bc6\"\u003e\u003ccode\u003e0575399\u003c/code\u003e\u003c/a\u003e ensure Python 3.14 compatibility (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10514\"\u003e#10514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/651a8c0367b27ca38ea2bac8511866cf1a8f06d7\"\u003e\u003ccode\u003e651a8c0\u003c/code\u003e\u003c/a\u003e tests: make tests independent of currently available Python versions (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10547\"\u003e#10547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/19146aaac37974ca5a0554598243c6afce0e818b\"\u003e\u003ccode\u003e19146aa\u003c/code\u003e\u003c/a\u003e tests: fix deprecation warning (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10545\"\u003e#10545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/c0670950403ff9a2b30f08f1aabe52d88943e325\"\u003e\u003ccode\u003ec067095\u003c/code\u003e\u003c/a\u003e keep deprecation a little longer since it does not really hurt (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10544\"\u003e#10544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/251633510a75d4abc7db59f4e4c1f13d9b8388fc\"\u003e\u003ccode\u003e2516335\u003c/code\u003e\u003c/a\u003e docs: add \u003ccode\u003edependency-groups\u003c/code\u003e example with \u003ccode\u003einclude-group\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10543\"\u003e#10543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/985449a7e8af94d9ccd4b4e6290098eacf192daa\"\u003e\u003ccode\u003e985449a\u003c/code\u003e\u003c/a\u003e chore: update actions (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10542\"\u003e#10542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/bc536be5118ec4490bc76448c71a4fb900945668\"\u003e\u003ccode\u003ebc536be\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10377\"\u003e#10377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/74b645d68c8b86988f0e8711bd2a13dc9cf11536\"\u003e\u003ccode\u003e74b645d\u003c/code\u003e\u003c/a\u003e add: do not create empty [tool.poetry.group] sections when adding a dependenc...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/poetry/commit/41a7d220b8d2a31ae03072c0395464c4937e936c\"\u003e\u003ccode\u003e41a7d22\u003c/code\u003e\u003c/a\u003e fix remove if standard and poetry section is used (\u003ca href=\"https://redirect.github.com/python-poetry/poetry/issues/10130\"\u003e#10130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-poetry/poetry/compare/2.1.4...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 8.4.2\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\u003e8.4.2\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.2 (2025-09-03)\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/13478\"\u003e#13478\u003c/a\u003e: Fixed a crash when using \u003ccode\u003econsole_output_style\u003c/code\u003e{.interpreted-text role=\u0026quot;confval\u0026quot;} with \u003ccode\u003etimes\u003c/code\u003e and a module is skipped.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13530\"\u003e#13530\u003c/a\u003e: Fixed a crash when using \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and \u003ccode\u003edecimal.Decimal\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} instances with the \u003ccode\u003edecimal.FloatOperation\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} trap set.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13549\"\u003e#13549\u003c/a\u003e: No longer evaluate type annotations in Python \u003ccode\u003e3.14\u003c/code\u003e when inspecting function signatures.\u003c/p\u003e\n\u003cp\u003eThis prevents crashes during module collection when modules do not explicitly use \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e and import types for annotations within a \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13559\"\u003e#13559\u003c/a\u003e: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in \u003ccode\u003epytest.Parser.addini\u003c/code\u003e{.interpreted-text role=\u0026quot;meth\u0026quot;}.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13563\"\u003e#13563\u003c/a\u003e: \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now only imports \u003ccode\u003enumpy\u003c/code\u003e if NumPy is already in \u003ccode\u003esys.modules\u003c/code\u003e. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.\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/13577\"\u003e#13577\u003c/a\u003e: Clarify that \u003ccode\u003epytest_generate_tests\u003c/code\u003e is discovered in test modules/classes; other hooks must be in \u003ccode\u003econftest.py\u003c/code\u003e or plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13480\"\u003e#13480\u003c/a\u003e: Self-testing: fixed a few test failures when run with \u003ccode\u003e-Wdefault\u003c/code\u003e or a similar override.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13547\"\u003e#13547\u003c/a\u003e: Self-testing: corrected expected message for \u003ccode\u003etest_doctest_unexpected_exception\u003c/code\u003e in Python \u003ccode\u003e3.14\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13684\"\u003e#13684\u003c/a\u003e: Make pytest's own testsuite insensitive to the presence of the \u003ccode\u003eCI\u003c/code\u003e environment variable -- by \u003ccode\u003eogrisel\u003c/code\u003e{.interpreted-text role=\u0026quot;user\u0026quot;}.\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/bfae4224fd554d3d7f2c277a4cc092b6ec6af3ae\"\u003e\u003ccode\u003ebfae422\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/89905381a163be30ae87d62e5f750e902d750c5f\"\u003e\u003ccode\u003e8990538\u003c/code\u003e\u003c/a\u003e Fix passenv CI in tox ini and make tests insensitive to the presence of the C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ca676bfe005aebcb12f4146d1b0f1d2772e2cd5d\"\u003e\u003ccode\u003eca676bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13687\"\u003e#13687\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/e63f6e51c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/975a60a63ce385a44655596e254c1899feaa53e4\"\u003e\u003ccode\u003e975a60a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13686\"\u003e#13686\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/12bde8af6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7723ce84b87ab08f86ddafcb342acc28ba5ec99d\"\u003e\u003ccode\u003e7723ce8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13683\"\u003e#13683\u003c/a\u003e from even-even/fix_Exeption_to_Exception_in_errorMe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7f05680d1301e0969b30bcb3c4b27433c9ee2b7\"\u003e\u003ccode\u003eb7f0568\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13685\"\u003e#13685\u003c/a\u003e from CoretexShadow/fix/docs-pytest-generate-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2c94c4a6948ba53440818389298157fa5d5f94cd\"\u003e\u003ccode\u003e2c94c4a\u003c/code\u003e\u003c/a\u003e add missing colon (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13640\"\u003e#13640\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13641\"\u003e#13641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c3d7684bc01c8c48d05145a30c5211ca8656c68c\"\u003e\u003ccode\u003ec3d7684\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13606\"\u003e#13606\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/5f9938563...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/dc6e3be2ddc75a149b6d102d9b7c82ee47a00cfa\"\u003e\u003ccode\u003edc6e3be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13605\"\u003e#13605\u003c/a\u003e from The-Compiler/training-update-2025-07\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f87289c36c8dbe7740e3020f5546b6f8b0861ff0\"\u003e\u003ccode\u003ef87289c\u003c/code\u003e\u003c/a\u003e Fix crash with \u003ccode\u003etimes\u003c/code\u003e output style and skipped module (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13573\"\u003e#13573\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13579\"\u003e#13579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio 1.2.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.2.0\"\u003e1.2.0\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--asyncio-debug\u003c/code\u003e CLI option and \u003ccode\u003easyncio_debug\u003c/code\u003e configuration option to enable asyncio debug mode for the default event loop. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003epytest.UsageError\u003c/code\u003e for invalid configuration values of \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e and \u003ccode\u003easyncio_default_test_loop_scope\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1189\"\u003e#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCompatibility with the Pyright type checker (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRuntimeError: There is no current event loop in thread 'MainThread'\u003c/code\u003e when any test unsets the event loop (such as when using \u003ccode\u003easyncio.run\u003c/code\u003e and \u003ccode\u003easyncio.Runner\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1177\"\u003e#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning when decorating an asynchronous fixture with \u003ccode\u003e@pytest.fixture\u003c/code\u003e in [strict]{.title-ref} mode. The warning message now refers to the correct package. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the minimum required version of tox to v4.28. This change is only relevant if you use the \u003ccode\u003etox.ini\u003c/code\u003e file provided by pytest-asyncio to run tests.\u003c/li\u003e\n\u003cli\u003eExtend dependency on typing-extensions\u0026gt;=4.12 from Python\u0026lt;3.10 to Python\u0026lt;3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.1.1\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/v1.1.1\"\u003ev1.1.1\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cp\u003e- Addresses a build problem with setuptoos-scm \u0026gt;= 9 caused by invalid setuptools-scm configuration in pytest-asyncio. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1192\"\u003e#1192\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/pytest-dev/pytest-asyncio/commit/0d3988f5adc16e8b364266c9ecda42a36d5892ff\"\u003e\u003ccode\u003e0d3988f\u003c/code\u003e\u003c/a\u003e ci: Create GitHub release before publishing to PyPI.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/07c5a0b3e0bb99c7592ab87ed17a4bb2966fdf6a\"\u003e\u003ccode\u003e07c5a0b\u003c/code\u003e\u003c/a\u003e docs: Include orphaned news fragment in changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/be24582b86375b761534639be6c2941d0b3f116c\"\u003e\u003ccode\u003ebe24582\u003c/code\u003e\u003c/a\u003e chore: Prepare release of v1.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/7aeb296b9f95e57c371734dcb1d3ece3f7c81727\"\u003e\u003ccode\u003e7aeb296\u003c/code\u003e\u003c/a\u003e docs: Streamline news fragments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/7b8311cf1d2f67931f4fd9bbbe6d9f3b09572ebb\"\u003e\u003ccode\u003e7b8311c\u003c/code\u003e\u003c/a\u003e ci: Fixes a bug that prevented SSH signature from being stripped from release...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/9d4c2bd8770d4073e015213373975f217d3ac8f5\"\u003e\u003ccode\u003e9d4c2bd\u003c/code\u003e\u003c/a\u003e docs: Add changelog entry for Pyright compatibility.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/94f6106ea0c7ee716d7cf85377c653baa9cb7cd9\"\u003e\u003ccode\u003e94f6106\u003c/code\u003e\u003c/a\u003e test: Added tests which assert that the event loop is reinstated if unset by ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/df61991f1805f45ab31ae2d2fb73a54ff25ccd0c\"\u003e\u003ccode\u003edf61991\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/f1f7941691ff506ab553dfd6d00b09e8213eeff7\"\u003e\u003ccode\u003ef1f7941\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pytest from 8.4.1 to 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/c77d3d38f7adb41f5f6ea7b002da4e0f480c5c24\"\u003e\u003ccode\u003ec77d3d3\u003c/code\u003e\u003c/a\u003e Build(deps): Bump twine from 6.1.0 to 6.2.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v1.1.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-mock` from 3.14.1 to 3.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-mock/releases\"\u003epytest-mock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.15.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-04\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 (EOL) is no longer supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/pull/524\"\u003e#524\u003c/a\u003e: Added \u003ccode\u003espy_return_iter\u003c/code\u003e to \u003ccode\u003emocker.spy\u003c/code\u003e, which contains a duplicate of the return value of the spied method if it is an \u003ccode\u003eIterator\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst\"\u003epytest-mock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.15.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-04\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 (EOL) is no longer supported.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#524](https://github.com/pytest-dev/pytest-mock/issues/524) \u0026lt;https://github.com/pytest-dev/pytest-mock/pull/524\u0026gt;\u003c/code\u003e_: Added \u003ccode\u003espy_return_iter\u003c/code\u003e to \u003ccode\u003emocker.spy\u003c/code\u003e, which contains a duplicate of the return value of the spied method if it is an \u003ccode\u003eIterator\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/pytest-dev/pytest-mock/commit/90b29f89e2086c139a7b4fea89202faa192ee5a9\"\u003e\u003ccode\u003e90b29f8\u003c/code\u003e\u003c/a\u003e Update CHANGELOG for 3.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/53a6190b9c793f0b1801cd8b08afd58d3436bad6\"\u003e\u003ccode\u003e53a6190\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/5aa9e9cd7e0d25403c8d9d478bc3480bb5ca2456\"\u003e\u003ccode\u003e5aa9e9c\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003espy_return_iter\u003c/code\u003e attribute to \u003ccode\u003espy\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/dc6df75a91aad4980af1a711e42a2ade19960f36\"\u003e\u003ccode\u003edc6df75\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish in /.github/workflows (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/526\"\u003e#526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/b977d83d051390c5efd91b02884236ea5eba8ae4\"\u003e\u003ccode\u003eb977d83\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/bd66c9cb8b1ffc59b4d9e42a1b413bafa3a16eac\"\u003e\u003ccode\u003ebd66c9c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/f9e47b6e1685169972488391d8c2ba1d10e0901d\"\u003e\u003ccode\u003ef9e47b6\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/3aec7677f47f6c4b89dbdee9e4a32a8fe047943f\"\u003e\u003ccode\u003e3aec767\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/e09e5be3fcaa54102006b7c01add91ac33ebf9ed\"\u003e\u003ccode\u003ee09e5be\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/ba83a70ff9c15c0b8534e7f1a7c6ba5321aea046\"\u003e\u003ccode\u003eba83a70\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-mock/compare/v3.14.1...v3.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.5 to 7.10.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.6 — 2025-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003esource\u003c/code\u003e directories were not properly communicated to subprocesses\nthat ran in different directories, as reported in \u003ccode\u003eissue 1499\u003c/code\u003e_.  This is now\nfixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: \u003ccode\u003eAlex Gaynor continues fine-tuning \u0026lt;pull 2038_\u0026gt;\u003c/code\u003e_ the speed of\ncombination, especially with many contexts.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1499: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003enedbat/coveragepy#1499\u003c/a\u003e\n.. _pull 2038: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2038\"\u003enedbat/coveragepy#2038\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-5:\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/nedbat/coveragepy/commit/88c55ff87437f7e59b42d131d0e2b6ce413546bf\"\u003e\u003ccode\u003e88c55ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/01d89959bfa825f661121e0f8d173f3ae1ecedac\"\u003e\u003ccode\u003e01d8995\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9b0c24ffc17840464c2343b702a6ee44e10fcadf\"\u003e\u003ccode\u003e9b0c24f\u003c/code\u003e\u003c/a\u003e docs: thanks Alex \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/66d69108654f6fc1de916a37fc06ac898091aa2d\"\u003e\u003ccode\u003e66d6910\u003c/code\u003e\u003c/a\u003e fix: make \u003ccode\u003esource\u003c/code\u003e paths absolute where they exist. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bb3382f50f2b91aebb046d665334a5d361e5ddc5\"\u003e\u003ccode\u003ebb3382f\u003c/code\u003e\u003c/a\u003e build: no need for the combine/html times now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ea349a164527832a49faa3eeec628d59ef75c7c\"\u003e\u003ccode\u003e9ea349a\u003c/code\u003e\u003c/a\u003e lab: warn_executed.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/808c9b48af3ad7b567182d383eb31451615664e0\"\u003e\u003ccode\u003e808c9b4\u003c/code\u003e\u003c/a\u003e build: changing metacov.ini should trigger metacov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/384f5f22bd1ef52000d80922de03922a58ff936c\"\u003e\u003ccode\u003e384f5f2\u003c/code\u003e\u003c/a\u003e build: oops, some 'if's are really line pragmas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a7224af73365ba2d217f0e0966c7873c5bac3a67\"\u003e\u003ccode\u003ea7224af\u003c/code\u003e\u003c/a\u003e perf: pre-compute the mapping between other_db.context and main.context (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5c00c5ba4bcd4f7da6a9f0ccd0797e0944415e8a\"\u003e\u003ccode\u003e5c00c5b\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.10.5...7.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `playwright` from 1.54.0 to 1.55.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.55.0\u003c/h2\u003e\n\u003ch2\u003eCodegen\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatic \u003ccode\u003eto_be_visible()\u003c/code\u003e assertions: Codegen can now generate automatic \u003ccode\u003eto_be_visible()\u003c/code\u003e assertions for common UI interactions. This feature can be enabled in the Codegen settings UI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ Dropped support for Chromium extension manifest v2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Debian 13 \u0026quot;Trixie\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBrowser Versions\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChromium 140.0.7339.16\u003c/li\u003e\n\u003cli\u003eMozilla Firefox 141.0\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 139\u003c/li\u003e\n\u003cli\u003eMicrosoft Edge 139\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/microsoft/playwright-python/commit/4a03d717fa82f1daed6d5f1dab505e8cd06aa8f2\"\u003e\u003ccode\u003e4a03d71\u003c/code\u003e\u003c/a\u003e chore(roll): roll Playwright to 1.55.0-beta-1756314050000 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2960\"\u003e#2960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/3cbe13e58a4a20b4b3aaa1afbdc69747a7c37933\"\u003e\u003ccode\u003e3cbe13e\u003c/code\u003e\u003c/a\u003e chore: roll to 1.55.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2956\"\u003e#2956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/254aabddf3a68c9385cc9e363d2b61fa4bba777d\"\u003e\u003ccode\u003e254aabd\u003c/code\u003e\u003c/a\u003e fix: screenshot type inferred from path file extension (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/1be34f206e1b57cf94cbb295158f75860f744e9c\"\u003e\u003ccode\u003e1be34f2\u003c/code\u003e\u003c/a\u003e fix: timeout option support with fetch api (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2947\"\u003e#2947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/6e9ff7a80f02db4e0ccdb87efadbf543a0c3ceb9\"\u003e\u003ccode\u003e6e9ff7a\u003c/code\u003e\u003c/a\u003e test: unflake cr tracing test (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2942\"\u003e#2942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/e49496e7a803b2fd05e5a7e814db4c0af8962743\"\u003e\u003ccode\u003ee49496e\u003c/code\u003e\u003c/a\u003e build(deps): bump types-requests from 2.32.4.20250611 to 2.32.4.20250809 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2941\"\u003e#2941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/d33a807492c0a944186bc37dd5d71d57e1c36901\"\u003e\u003ccode\u003ed33a807\u003c/code\u003e\u003c/a\u003e build(deps): bump greenlet from 3.2.3 to 3.2.4 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/5cc395e9214b5ebb32ca8629d6905e53824978b5\"\u003e\u003ccode\u003e5cc395e\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5 in the actions group (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/8963460fffe065bfeb58a162f6e35fc8e3e65d4d\"\u003e\u003ccode\u003e8963460\u003c/code\u003e\u003c/a\u003e build(deps): bump build from 1.2.2.post1 to 1.3.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2937\"\u003e#2937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/3fea01e81a33f1ef31e271bdda78d398f18e87be\"\u003e\u003ccode\u003e3fea01e\u003c/code\u003e\u003c/a\u003e test: unflake test_context_add_cookies_should_work (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright-python/compare/v1.54.0...v1.55.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.7.0 to 0.7.1\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.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\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/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\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/364145f3b56749a72ffa57efc9804768d84291f8\"\u003e\u003ccode\u003e364145f\u003c/code\u003e\u003c/a\u003e chore(deps): bump django from 4.2.21 to 4.2.22 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/44fa0cdea251b240245fe776c214de16165b1bc4\"\u003e\u003ccode\u003e44fa0cd\u003c/code\u003e\u003c/a\u003e chore(deps): bump django from 4.2.20 to 4.2.21 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/277\"\u003e#277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/020d641995f5eea618e0e22ccddd696697c63ae3\"\u003e\u003ccode\u003e020d641\u003c/code\u003e\u003c/a\u003e chore: bump pytest-asyncio to v1.0.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/c9e392b90c8bffbbe398c3db30de6daa96972d96\"\u003e\u003ccode\u003ec9e392b\u003c/code\u003e\u003c/a\u003e test: fix Chromium tests on Windows (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-pytest/commit/67f7ea36f3857e6ef42ada69a01d43ee2c109db2\"\u003e\u003ccode\u003e67f7ea3\u003c/code\u003e\u003c/a\u003e chore(deps): bump django from 4.2.18 to 4.2.20 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-pytest/issues/274\"\u003e#274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright-pytest/compare/v0.7.0...v0.7.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.12.10 to 0.13.0\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.13.0\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eCheck out the \u003ca href=\"https://astral.sh/blog/ruff-v0.13.0\"\u003eblog post\u003c/a\u003e for a migration guide and overview of the changes!\u003c/p\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSeveral rules can now add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e automatically\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e, \u003ccode\u003eRUF013\u003c/code\u003e, and \u003ccode\u003eUP037\u003c/code\u003e now add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e as part of their fixes when the \u003ccode\u003elint.future-annotations\u003c/code\u003e setting is enabled. This allows the rules to move more imports into \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e blocks (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, and \u003ccode\u003eTC003\u003c/code\u003e), use PEP 604 union syntax on Python versions before 3.10 (\u003ccode\u003eRUF013\u003c/code\u003e), and unquote more annotations (\u003ccode\u003eUP037\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFull module paths are now used to verify first-party modules\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff now checks that the full path to a module exists on disk before categorizing it as a first-party import. This change makes first-party import detection more accurate, helping to avoid false positives on local directories with the same name as a third-party dependency, for example. See the \u003ca href=\"https://docs.astral.sh/ruff/faq/#how-does-ruff-determine-which-of-my-imports-are-first-party-third-party-etc\"\u003eFAQ section\u003c/a\u003e on import categorization for more details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecated rules must now be selected by exact rule code\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff will no longer activate deprecated rules selected by their group name or prefix. As noted below, the two remaining deprecated rules were also removed in this release, so this won't affect any current rules, but it will still affect any deprecations in the future.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eThe deprecated macOS configuration directory fallback has been removed\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff will no longer look for a user-level configuration file at \u003ccode\u003e~/Library/Application Support/ruff/ruff.toml\u003c/code\u003e on macOS. This feature was deprecated in v0.5 in favor of using the \u003ca href=\"https://specifications.freedesktop.org/basedir-spec/latest/\"\u003eXDG specification\u003c/a\u003e (usually resolving to \u003ccode\u003e~/.config/ruff/ruff.toml\u003c/code\u003e), like on Linux. The fallback and accompanying deprecation warning have now been removed.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved Rules\u003c/h3\u003e\n\u003cp\u003eThe following rules have been removed:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/pandas-df-variable-name\"\u003e\u003ccode\u003epandas-df-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePD901\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/non-pep604-isinstance\"\u003e\u003ccode\u003enon-pep604-isinstance\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eUP038\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStabilization\u003c/h3\u003e\n\u003cp\u003eThe following rules have been stabilized and are no longer in preview:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow-dag-no-schedule-argument\"\u003e\u003ccode\u003eairflow-dag-no-schedule-argument\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR002\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow3-removal\"\u003e\u003ccode\u003eairflow3-removal\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR301\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow3-moved-to-provider\"\u003e\u003ccode\u003eairflow3-moved-to-provider\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR302\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow3-suggested-update\"\u003e\u003ccode\u003eairflow3-suggested-update\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR311\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow3-suggested-to-move-to-provider\"\u003e\u003ccode\u003eairflow3-suggested-to-move-to-provider\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR312\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/long-sleep-not-forever\"\u003e\u003ccode\u003elong-sleep-not-forever\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eASYNC116\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/f-string-number-format\"\u003e\u003ccode\u003ef-string-number-format\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eFURB116\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/os-symlink\"\u003e\u003ccode\u003eos-symlink\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePTH211\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/generic-not-last-base-class\"\u003e\u003ccode\u003egeneric-not-last-base-class\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePYI059\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/redundant-none-literal\"\u003e\u003ccode\u003eredundant-none-literal\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePYI061\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/pytest-raises-ambiguous-pattern\"\u003e\u003ccode\u003epytest-raises-ambiguous-pattern\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eRUF043\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/unused-unpacked-variable\"\u003e\u003ccode\u003eunused-unpacked-variable\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eRUF059\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-class-metaclass-type\"\u003e\u003ccode\u003euseless-class-metaclass-type\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eUP050\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following behaviors have been stabilized:\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/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.13.0\u003c/h2\u003e\n\u003cp\u003eCheck out the \u003ca href=\"https://astral.sh/blog/ruff-v0.13.0\"\u003eblog post\u003c/a\u003e for a migration\nguide and overview of the changes!\u003c/p\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSeveral rules can now add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e automatically\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e, \u003ccode\u003eRUF013\u003c/code\u003e, and \u003ccode\u003eUP037\u003c/code\u003e now add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e as part of their fixes when the\n\u003ccode\u003elint.future-annotations\u003c/code\u003e setting is enabled. This allows the rules to move\nmore imports into \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e blocks (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, and \u003ccode\u003eTC003\u003c/code\u003e),\nuse PEP 604 union syntax on Python versions before 3.10 (\u003ccode\u003eRUF013\u003c/code\u003e), and\nunquote more annotations (\u003ccode\u003eUP037\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFull module paths are now used to verify first-party modules\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff now checks that the full path to a module exists on disk before\ncategorizing it as a first-party import. This change makes first-party\nimport detection more accurate, helping to avoid false positives on local\ndirectories with the same name as a third-party dependency, for example. See\nthe \u003ca href=\"https://docs.astral.sh/ruff/faq/#how-does-ruff-determine-which-of-my-imports-are-first-party-third-party-etc\"\u003eFAQ\nsection\u003c/a\u003e on import categorization for more details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecated rules must now be selected by exact rule code\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff will no longer activate deprecated rules selected by their group name\nor prefix. As noted below, the two remaining deprecated rules were also\nremoved in this release, so this won't affect any current rules, but it will\nstill affect any deprecations in the future.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eThe deprecated macOS configuration directory fallback has been removed\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff will no longer look for a user-level configuration file at\n\u003ccode\u003e~/Library/Application Support/ruff/ruff.toml\u003c/code\u003e on macOS. This feature was\ndeprecated in v0.5 in favor of using the \u003ca href=\"https://specifications.freedesktop.org/basedir-spec/latest/\"\u003eXDG\nspecification\u003c/a\u003e\n(usually resolving to \u003ccode\u003e~/.config/ruff/ruff.toml\u003c/code\u003e), like on Linux. The\nfallback and accompanying deprecation warning have now been removed.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved Rules\u003c/h3\u003e\n\u003cp\u003eThe following rules have been removed:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/pandas-df-variable-name\"\u003e\u003ccode\u003epandas-df-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePD901\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/non-pep604-isinstance\"\u003e\u003ccode\u003enon-pep604-isinstance\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eUP038\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStabilization\u003c/h3\u003e\n\u003cp\u003eThe following rules have been stabilized and are no longer in preview:\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/astral-sh/ruff/commit/a1fdd66f10a045a574efb20e422868b21decda40\"\u003e\u003ccode\u003ea1fdd66\u003c/code\u003e\u003c/a\u003e Bump 0.13.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20336\"\u003e#20336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8770b95509b7a5a3b23061d739e6260303613f55\"\u003e\u003ccode\u003e8770b95\u003c/code\u003e\u003c/a\u003e [ty] introduce \u003ccode\u003eDivergentType\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20312\"\u003e#20312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/65982a1e14a15449ea0ed5cf66b7f9dea6d3e82c\"\u003e\u003ccode\u003e65982a1\u003c/code\u003e\u003c/a\u003e [ty] Use 'unknown' specialization for upper bound on Self (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/57d1f7132dbac82e07f22560dbedba7cff1dadc4\"\u003e\u003ccode\u003e57d1f71\u003c/code\u003e\u003c/a\u003e [ty] Simplify unions of enum literals and subtypes thereof (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20324\"\u003e#20324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7a75702237e6f0bc605d3d8e9470c4ca9f37c69e\"\u003e\u003ccode\u003e7a75702\u003c/code\u003e\u003c/a\u003e Ignore deprecated rules unless selected by exact code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20167\"\u003e#20167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9ca632c84fef6ecb7fc810cacb0df801c7949c70\"\u003e\u003ccode\u003e9ca632c\u003c/code\u003e\u003c/a\u003e Stabilize adding future import via config option (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20277\"\u003e#20277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/64fe7d30a3ac9444eab1ed397c451b6c6e80bc6f\"\u003e\u003ccode\u003e64fe7d3\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-errmsg\u003c/code\u003e] Stabilize extending \u003ccode\u003eraw-string-in-exception\u003c/code\u003e (\u003ccode\u003eEM101\u003c/code\u003e) to ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/beeeb8d5c5c8dabea2b11b0b8ed0f3c12dbf22c7\"\u003e\u003ccode\u003ebeeeb8d\u003c/code\u003e\u003c/a\u003e Stabilize the remaining Airflow rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20250\"\u003e#20250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b6fca52855d01dd40904386f5b8a6d4a17caae11\"\u003e\u003ccode\u003eb6fca52\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Stabilize support for non-context-manager calls in `assert...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ac7f882c78db09700bf6bccefe0e9a27fb1696b9\"\u003e\u003ccode\u003eac7f882\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-commas\u003c/code\u003e] Stabilize support for trailing comma checks in type paramet...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.12.10...0.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` from 1.1.404 to 1.1.405\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/e211ec8df8d389a147af6d31bdb2bc812f04aa5a\"\u003e\u003ccode\u003ee211ec8\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.405 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.404...v1.1.405\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-pyyaml` from 6.0.12.20250822 to 6.0.12.20250915\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typeshed-internal/stub_uploader/commits\"\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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/MinBZK/amt/pull/602","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinBZK%2Famt/issues/602","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/602/packages"}},{"old_version":"0.41.2","new_version":"0.42.0","update_type":"minor","path":null,"pr_created_at":"2025-09-09T09:05:32.000Z","version_change":"0.41.2 → 0.42.0","issue":{"uuid":"2811104876","node_id":"PR_kwDOIPi0HM6njg5s","number":366,"state":"open","title":"build(deps): bump sqlalchemy-utils from 0.41.2 to 0.42.0","user":"dependabot[bot]","labels":["dependencies","python","Changed"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-09T09:05:32.000Z","updated_at":"2025-09-09T09:05:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"sqlalchemy-utils","old_version":"0.41.2","new_version":"0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.41.2 to 0.42.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.2...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.41.2\u0026new-version=0.42.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Chia-Network/climate-token-driver/pull/366","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chia-Network%2Fclimate-token-driver/issues/366","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/366/packages"}},{"old_version":"0.41.2","new_version":"0.42.0","update_type":"minor","path":null,"pr_created_at":"2025-09-08T16:34:51.000Z","version_change":"0.41.2 → 0.42.0","issue":{"uuid":"3394901846","node_id":"PR_kwDOMqijUM6na-7H","number":177,"state":"open","title":"Bump the action-deps group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","python","backend"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-08T16:34:51.000Z","updated_at":"2025-09-15T16:42:12.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"action-deps","update_count":5,"packages":[{"name":"flask","old_version":"3.1.1","new_version":"3.1.2","repository_url":"https://github.com/pallets/flask"},{"name":"sqlalchemy-utils","old_version":"0.41.2","new_version":"0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"},{"name":"redis","old_version":"6.2.0","new_version":"6.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"sqlalchemy","old_version":"2.0.41","new_version":"2.0.43","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the action-deps group with 5 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [flask](https://github.com/pallets/flask) | `3.1.1` | `3.1.2` |\n| [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) | `0.41.2` | `0.42.0` |\n| [redis](https://github.com/redis/redis-py) | `6.2.0` | `6.4.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.41` | `2.0.43` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n\n\nUpdates `flask` from 3.1.1 to 3.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.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/Flask/3.1.2/\"\u003ehttps://pypi.org/project/Flask/3.1.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-2\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/38?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/38?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5774\"\u003e#5774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state of \u003ccode\u003esession\u003c/code\u003e is correct. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5786\"\u003e#5786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5776\"\u003e#5776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-08-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. :issue:\u003ccode\u003e5774\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state\nof \u003ccode\u003esession\u003c/code\u003e is correct. :issue:\u003ccode\u003e5786\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. :issue:\u003ccode\u003e5776\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/2c1b30d0503cfb064f1cb252e6614a06915a362a\"\u003e\u003ccode\u003e2c1b30d\u003c/code\u003e\u003c/a\u003e release version 3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/1292419ddfc6a14fc7f85b5ed7efcc2d215f1ad3\"\u003e\u003ccode\u003e1292419\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5795\"\u003e#5795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4dd52ca9c768c9b6d04180f0547d6f4b6e34f211\"\u003e\u003ccode\u003e4dd52ca\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/55c62556571ee46a94da174643b50ece06edead4\"\u003e\u003ccode\u003e55c6255\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/d8259eb11900285af9b80b0fa47f841174c054e3\"\u003e\u003ccode\u003ed8259eb\u003c/code\u003e\u003c/a\u003e use Jinja name consistently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/38b4c1e19b50494cfcdc9332899e09b7fed34979\"\u003e\u003ccode\u003e38b4c1e\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5799\"\u003e#5799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/9822a0351574790cb66c652fcc396ad7aa2b09d8\"\u003e\u003ccode\u003e9822a03\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/49b7e7bc8fb69d605719991d1c0a99fcee689053\"\u003e\u003ccode\u003e49b7e7b\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5798\"\u003e#5798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/b228ca3d87745b746d904a2108429617a814ffda\"\u003e\u003ccode\u003eb228ca3\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ff64079a516c269f171ababf3d92b86886a62ffd\"\u003e\u003ccode\u003eff64079\u003c/code\u003e\u003c/a\u003e update flask-talisman link\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.1.1...3.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy-utils` from 0.41.2 to 0.42.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.2...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 6.2.0 to 6.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/htemelski-redis\"\u003e\u003ccode\u003e@​htemelski-redis\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/elena-kolevska\"\u003e\u003ccode\u003e@​elena-kolevska\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for new BITOP operations: DIFF, DIFF1, ANDOR, ONE (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3690\"\u003e#3690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport new VAMANA vector index type (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3702\"\u003e#3702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixing sentinel command execution to allow returning of actual responses when meaningful - behaviour controlled by 'return_responses' argument. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3191\"\u003e#3191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAnnotate deprecated_args decorator to preserve wrapped function type signature (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3701\"\u003e#3701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3560\"\u003e#3560\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3601\"\u003e#3601\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: avoid instantiating a connection on \u003cem\u003erepr\u003c/em\u003e_ (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3653\"\u003e#3653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing the return type hint for the transaction method in the standalone client. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3660\"\u003e#3660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.48.0 to 0.49.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3665\"\u003e#3665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropping integration tests with Redis 6.2 from pipeline actions. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated arg from call to ClusterPipeline (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3670\"\u003e#3670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTransactionStrategy reset: UNWATCH only when status is watching (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKeyT for set operations (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3190\"\u003e#3190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving references to old docs site '\u003ca href=\"https://redis-py.readthedocs.io/\"\u003ehttps://redis-py.readthedocs.io/\u003c/a\u003e' replaced by '\u003ca href=\"https://redis.readthedocs.io/\"\u003ehttps://redis.readthedocs.io/\u003c/a\u003e' (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3674\"\u003e#3674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving unnecessary check for tests using AsyncMock (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3432\"\u003e#3432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating test images for github pipeline execution (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3678\"\u003e#3678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating the latest Redis image for pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3695\"\u003e#3695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.49.0 to 0.51.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3689\"\u003e#3689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5225 testable probabilistic dt examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3691\"\u003e#3691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate README.md (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3699\"\u003e#3699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConvert the value to int type only if it exists in CLIENT INFO (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3688\"\u003e#3688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding information in connection pool class doc string for available SSLConnection class, that can be used for SSL connections (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3710\"\u003e#3710\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/redis/redis-py/commit/fff669daaf43ae8092ea8ab7a2a3196a9b1b7e41\"\u003e\u003ccode\u003efff669d\u003c/code\u003e\u003c/a\u003e Updated package version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/43ce2a4025c020bd26e401371c16ca4920b470a5\"\u003e\u003ccode\u003e43ce2a4\u003c/code\u003e\u003c/a\u003e Updating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/64426cbdd43153b70b0e29d9d7b3ab2c63760359\"\u003e\u003ccode\u003e64426cb\u003c/code\u003e\u003c/a\u003e Added epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/67ab74d705b4c1d00d600c500596af7a68abfd56\"\u003e\u003ccode\u003e67ab74d\u003c/code\u003e\u003c/a\u003e Add new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4c9512b1fe592dc9becebe9e5f053b0184b47f2c\"\u003e\u003ccode\u003e4c9512b\u003c/code\u003e\u003c/a\u003e Adding information in connection pool class doc string for available SSLConne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/31399ed43588840bbbfdbbf0e8260d1b989b49ce\"\u003e\u003ccode\u003e31399ed\u003c/code\u003e\u003c/a\u003e SentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7291deb5eb8054a0dc915a8bf499a17498bc5968\"\u003e\u003ccode\u003e7291deb\u003c/code\u003e\u003c/a\u003e add async Retry \u003ccode\u003e__eq__\u003c/code\u003e and \u003ccode\u003e__hash__\u003c/code\u003e \u0026amp; fix ExponentialWithJitterBackof...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4cf094fdd2c1f2ce335e671af3fad7ad0a48f309\"\u003e\u003ccode\u003e4cf094f\u003c/code\u003e\u003c/a\u003e Fix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a00141618572764821bbe6bd74e025536e061587\"\u003e\u003ccode\u003ea001416\u003c/code\u003e\u003c/a\u003e DOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2b1ff5363715c8ba0043314a8b4bcbbc1ba741f5\"\u003e\u003ccode\u003e2b1ff53\u003c/code\u003e\u003c/a\u003e Fix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v6.2.0...v6.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.41 to 2.0.43\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.43\u003c/h1\u003e\n\u003cp\u003eReleased: August 11, 2025\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003epost_update\u003c/code\u003e feature would apply incorrect\n\u0026quot;pre-fetched\u0026quot; values to the ORM objects after a multi-row UPDATE process\ncompleted.  These \u0026quot;pre-fetched\u0026quot; values would come from any column that had\nan \u003ccode\u003eColumn.onupdate\u003c/code\u003e callable or a version id generator used by\n\u003ccode\u003eorm.Mapper.version_id_generator\u003c/code\u003e; for a version id generator\nthat delivered random identifiers like timestamps or UUIDs, this incorrect\ndata would lead to a DELETE statement against those same rows to fail in\nthe next step.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12748\"\u003e#12748\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.mapped_column.use_existing_column\u003c/code\u003e\nparameter in \u003ccode\u003e_orm.mapped_column()\u003c/code\u003e would not work when the\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e is used inside of an \u003ccode\u003eAnnotated\u003c/code\u003e type alias in\npolymorphic inheritance scenarios. The parameter is now properly recognized\nand processed during declarative mapping configuration.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12787\"\u003e#12787\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Improved the implementation of the \u003ccode\u003e_orm.selectin_polymorphic()\u003c/code\u003e\ninheritance loader strategy to properly render the IN expressions using\nchunks of 500 records each, in the same manner as that of the\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e relationship loader strategy.  Previously, the IN\nexpression would be arbitrarily large, leading to failures on databases\nthat have limits on the size of IN expressions including Oracle Database.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12790\"\u003e#12790\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [usecase]\u003c/strong\u003e Added new parameter \u003ccode\u003ecreate_engine.skip_autocommit_rollback\u003c/code\u003e\nwhich provides for a per-dialect feature of preventing the DBAPI\n\u003ccode\u003e.rollback()\u003c/code\u003e from being called under any circumstances, if the\nconnection is detected as being in \u0026quot;autocommit\u0026quot; mode.   This improves upon\na critical performance issue identified in MySQL dialects where the network\noverhead of the \u003ccode\u003e.rollback()\u003c/code\u003e call remains prohibitive even if autocommit\nmode is set.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12784\"\u003e#12784\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 8.4.2\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\u003e8.4.2\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.2 (2025-09-03)\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/13478\"\u003e#13478\u003c/a\u003e: Fixed a crash when using \u003ccode\u003econsole_output_style\u003c/code\u003e{.interpreted-text role=\u0026quot;confval\u0026quot;} with \u003ccode\u003etimes\u003c/code\u003e and a module is skipped.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13530\"\u003e#13530\u003c/a\u003e: Fixed a crash when using \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and \u003ccode\u003edecimal.Decimal\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} instances with the \u003ccode\u003edecimal.FloatOperation\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} trap set.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13549\"\u003e#13549\u003c/a\u003e: No longer evaluate type annotations in Python \u003ccode\u003e3.14\u003c/code\u003e when inspecting function signatures.\u003c/p\u003e\n\u003cp\u003eThis prevents crashes during module collection when modules do not explicitly use \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e and import types for annotations within a \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13559\"\u003e#13559\u003c/a\u003e: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in \u003ccode\u003epytest.Parser.addini\u003c/code\u003e{.interpreted-text role=\u0026quot;meth\u0026quot;}.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13563\"\u003e#13563\u003c/a\u003e: \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now only imports \u003ccode\u003enumpy\u003c/code\u003e if NumPy is already in \u003ccode\u003esys.modules\u003c/code\u003e. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.\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/13577\"\u003e#13577\u003c/a\u003e: Clarify that \u003ccode\u003epytest_generate_tests\u003c/code\u003e is discovered in test modules/classes; other hooks must be in \u003ccode\u003econftest.py\u003c/code\u003e or plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13480\"\u003e#13480\u003c/a\u003e: Self-testing: fixed a few test failures when run with \u003ccode\u003e-Wdefault\u003c/code\u003e or a similar override.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13547\"\u003e#13547\u003c/a\u003e: Self-testing: corrected expected message for \u003ccode\u003etest_doctest_unexpected_exception\u003c/code\u003e in Python \u003ccode\u003e3.14\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13684\"\u003e#13684\u003c/a\u003e: Make pytest's own testsuite insensitive to the presence of the \u003ccode\u003eCI\u003c/code\u003e environment variable -- by \u003ccode\u003eogrisel\u003c/code\u003e{.interpreted-text role=\u0026quot;user\u0026quot;}.\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/bfae4224fd554d3d7f2c277a4cc092b6ec6af3ae\"\u003e\u003ccode\u003ebfae422\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/89905381a163be30ae87d62e5f750e902d750c5f\"\u003e\u003ccode\u003e8990538\u003c/code\u003e\u003c/a\u003e Fix passenv CI in tox ini and make tests insensitive to the presence of the C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ca676bfe005aebcb12f4146d1b0f1d2772e2cd5d\"\u003e\u003ccode\u003eca676bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13687\"\u003e#13687\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/e63f6e51c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/975a60a63ce385a44655596e254c1899feaa53e4\"\u003e\u003ccode\u003e975a60a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13686\"\u003e#13686\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/12bde8af6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7723ce84b87ab08f86ddafcb342acc28ba5ec99d\"\u003e\u003ccode\u003e7723ce8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13683\"\u003e#13683\u003c/a\u003e from even-even/fix_Exeption_to_Exception_in_errorMe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7f05680d1301e0969b30bcb3c4b27433c9ee2b7\"\u003e\u003ccode\u003eb7f0568\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13685\"\u003e#13685\u003c/a\u003e from CoretexShadow/fix/docs-pytest-generate-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2c94c4a6948ba53440818389298157fa5d5f94cd\"\u003e\u003ccode\u003e2c94c4a\u003c/code\u003e\u003c/a\u003e add missing colon (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13640\"\u003e#13640\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13641\"\u003e#13641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c3d7684bc01c8c48d05145a30c5211ca8656c68c\"\u003e\u003ccode\u003ec3d7684\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13606\"\u003e#13606\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/5f9938563...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/dc6e3be2ddc75a149b6d102d9b7c82ee47a00cfa\"\u003e\u003ccode\u003edc6e3be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13605\"\u003e#13605\u003c/a\u003e from The-Compiler/training-update-2025-07\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f87289c36c8dbe7740e3020f5546b6f8b0861ff0\"\u003e\u003ccode\u003ef87289c\u003c/code\u003e\u003c/a\u003e Fix crash with \u003ccode\u003etimes\u003c/code\u003e output style and skipped module (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13573\"\u003e#13573\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13579\"\u003e#13579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...8.4.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/zakerby/python-react-template/pull/177","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/zakerby%2Fpython-react-template/issues/177","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/177/packages"}},{"old_version":"0.41.2","new_version":"0.42.0","update_type":"minor","path":null,"pr_created_at":"2025-09-08T13:52:39.000Z","version_change":"0.41.2 → 0.42.0","issue":{"uuid":"2808365416","node_id":"PR_kwDONRyVrs6nZEFo","number":37,"state":"open","title":"deps(deps): bump sqlalchemy-utils from 0.41.2 to 0.42.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-08T13:52:39.000Z","updated_at":"2025-09-08T13:52:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps)","packages":[{"name":"sqlalchemy-utils","old_version":"0.41.2","new_version":"0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.41.2 to 0.42.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.2...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.41.2\u0026new-version=0.42.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/WRLC/azure-web-app-vfs/pull/37","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/WRLC%2Fazure-web-app-vfs/issues/37","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/37/packages"}},{"old_version":"0.41.1","new_version":"0.42.0","update_type":"minor","path":"/backend","pr_created_at":"2025-09-08T10:17:17.000Z","version_change":"0.41.1 → 0.42.0","issue":{"uuid":"3393561567","node_id":"PR_kwDOPX-0Ac6nWcOH","number":23,"state":"closed","title":"deps(backend)(deps-dev): bump sqlalchemy-utils from 0.41.1 to 0.42.0 in /backend","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-09-13T03:15:25.000Z","author_association":"NONE","state_reason":null,"created_at":"2025-09-08T10:17:17.000Z","updated_at":"2025-09-13T03:15:25.000Z","time_to_close":406688,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(backend)(deps-dev)","packages":[{"name":"sqlalchemy-utils","old_version":"0.41.1","new_version":"0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.41.1 to 0.42.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.41.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix breaking change introduced on SQLAlchemy 2.0.22 changes to \u003ccode\u003eattributes.AttributeImpl\u003c/code\u003e constructor (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/733\"\u003e#733\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.41.2 (2024-03-22)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix breaking change introduced on SQLAlchemy 2.0.22 changes to \u003ccode\u003eattributes.AttributeImpl\u003c/code\u003e constructor (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/733\"\u003e#733\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.1...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.41.1\u0026new-version=0.42.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/jonathan-nascimento51/glpi_dashboard/pull/23","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathan-nascimento51%2Fglpi_dashboard/issues/23","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/23/packages"}},{"old_version":"0.41.1","new_version":"0.42.0","update_type":"minor","path":"/backend","pr_created_at":"2025-09-08T10:06:19.000Z","version_change":"0.41.1 → 0.42.0","issue":{"uuid":"2807642424","node_id":"PR_kwDOPZCRoM6nWTk4","number":54,"state":"open","title":"chore(backend): Bump sqlalchemy-utils from 0.41.1 to 0.42.0 in /backend","user":"dependabot[bot]","labels":["backend"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-09-08T10:06:19.000Z","updated_at":"2025-09-08T10:06:20.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(backend): Bump","packages":[{"name":"sqlalchemy-utils","old_version":"0.41.1","new_version":"0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) from 0.41.1 to 0.42.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.41.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix breaking change introduced on SQLAlchemy 2.0.22 changes to \u003ccode\u003eattributes.AttributeImpl\u003c/code\u003e constructor (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/733\"\u003e#733\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.41.2 (2024-03-22)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix breaking change introduced on SQLAlchemy 2.0.22 changes to \u003ccode\u003eattributes.AttributeImpl\u003c/code\u003e constructor (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/733\"\u003e#733\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.1...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sqlalchemy-utils\u0026package-manager=pip\u0026previous-version=0.41.1\u0026new-version=0.42.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/isaacbuz/GoldenSignalsV5/pull/54","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaacbuz%2FGoldenSignalsV5/issues/54","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/54/packages"}},{"old_version":"0.41.2","new_version":"0.42.0","update_type":"minor","path":null,"pr_created_at":"2025-09-08T06:23:36.000Z","version_change":"0.41.2 → 0.42.0","issue":{"uuid":"3392790406","node_id":"PR_kwDOLzgXB86nT2O8","number":599,"state":"open","title":"Bump the allpip group with 9 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-08T06:23:36.000Z","updated_at":"2025-09-15T06:17:22.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"allpip","update_count":9,"packages":[{"name":"alembic","old_version":"1.16.4","new_version":"1.16.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"sqlalchemy-utils","old_version":"0.41.2","new_version":"0.42.0","repository_url":"https://github.com/kvesteri/sqlalchemy-utils"},{"name":"authlib","old_version":"1.6.2","new_version":"1.6.3","repository_url":"https://github.com/authlib/authlib"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-mock","old_version":"3.14.1","new_version":"3.15.0","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"coverage","old_version":"7.10.5","new_version":"7.10.6","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"playwright","old_version":"1.54.0","new_version":"1.55.0","repository_url":"https://github.com/microsoft/playwright-python"},{"name":"ruff","old_version":"0.12.10","new_version":"0.12.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pyright","old_version":"1.1.404","new_version":"1.1.405","repository_url":"https://github.com/RobertCraigie/pyright-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the allpip group with 9 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.16.5` |\n| [sqlalchemy-utils](https://github.com/kvesteri/sqlalchemy-utils) | `0.41.2` | `0.42.0` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.2` | `1.6.3` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.1` | `3.15.0` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.5` | `7.10.6` |\n| [playwright](https://github.com/microsoft/playwright-python) | `1.54.0` | `1.55.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.10` | `0.12.12` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.404` | `1.1.405` |\n\nUpdates `alembic` from 1.16.4 to 1.16.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.16.5\u003c/h1\u003e\n\u003cp\u003eReleased: August 27, 2025\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [mysql]\u003c/strong\u003e Fixed Python-side autogenerate rendering of index expressions in MySQL\ndialect by aligning it with SQLAlchemy's MySQL index expression rules. Pull\nrequest courtesy david-fed.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1492\"\u003e#1492\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [config]\u003c/strong\u003e Fixed issue where new pyproject.toml config would fail to parse the integer\nvalue used for the \u003ccode\u003etruncate_slug_length\u003c/code\u003e parameter.  Pull request\ncourtesy Luís Henrique Allebrandt Schunemann.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1709\"\u003e#1709\u003c/a\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy-utils` from 0.41.2 to 0.42.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/releases\"\u003esqlalchemy-utils's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/blob/master/CHANGES.rst\"\u003esqlalchemy-utils's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.42.0 (2025-08-30)\n^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eDrop support for sqlalchemy 1.3.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12 and 3.13.\u003c/li\u003e\n\u003cli\u003eAdd a Read the Docs configuration file.\u003c/li\u003e\n\u003cli\u003eMake documentation builds reproducible.\u003c/li\u003e\n\u003cli\u003eTest documentation builds in CI.\u003c/li\u003e\n\u003cli\u003eFix Pendulum parsing of datetime instances with timezones. (\u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate package metadata to PEP 621 format in pyproject.toml\u003c/li\u003e\n\u003cli\u003eMigrate to \u003ccode\u003eruff \u0026lt;https://docs.astral.sh/ruff/\u0026gt;\u003c/code\u003e_ for code linting and formatting, replacing flake8 and isort with a faster Rust-based tool.\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/kvesteri/sqlalchemy-utils/commit/2cd4b00338152f5fd1596e22b5cdb7f1d4107a30\"\u003e\u003ccode\u003e2cd4b00\u003c/code\u003e\u003c/a\u003e Release 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/be118cc5bec5d92f85be37a1a57f96841850f63d\"\u003e\u003ccode\u003ebe118cc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/9de23250229cd953f2aabe3c5127b10b6ba6ddaa\"\u003e\u003ccode\u003e9de2325\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/97496667d111bb34577220079531134b38ddfb2e\"\u003e\u003ccode\u003e9749666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/788\"\u003e#788\u003c/a\u003e from kurtmckee/use-pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/cf767be4ef28483a14388a4eac7b02992266ecca\"\u003e\u003ccode\u003ecf767be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kvesteri/sqlalchemy-utils/issues/787\"\u003e#787\u003c/a\u003e from kurtmckee/update-docs-builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/12e1784431b5b9241e11609b7d1e49deb4212911\"\u003e\u003ccode\u003e12e1784\u003c/code\u003e\u003c/a\u003e Run \u003ccode\u003epre-commit run -a\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/1e4ec91fe604bf657220af99e8d192bc3ec967ed\"\u003e\u003ccode\u003e1e4ec91\u003c/code\u003e\u003c/a\u003e Add pyupgrade as a pre-commit hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/f9ee4a4777467566f4c7cf95a3563f0adf9008ac\"\u003e\u003ccode\u003ef9ee4a4\u003c/code\u003e\u003c/a\u003e Resolve \u0026quot;unknown interpreted text role\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/2cb371fd74b2f5b272ff1df7e04ca649ea0adab1\"\u003e\u003ccode\u003e2cb371f\u003c/code\u003e\u003c/a\u003e Fix doc build errors (autodoc needs sqlalchemy-utils importable)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/commit/c52e14f9229fa6253cd0214585b2c3b24171a493\"\u003e\u003ccode\u003ec52e14f\u003c/code\u003e\u003c/a\u003e Update the Read the Docs OS and Python versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kvesteri/sqlalchemy-utils/compare/0.41.2...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `authlib` from 1.6.2 to 1.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/authlib/releases\"\u003eauthlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd diff-cover check in GHA by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/803\"\u003eauthlib/authlib#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun GHA unit tests with uv by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/805\"\u003eauthlib/authlib#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove from pre-commit to prek by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/804\"\u003eauthlib/authlib#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSign OIDC id_token  according to \u003ccode\u003eid_token_signed_response_alg\u003c/code\u003e client metadata by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/802\"\u003eauthlib/authlib#802\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.2...v1.6.3\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.2...v1.6.3\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/authlib/authlib/blob/main/docs/changelog.rst\"\u003eauthlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.3\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on Aug 26, 2025\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOIDC \u003ccode\u003eid_token\u003c/code\u003e are signed according to \u003ccode\u003eid_token_signed_response_alg\u003c/code\u003e\nclient metadata. :issue:\u003ccode\u003e755\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/authlib/authlib/commit/dbbfa9abcfe725001b452cf08d9e48be0ebfdce9\"\u003e\u003ccode\u003edbbfa9a\u003c/code\u003e\u003c/a\u003e chore: bump to 1.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/bc71165f79024efde3193a040e46f6fb01135ddf\"\u003e\u003ccode\u003ebc71165\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/802\"\u003e#802\u003c/a\u003e from azmeuk/755-idtoken-metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/40cfb4ea4cc8a4025b87ccf0a1549ed49134eebd\"\u003e\u003ccode\u003e40cfb4e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/804\"\u003e#804\u003c/a\u003e from azmeuk/prek\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/d99c771a8a81507a4a7f1792a905aa6ed977ed93\"\u003e\u003ccode\u003ed99c771\u003c/code\u003e\u003c/a\u003e chore: move from pre-commit to prek\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/83de6183e1c1cfa908167cc5f2eed6c50f0e348e\"\u003e\u003ccode\u003e83de618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/805\"\u003e#805\u003c/a\u003e from azmeuk/gha-uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/b72ee3fcdc293af22f0ffc4f7489d220f06ac93c\"\u003e\u003ccode\u003eb72ee3f\u003c/code\u003e\u003c/a\u003e chore: run GHA unit tests with uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/799fb2a3642f7ffb2620ba1ea87c6719ea356e83\"\u003e\u003ccode\u003e799fb2a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/803\"\u003e#803\u003c/a\u003e from azmeuk/diff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/2ce4c7e3ae8cd7c9bf951a3d1373fc34bd8496e7\"\u003e\u003ccode\u003e2ce4c7e\u003c/code\u003e\u003c/a\u003e chore: add diff-cover check in GHA\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/86b1b7877741e345793dbce5b45bff2e52ccfab3\"\u003e\u003ccode\u003e86b1b78\u003c/code\u003e\u003c/a\u003e fix: OIDC id_token is signed according to id_token_signed_response_alg client...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/0d03ee9dd758f95853356fa1eea3fbce37109eb0\"\u003e\u003ccode\u003e0d03ee9\u003c/code\u003e\u003c/a\u003e test: configure DJANGO_SETTINGS_MODULE with pytest-env\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.2...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 8.4.2\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\u003e8.4.2\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.2 (2025-09-03)\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/13478\"\u003e#13478\u003c/a\u003e: Fixed a crash when using \u003ccode\u003econsole_output_style\u003c/code\u003e{.interpreted-text role=\u0026quot;confval\u0026quot;} with \u003ccode\u003etimes\u003c/code\u003e and a module is skipped.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13530\"\u003e#13530\u003c/a\u003e: Fixed a crash when using \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and \u003ccode\u003edecimal.Decimal\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} instances with the \u003ccode\u003edecimal.FloatOperation\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} trap set.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13549\"\u003e#13549\u003c/a\u003e: No longer evaluate type annotations in Python \u003ccode\u003e3.14\u003c/code\u003e when inspecting function signatures.\u003c/p\u003e\n\u003cp\u003eThis prevents crashes during module collection when modules do not explicitly use \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e and import types for annotations within a \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13559\"\u003e#13559\u003c/a\u003e: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in \u003ccode\u003epytest.Parser.addini\u003c/code\u003e{.interpreted-text role=\u0026quot;meth\u0026quot;}.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13563\"\u003e#13563\u003c/a\u003e: \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now only imports \u003ccode\u003enumpy\u003c/code\u003e if NumPy is already in \u003ccode\u003esys.modules\u003c/code\u003e. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.\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/13577\"\u003e#13577\u003c/a\u003e: Clarify that \u003ccode\u003epytest_generate_tests\u003c/code\u003e is discovered in test modules/classes; other hooks must be in \u003ccode\u003econftest.py\u003c/code\u003e or plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13480\"\u003e#13480\u003c/a\u003e: Self-testing: fixed a few test failures when run with \u003ccode\u003e-Wdefault\u003c/code\u003e or a similar override.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13547\"\u003e#13547\u003c/a\u003e: Self-testing: corrected expected message for \u003ccode\u003etest_doctest_unexpected_exception\u003c/code\u003e in Python \u003ccode\u003e3.14\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13684\"\u003e#13684\u003c/a\u003e: Make pytest's own testsuite insensitive to the presence of the \u003ccode\u003eCI\u003c/code\u003e environment variable -- by \u003ccode\u003eogrisel\u003c/code\u003e{.interpreted-text role=\u0026quot;user\u0026quot;}.\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/bfae4224fd554d3d7f2c277a4cc092b6ec6af3ae\"\u003e\u003ccode\u003ebfae422\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/89905381a163be30ae87d62e5f750e902d750c5f\"\u003e\u003ccode\u003e8990538\u003c/code\u003e\u003c/a\u003e Fix passenv CI in tox ini and make tests insensitive to the presence of the C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ca676bfe005aebcb12f4146d1b0f1d2772e2cd5d\"\u003e\u003ccode\u003eca676bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13687\"\u003e#13687\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/e63f6e51c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/975a60a63ce385a44655596e254c1899feaa53e4\"\u003e\u003ccode\u003e975a60a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13686\"\u003e#13686\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/12bde8af6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7723ce84b87ab08f86ddafcb342acc28ba5ec99d\"\u003e\u003ccode\u003e7723ce8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13683\"\u003e#13683\u003c/a\u003e from even-even/fix_Exeption_to_Exception_in_errorMe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7f05680d1301e0969b30bcb3c4b27433c9ee2b7\"\u003e\u003ccode\u003eb7f0568\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13685\"\u003e#13685\u003c/a\u003e from CoretexShadow/fix/docs-pytest-generate-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2c94c4a6948ba53440818389298157fa5d5f94cd\"\u003e\u003ccode\u003e2c94c4a\u003c/code\u003e\u003c/a\u003e add missing colon (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13640\"\u003e#13640\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13641\"\u003e#13641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c3d7684bc01c8c48d05145a30c5211ca8656c68c\"\u003e\u003ccode\u003ec3d7684\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13606\"\u003e#13606\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/5f9938563...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/dc6e3be2ddc75a149b6d102d9b7c82ee47a00cfa\"\u003e\u003ccode\u003edc6e3be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13605\"\u003e#13605\u003c/a\u003e from The-Compiler/training-update-2025-07\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f87289c36c8dbe7740e3020f5546b6f8b0861ff0\"\u003e\u003ccode\u003ef87289c\u003c/code\u003e\u003c/a\u003e Fix crash with \u003ccode\u003etimes\u003c/code\u003e output style and skipped module (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13573\"\u003e#13573\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13579\"\u003e#13579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-mock` from 3.14.1 to 3.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-mock/releases\"\u003epytest-mock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.15.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-04\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 (EOL) is no longer supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/pull/524\"\u003e#524\u003c/a\u003e: Added \u003ccode\u003espy_return_iter\u003c/code\u003e to \u003ccode\u003emocker.spy\u003c/code\u003e, which contains a duplicate of the return value of the spied method if it is an \u003ccode\u003eIterator\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst\"\u003epytest-mock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.15.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-04\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 (EOL) is no longer supported.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#524](https://github.com/pytest-dev/pytest-mock/issues/524) \u0026lt;https://github.com/pytest-dev/pytest-mock/pull/524\u0026gt;\u003c/code\u003e_: Added \u003ccode\u003espy_return_iter\u003c/code\u003e to \u003ccode\u003emocker.spy\u003c/code\u003e, which contains a duplicate of the return value of the spied method if it is an \u003ccode\u003eIterator\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/pytest-dev/pytest-mock/commit/90b29f89e2086c139a7b4fea89202faa192ee5a9\"\u003e\u003ccode\u003e90b29f8\u003c/code\u003e\u003c/a\u003e Update CHANGELOG for 3.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/53a6190b9c793f0b1801cd8b08afd58d3436bad6\"\u003e\u003ccode\u003e53a6190\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/5aa9e9cd7e0d25403c8d9d478bc3480bb5ca2456\"\u003e\u003ccode\u003e5aa9e9c\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003espy_return_iter\u003c/code\u003e attribute to \u003ccode\u003espy\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/dc6df75a91aad4980af1a711e42a2ade19960f36\"\u003e\u003ccode\u003edc6df75\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish in /.github/workflows (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/526\"\u003e#526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/b977d83d051390c5efd91b02884236ea5eba8ae4\"\u003e\u003ccode\u003eb977d83\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/bd66c9cb8b1ffc59b4d9e42a1b413bafa3a16eac\"\u003e\u003ccode\u003ebd66c9c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/f9e47b6e1685169972488391d8c2ba1d10e0901d\"\u003e\u003ccode\u003ef9e47b6\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/3aec7677f47f6c4b89dbdee9e4a32a8fe047943f\"\u003e\u003ccode\u003e3aec767\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/e09e5be3fcaa54102006b7c01add91ac33ebf9ed\"\u003e\u003ccode\u003ee09e5be\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/ba83a70ff9c15c0b8534e7f1a7c6ba5321aea046\"\u003e\u003ccode\u003eba83a70\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-mock/compare/v3.14.1...v3.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.5 to 7.10.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.6 — 2025-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003esource\u003c/code\u003e directories were not properly communicated to subprocesses\nthat ran in different directories, as reported in \u003ccode\u003eissue 1499\u003c/code\u003e_.  This is now\nfixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: \u003ccode\u003eAlex Gaynor continues fine-tuning \u0026lt;pull 2038_\u0026gt;\u003c/code\u003e_ the speed of\ncombination, especially with many contexts.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1499: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003enedbat/coveragepy#1499\u003c/a\u003e\n.. _pull 2038: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2038\"\u003enedbat/coveragepy#2038\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-5:\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/nedbat/coveragepy/commit/88c55ff87437f7e59b42d131d0e2b6ce413546bf\"\u003e\u003ccode\u003e88c55ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/01d89959bfa825f661121e0f8d173f3ae1ecedac\"\u003e\u003ccode\u003e01d8995\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9b0c24ffc17840464c2343b702a6ee44e10fcadf\"\u003e\u003ccode\u003e9b0c24f\u003c/code\u003e\u003c/a\u003e docs: thanks Alex \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/66d69108654f6fc1de916a37fc06ac898091aa2d\"\u003e\u003ccode\u003e66d6910\u003c/code\u003e\u003c/a\u003e fix: make \u003ccode\u003esource\u003c/code\u003e paths absolute where they exist. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bb3382f50f2b91aebb046d665334a5d361e5ddc5\"\u003e\u003ccode\u003ebb3382f\u003c/code\u003e\u003c/a\u003e build: no need for the combine/html times now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ea349a164527832a49faa3eeec628d59ef75c7c\"\u003e\u003ccode\u003e9ea349a\u003c/code\u003e\u003c/a\u003e lab: warn_executed.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/808c9b48af3ad7b567182d383eb31451615664e0\"\u003e\u003ccode\u003e808c9b4\u003c/code\u003e\u003c/a\u003e build: changing metacov.ini should trigger metacov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/384f5f22bd1ef52000d80922de03922a58ff936c\"\u003e\u003ccode\u003e384f5f2\u003c/code\u003e\u003c/a\u003e build: oops, some 'if's are really line pragmas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a7224af73365ba2d217f0e0966c7873c5bac3a67\"\u003e\u003ccode\u003ea7224af\u003c/code\u003e\u003c/a\u003e perf: pre-compute the mapping between other_db.context and main.context (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5c00c5ba4bcd4f7da6a9f0ccd0797e0944415e8a\"\u003e\u003ccode\u003e5c00c5b\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.10.5...7.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `playwright` from 1.54.0 to 1.55.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.55.0\u003c/h2\u003e\n\u003ch2\u003eCodegen\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatic \u003ccode\u003eto_be_visible()\u003c/code\u003e assertions: Codegen can now generate automatic \u003ccode\u003eto_be_visible()\u003c/code\u003e assertions for common UI interactions. This feature can be enabled in the Codegen settings UI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ Dropped support for Chromium extension manifest v2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Debian 13 \u0026quot;Trixie\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBrowser Versions\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChromium 140.0.7339.16\u003c/li\u003e\n\u003cli\u003eMozilla Firefox 141.0\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 139\u003c/li\u003e\n\u003cli\u003eMicrosoft Edge 139\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/microsoft/playwright-python/commit/4a03d717fa82f1daed6d5f1dab505e8cd06aa8f2\"\u003e\u003ccode\u003e4a03d71\u003c/code\u003e\u003c/a\u003e chore(roll): roll Playwright to 1.55.0-beta-1756314050000 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2960\"\u003e#2960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/3cbe13e58a4a20b4b3aaa1afbdc69747a7c37933\"\u003e\u003ccode\u003e3cbe13e\u003c/code\u003e\u003c/a\u003e chore: roll to 1.55.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2956\"\u003e#2956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/254aabddf3a68c9385cc9e363d2b61fa4bba777d\"\u003e\u003ccode\u003e254aabd\u003c/code\u003e\u003c/a\u003e fix: screenshot type inferred from path file extension (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/1be34f206e1b57cf94cbb295158f75860f744e9c\"\u003e\u003ccode\u003e1be34f2\u003c/code\u003e\u003c/a\u003e fix: timeout option support with fetch api (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2947\"\u003e#2947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/6e9ff7a80f02db4e0ccdb87efadbf543a0c3ceb9\"\u003e\u003ccode\u003e6e9ff7a\u003c/code\u003e\u003c/a\u003e test: unflake cr tracing test (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2942\"\u003e#2942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/e49496e7a803b2fd05e5a7e814db4c0af8962743\"\u003e\u003ccode\u003ee49496e\u003c/code\u003e\u003c/a\u003e build(deps): bump types-requests from 2.32.4.20250611 to 2.32.4.20250809 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2941\"\u003e#2941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/d33a807492c0a944186bc37dd5d71d57e1c36901\"\u003e\u003ccode\u003ed33a807\u003c/code\u003e\u003c/a\u003e build(deps): bump greenlet from 3.2.3 to 3.2.4 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/5cc395e9214b5ebb32ca8629d6905e53824978b5\"\u003e\u003ccode\u003e5cc395e\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5 in the actions group (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/8963460fffe065bfeb58a162f6e35fc8e3e65d4d\"\u003e\u003ccode\u003e8963460\u003c/code\u003e\u003c/a\u003e build(deps): bump build from 1.2.2.post1 to 1.3.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2937\"\u003e#2937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-python/commit/3fea01e81a33f1ef31e271bdda78d398f18e87be\"\u003e\u003ccode\u003e3fea01e\u003c/code\u003e\u003c/a\u003e test: unflake test_context_add_cookies_should_work (\u003ca href=\"https://redirect.github.com/microsoft/playwright-python/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright-python/compare/v1.54.0...v1.55.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.12.10 to 0.12.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.12.12\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow fixes by default (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19919\"\u003e#19919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Convert \u003ccode\u003eDatasetOrTimeSchedule(datasets=...)\u003c/code\u003e to \u003ccode\u003eAssetOrTimeSchedule(assets=...)\u003c/code\u003e (\u003ccode\u003eAIR311\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20202\"\u003e#20202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Improve the \u003ccode\u003eAIR002\u003c/code\u003e error message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20173\"\u003e#20173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Move \u003ccode\u003eairflow.operators.postgres_operator.Mapping\u003c/code\u003e from \u003ccode\u003eAIR302\u003c/code\u003e to \u003ccode\u003eAIR301\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20172\"\u003e#20172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-input\u003c/code\u003e rule (\u003ccode\u003eASYNC250\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20122\"\u003e#20122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make \u003ccode\u003ePTH119\u003c/code\u003e and \u003ccode\u003ePTH120\u003c/code\u003e fixes unsafe because they can change behavior (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20118\"\u003e#20118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Add U+061C to \u003ccode\u003ePLE2502\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20106\"\u003e#20106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix false negative for empty f-strings in \u003ccode\u003edeque\u003c/code\u003e calls (\u003ccode\u003eRUF037\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20109\"\u003e#20109\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLess confidently mark f-strings as empty when inferring truthiness (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20152\"\u003e#20152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003efastapi\u003c/code\u003e] Fix false positive for paths with spaces around parameters (\u003ccode\u003eFAST003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20077\"\u003e#20077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e when lambda contains \u003ccode\u003eyield\u003c/code\u003e/\u003ccode\u003eyield from\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20201\"\u003e#20201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Handle tuples in dictionary comprehensions (\u003ccode\u003ePERF403\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19934\"\u003e#19934\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Preserve return type annotation for \u003ccode\u003eParamSpec\u003c/code\u003e (\u003ccode\u003eE731\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20108\"\u003e#20108\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fix safety sections to docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/17490\"\u003e#17490\u003c/a\u003e,\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/17499\"\u003e#17499\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/11happy\"\u003e\u003ccode\u003e@​11happy\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/BurntSushi\"\u003e\u003ccode\u003e@​BurntSushi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Gankra\"\u003e\u003ccode\u003e@​Gankra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kalmaegi\"\u003e\u003ccode\u003e@​Kalmaegi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MatthewMckee4\"\u003e\u003ccode\u003e@​MatthewMckee4\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrettyWood\"\u003e\u003ccode\u003e@​PrettyWood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Renkai\"\u003e\u003ccode\u003e@​Renkai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShaharNaveh\"\u003e\u003ccode\u003e@​ShaharNaveh\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/carljm\"\u003e\u003ccode\u003e@​carljm\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/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dcreager\"\u003e\u003ccode\u003e@​dcreager\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dhruvmanila\"\u003e\u003ccode\u003e@​dhruvmanila\u003c/code\u003e\u003c/a\u003e\u003c/li\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/github-actions\"\u003e\u003ccode\u003e@​github-actions\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.12.12\u003c/h2\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow fixes by default (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19919\"\u003e#19919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Convert \u003ccode\u003eDatasetOrTimeSchedule(datasets=...)\u003c/code\u003e to \u003ccode\u003eAssetOrTimeSchedule(assets=...)\u003c/code\u003e (\u003ccode\u003eAIR311\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20202\"\u003e#20202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Improve the \u003ccode\u003eAIR002\u003c/code\u003e error message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20173\"\u003e#20173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Move \u003ccode\u003eairflow.operators.postgres_operator.Mapping\u003c/code\u003e from \u003ccode\u003eAIR302\u003c/code\u003e to \u003ccode\u003eAIR301\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20172\"\u003e#20172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-input\u003c/code\u003e rule (\u003ccode\u003eASYNC250\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20122\"\u003e#20122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make \u003ccode\u003ePTH119\u003c/code\u003e and \u003ccode\u003ePTH120\u003c/code\u003e fixes unsafe because they can change behavior (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20118\"\u003e#20118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Add U+061C to \u003ccode\u003ePLE2502\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20106\"\u003e#20106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix false negative for empty f-strings in \u003ccode\u003edeque\u003c/code\u003e calls (\u003ccode\u003eRUF037\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20109\"\u003e#20109\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLess confidently mark f-strings as empty when inferring truthiness (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20152\"\u003e#20152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003efastapi\u003c/code\u003e] Fix false positive for paths with spaces around parameters (\u003ccode\u003eFAST003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20077\"\u003e#20077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e when lambda contains \u003ccode\u003eyield\u003c/code\u003e/\u003ccode\u003eyield from\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20201\"\u003e#20201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Handle tuples in dictionary comprehensions (\u003ccode\u003ePERF403\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19934\"\u003e#19934\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Preserve return type annotation for \u003ccode\u003eParamSpec\u003c/code\u003e (\u003ccode\u003eE731\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20108\"\u003e#20108\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fix safety sections to docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/17490\"\u003e#17490\u003c/a\u003e,\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/17499\"\u003e#17499\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.12.11\u003c/h2\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Extend \u003ccode\u003eAIR311\u003c/code\u003e and \u003ccode\u003eAIR312\u003c/code\u003e rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20082\"\u003e#20082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Replace wrong path \u003ccode\u003eairflow.io.storage\u003c/code\u003e with \u003ccode\u003eairflow.io.store\u003c/code\u003e (\u003ccode\u003eAIR311\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20081\"\u003e#20081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-http-call-httpx-in-async-function\u003c/code\u003e (\u003ccode\u003eASYNC212\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20091\"\u003e#20091\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging-format\u003c/code\u003e] Add auto-fix for f-string logging calls (\u003ccode\u003eG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19303\"\u003e#19303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Add autofix for \u003ccode\u003ePTH211\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20009\"\u003e#20009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make \u003ccode\u003ePTH100\u003c/code\u003e fix unsafe because it can change behavior (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20100\"\u003e#20100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e, \u003ccode\u003epylint\u003c/code\u003e] Fix false positives caused by \u003ccode\u003e__class__\u003c/code\u003e cell handling (\u003ccode\u003eF841\u003c/code\u003e, \u003ccode\u003ePLE0117\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20048\"\u003e#20048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Fix \u003ccode\u003eallowed-unused-imports\u003c/code\u003e matching for top-level modules (\u003ccode\u003eF401\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20115\"\u003e#20115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix false positive for t-strings in \u003ccode\u003edefault-factory-kwarg\u003c/code\u003e (\u003ccode\u003eRUF026\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20032\"\u003e#20032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Preserve relative whitespace in multi-line expressions (\u003ccode\u003eRUF033\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19647\"\u003e#19647\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] Handle empty t-strings in \u003ccode\u003eunnecessary-empty-iterable-within-deque-call\u003c/code\u003e (\u003ccode\u003eRUF037\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20045\"\u003e#20045\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/c6516e9b60e7b8d3d60b1e3a0fb0db04b533de54\"\u003e\u003ccode\u003ec6516e9\u003c/code\u003e\u003c/a\u003e Bump 0.12.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20242\"\u003e#20242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1aaa0847abdebfe910513b1c883977a996da2db5\"\u003e\u003ccode\u003e1aaa084\u003c/code\u003e\u003c/a\u003e [ty] More tests for TypedDict (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20205\"\u003e#20205\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b49aa3507472a92b492de0fc924eff2c4bad4248\"\u003e\u003ccode\u003eb49aa35\u003c/code\u003e\u003c/a\u003e Split LICENSE addendum by derivation type (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20222\"\u003e#20222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1e34f3f20a71a4375ba64faad43f21171e3829cd\"\u003e\u003ccode\u003e1e34f3f\u003c/code\u003e\u003c/a\u003e [ty] Fix small test typo (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20220\"\u003e#20220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/77b2cee2233620636e03f547337ff805415c7465\"\u003e\u003ccode\u003e77b2cee\u003c/code\u003e\u003c/a\u003e [ty] Add functions for revealing assignability/subtyping constraints (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20217\"\u003e#20217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/200349c6e84d04a8e0d986488f7991b17b747964\"\u003e\u003ccode\u003e200349c\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e when lambda contains \u003ccode\u003eyield\u003c/code\u003e/`yield fro...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0d4f7dde9967704767d8515aadcf8c94353dde35\"\u003e\u003ccode\u003e0d4f7dd\u003c/code\u003e\u003c/a\u003e [ty] Treat \u003ccode\u003e__new__\u003c/code\u003e as a static method (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20212\"\u003e#20212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/cb1ba0d4c26dd649bfab9de7ae0e84c0e28e910c\"\u003e\u003ccode\u003ecb1ba0d\u003c/code\u003e\u003c/a\u003e Expose \u003ccode\u003eIndentation\u003c/code\u003e in \u003ccode\u003eruff_python_codegen\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20216\"\u003e#20216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/cda376afe079b54b6779704bdd740c9e81423e39\"\u003e\u003ccode\u003ecda376a\u003c/code\u003e\u003c/a\u003e [ty]eliminate definitely-impossible types from union in equality narrowing (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b14fc961413c5ca032fdfdff29fcc6be4f9c8a75\"\u003e\u003ccode\u003eb14fc96\u003c/code\u003e\u003c/a\u003e Update Rust crate tracing-subscriber to v0.3.20 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20162\"\u003e#20162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.12.10...0.12.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` from 1.1.404 to 1.1.405\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/e211ec8df8d389a147af6d31bdb2bc812f04aa5a\"\u003e\u003ccode\u003ee211ec8\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.405 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.404...v1.1.405\"\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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/MinBZK/amt/pull/599","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinBZK%2Famt/issues/599","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/599/packages"}}]}